需要ATM机类,该类完成主菜单的相关操作,在取钱和转账时,需判断余额情况 要求:实现数据持久化存储(方式不限)

public class User {
    private int id;//排序编号
    private int account;//账号
    private String password; //密码
    private String balance;  //余额
    private String bankName; //银行卡名字
    private String name;//持卡人
 
    public User() {
    }
 
    public User(int id, int account, String password, String balance, String bankName, String name) {
        this.id = id;
        this.account = account;
        this.password = password;
        this.balance = balance;
        this.bankName = bankName;
        this.name = name;
    }
 
    public User(int id, int account, String password, int i, String 中国建设, String 小王妃) {
    }
 
    public int getId() {
        return id;
    }
 
    public void setId(int id) {
        this.id = id;
    }
 
    public int getAccount() {
        return account;
    }
 
    public void setAccount(int account) {
        this.account = account;
    }
 
    public String getPassword() {
        return password;
    }
 
    public void setPassword(String password) {
        this.password = password;
    }
 
    public String getBalance() {
        return balance;
    }
 
    public void setBalance(String balance) {
        this.balance = balance;
    }
 
    public String getBankName() {
        return bankName;
    }
 
    public void setBankName(String bankName) {
        this.bankName = bankName;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
}
 
public class Bank {
    /*数组模拟数据库后台,并初始化*/
    private User[] users = new User[20];
    int size;
 
    /*接收当前登录的用户*/
    User user;
    public User getUser() {
        return user;
    }
 
    public Bank (){ }
 
    /*初始化用户*/
    public  void  init(){
        User user1= new User(1,10086,"10086",100000,"中国建设","小王妃");
        User user2= new User(2,10011,"10086",10000000,"工商","小王");
 
        /*初始化*/
        users[0] = user1;
        users[1] =user2;
        size=2;
    }
 
    /*用户登录*/
    public boolean login(String account, String password){
        for(int i=0; i<size; i++){
            if(!users[i].equals(account)&& users[i].getPassword().equals(password) ){
                user = users[i];
                return true;
            }
        }
        return  false;
    }
 
    /*存款*/
    public void save(String balance){
        double money =Integer.parseInt(user.getBalance());
        money += Integer.parseInt(String.valueOf(balance));
        user.setBalance((money+""));
        System.out.println("存款成功");
    }
 
    /*取款*/
    public void widthDraw(String balance){
        int money = (int) Double.parseDouble(user.getBalance());
        money -= Double.parseDouble(balance);
        user.setBalance((money+""));
    }
 
    /*转账*/
    public  void trans(String cardNo,String balance){
        int i=0;
        for(i=0; i<size;i++){
            if(users[i].equals(getUser().getAccount())){
                /*保存没转账之前的数*/
                int  oldmoney =Integer.parseInt(user.getBalance()) ;
                int oldanothermoney = Integer.parseInt(users[i].getBalance());
 
                /*转账,调用当前登录用户的取款方法*/
                widthDraw(balance);
 
                /*目标账户的余额变化*/
                int money =Integer.parseInt(users[i].getBalance());
                money += Integer.parseInt(balance);
                users[i].setBalance((money+""));
 
                /*这里做转账成功的判断*/
                int userseflmoney =oldmoney -  Integer.parseInt(user.getBalance());
                int useraothermoney = Integer.parseInt(users[i].getBalance())-oldanothermoney;
                if(userseflmoney == useraothermoney){
                    System.out.println("转账成功");
                }
                break;
            }
        }
        if(i>=size){
            System.out.println("输入的卡号有误");
        }
    }
 
    /*查询余额*/
    public void query(){
        System.out.println("【账户余额】: "+user.getBalance());
    }
 
    /*修改密码*/
    public void  modifyPassword(String passwd){
        user.setPassword(passwd);
        System.out.println("修改密码成功,请重新登录");
    }
 
 
}
测试类

 
public class Test1 extends Bank{
    public static void main(String[] args) {
        Bank blank = new Bank();
        /*初始化*/
        blank.init();
 
        Scanner sc =new Scanner(System.in);
 
        while(true) {
            System.out.println("========== 中国银行欢迎你 ========= ");
            System.out.println("*** 请先登录*** ");
            System.out.print("【请输入卡号】:");
            String account = sc.next();
            System.out.print("【请输入密码】:");
            String password = sc.next();
            if (blank.login(account, password)) {
                System.out.println("登录成功"+ blank.getUser().getName());
                // User user = blank.getUser();
                prof:  while(true) {
                    System.out.println("请输入您想要的操作类型");
                    System.out.println("------- 1,余额查询 2,取款 3,存款   -------");
                    System.out.println("-------- 4,转账  5,打印   6,退卡-------- ");
                    System.out.print("查询转账信息");
                    int num = sc.nextInt();
                    if (num == 1) {
                        System.out.println("进入存款操作");
                        System.out.print("输入存款金额:");
                        int money = sc.nextInt();
                        while (true) {
                            if (money <= 0) {
                                System.out.println("请输入正确的存款金额");
                            } else {
                                break;
                            }
                        }
                        blank.save(money + "");
                    } else if (num == 2) {
                        System.out.println("进入取款操作");
                        System.out.print("输入取款金额:");
                        int money = sc.nextInt();
                        blank.widthDraw(money+"");
                        System.out.println("取款成功");
 
                    } else if (num == 3) {
                        System.out.println("进入转账操作");
                        System.out.print("输入转账卡号:");
                        String account1  =sc.next();
                        System.out.print("输入转款金额");
                        int money = sc.nextInt();
                        blank.trans(account1, money+"");
                    } else if (num == 4) {
                        blank.query();
                    } else if (num == 5) {
                        System.out.println("进入改密操作");
                        System.out.print("输入重置密码:");
                        String newpasswd =sc.next();
                        blank.modifyPassword(newpasswd);
                        break prof;
                    } else if (num == 6) {
                        System.out.println("账号: 退出成功");
                        break prof;
                    }
                }
            } else {
                System.out.println("卡号或者密码输入不正确");
            }
        }
    }
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值