java实现atm机,java编写atm系统

  java实现atm机,java编写atm系统

  本文分享用Java实现简单控制台版ATM系统的具体代码,供大家参考。具体内容如下

  00-1010

ATM系统项目

1.查询:账号必须存在,密码(三次机会,错了锁卡)

 

  2.取款:账号必须存在,密码(三次机会,错了锁卡),取款金额不能大于存款。

  3.存款:账号必须存在,存款金额不能小于0。

  4.转账:你的账户和转账账户都必须存在,有密码(三次机会,错了锁卡),转账金额不能超过余额。

  5.锁卡:账号必须存在,用密码冻结。

  6.卡解锁:账号必须存在,只能用身份证号解锁。

  7.换卡:用身份证换卡。

  8.加密:可以加密密码,也可以使用身份证。

  9.退出:保存数据。

  00-1010可以分为四个对象,第一个银行卡对象(卡片存储银行卡信息);第二用户对象(Person存储用户信息);第三功能对象(控制器的具体操作功能类);对象(视图显示操作界面)。可以分为四类。

  

ATM系统要实现的功能

Card类

 

  打包卡的属性(卡号、密码、余额、卡锁定状态)

  包卡的class card {//属性:私有字符串cardid私有字符串密码;私人双钱;私有布尔islock//设置封装属性的set和get方法,publicstringgetcardid(){ returncardid;} public void setCardid(String cardid){ this . cardid=cardid;}公共字符串get password(){ return password;} public void set password(String password){ this . password=password;} public double getMoney(){ return money;} public void set money(double money){ this . money=money;} public boolean ISIS lock(){ return is lock;} public void setis lock(boolean is lock){ this . is lock=is lock;}//Override to String方法@ Override public String to String(){ return card[carid= cardid ,password= password ,money= money ,is lock= is lock ];}//构造卡public Card() {super())的无参数和无参数构造方法;}公卡(字符串cardid,字符串密码,双币,布尔is look){ super();this.cardid=cardidthis.password=密码;this.money=钱;this . is lock=is lock;} }Person类

  封装用户信息(用户名、身份证号、手机号、卡)

  公共类Person {私有字符串名称;私有字符串userid私弦电话;私卡[]卡;//设置每个封装属性的set和get方法,publicstringgetname(){ return name;} public void set name(String name){ this . name=name;}公共字符串get userid(){ return userid;} public void set userid(String userid){ this . userid=userid;}公共字符串getPhone()

  {        return phone;    }    public void setPhone(String phone) {        this.phone = phone;    }    public Card[] getCard() {        return card;    }    public void setCard(Card[] card) {        this.card = card;    }            //重写 to String方法    @Override    public String toString() {        return "Person [name=" + name + ", userid=" + userid + ", phone=" + phone + ", card=" + card+ "]";    }    //构造无参和有参方法      public Person() {        super();    }        public Person(String name, String userid, String phone, Card[] card) {        super();        this.name = name;        this.userid = userid;        this.phone = phone;        this.card = card;    }    }Controller类

  创建三个默认账户信息,并构造操作方法

  

public class Controller {     Scanner sc = new Scanner(System.in);     Card c = new Card() ; //生成卡          //创建三组信息     Card c1 = new Card("1","666666",1000,false);  //默认账户1     Card c2 = new Card("2","666666",1500,false);  //默认账户2     Card c3 = new Card("3","666666",1800,false);  //默认账户3     public void regiser(String name,String userid,String phone,Card[] card) {         //将Person类的属性赋给对象p         Person p = new Person(name,userid,phone,card);             }          public void query(Person p) {                  System.out.println(p);     }          public boolean verify(String cardid,String password) {         if(cardid.equals("1")&&password.equals("666666")) {  //如果输入的是账户1的账户密码,就得到账户1属性             c.setMoney(c1.getMoney());             c.setPassword(c1.getPassword());                          if(!c.isIslock()) {       //判断账户1是否被锁                 return true;             }else {                 System.out.println("抱歉,该卡已被锁");                 return false;             }         }                  if(cardid.equals("2")&&password.equals("666666")) { //如果输入的是账户2的账户密码,就得到账户2属性             c.setMoney(c2.getMoney());             c.setPassword(c2.getPassword());                          //判断该卡是否被锁             if(!c.isIslock()) {     //判断账户2是否被锁                 return true;             }         }                  if (cardid.equals("3")&&password.equals("666666")) { //如果输入的是账户3的账户密码,就得到账户3属性             c.setMoney(c3.getMoney());             c.setPassword(c3.getPassword());                          if(!c.isIslock()) {        //判断账户3是否被锁                 return true;             }         }                  return false;       //一个账户信息都没对上,重新输入              }             //构造查询方法     public void query(String cardid) {                  if(cardid.equals("1")) {                           //查询账户1             System.out.println(c.getMoney());         }else if(cardid.equals("2")) {                     //查询账户2             System.out.println(c.getMoney());         }else if(cardid.equals("3")) {                     //查询账户3             System.out.println(c.getMoney());         }else {             System.out.println("输入有误");         }              }          //构造取钱方法     public void putMoney() {         System.out.print("请输入需要取出的金额(将金额再确认一遍):");         double money = sc.nextDouble();        //判断钱够不够         if(money<=c.getMoney()) {             money = c.getMoney()-money;             c.setMoney(money);                        //钱够取出并更新账户余额             System.out.println("已取出"+sc.nextDouble()+"元");             System.out.println("账户余额为:"+money+"元");         }else {             System.out.println("对不起,账户余额不足");         }     }          //构造存钱方法     public void addMoney() {         System.out.println("请将纸币放于存钞口(将金额再确认一遍)");         double money = sc.nextDouble();          money = c.getMoney()+money;         c.setMoney(money);                               //存钱并更新账户余额                        System.out.println("已存入"+sc.nextDouble()+"元");        System.out.println("账户余额为:"+money+"元");                       }        //构造转钱方法     public void saveMoney() {         System.out.println("请输入需要转入账户名:");         String name = sc.next();         System.out.print("请输入转入金额(将金额再确认一遍):");         double money = sc.nextDouble();                  //判断钱够不够         if(c.getMoney()>=money) {             money = c.getMoney()-money;             c.setMoney(money);                             //钱够转钱 更新账户余额             System.out.println("已转出"+sc.nextDouble()+"元");             System.out.println("账户余额为:"+money+"元");         }else {                                            //钱不够返回             System.out.println("对不起,账户余额不足");         }     }          //构造锁卡方法     public void lock() {         c.setIslock(true);         System.out.println("该卡已被锁");     }          //构造解卡方法     public void unlock() {         c.setIslock(false);         System.out.println("该卡可正常使用");     }          //构造补卡方法     public void newCard() {         System.out.println("请输入您的姓名:");         String name = sc.nextLine();                 System.out.println("请输入您的身份证号码:");         String userid = sc.nextLine();                  Person p = new Person(name,userid,null,null);                             System.out.println("请输入重办账户号码:");                  String cardid = sc.nextLine();                  System.out.println("请输入要设置的密码(数字):");         String  password = sc.nextLine();              //限制密码位数         if(password.length()==6) {             System.out.println("密码设置成功");         }else {             System.out.println("密码限制6位,请重新选择功能");                      }              }                  //构造改密方法     public void changePwd() {         System.out.println("请输入密码:");         String password = sc.next();                  if(password.equals(c.getPassword())){             System.out.println("请输入更改后的密码:");             String newpassword = sc.next();             System.out.println("再输入一次密码:");             String newpassword1 = sc.next();                         if(newpassword.equals(newpassword1)) {             System.out.println("密码修改成功!");             c.setPassword(newpassword1);            }else {             System.out.println("两次密码输入不一致,请重新输入");             changePwd();            }       }else {                System.out.println(c.getPassword());           System.out.println("密码输入错误");       }     }          //构造退出方法     public void save() {         System.exit(0);     }}

View类

 

  实现欢迎界面以及各操作界面

  

public class View {    Scanner s = new Scanner(System.in);    private int count = 3;    Card c =new Card();    Controller co = new Controller();        public static void main(String[] args) {        View v = new View();        v.show();    }        public void show() {        System.out.println("=============欢迎使用使用本行存取一体机=============");        System.out.println("请输入卡号:");        String cardid = s.nextLine();                System.out.println("请输入密码:");        String  password =s.nextLine();                //登录界面,账户密码错三次就锁卡        if(!co.verify(cardid, password)) {            count--;            if(count == 0) {                co.lock();   //调用lock                System.out.println("密码输入错误"+c.isIslock());                System.out.println("请重新输入:");            }                        System.out.println("你还有"+count+"次输入机会,");           &      

	  
	  
	  
	  
	  
	  
        

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: