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

本文档详细介绍了如何在Java编程中实现用户管理功能,包括创建User类,数据库模拟,用户登录、存款、取款、转账操作以及查询和修改密码。展示了银行应用的基本业务逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


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("卡号或者密码输入不正确");
            }
        }
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值