Java 简单实现银行业务

1.明确目标,初步实现

2.综合案例:实现银行功能
2.1.要求:
用户输入正确的卡号和密码之后可以执行以下操作
菜单如下:
存款

取款

转账

查询余额

修改密码

退出

2.2.分析:
User类(cardNo、identity、username、password、phone、balance)
Bank类主要包括以下功能:
初始化用户(initial)

用户登录(login)

显示菜单(showMenu)

存款(save)、取款(withDraw)、转账(trans)、查询余额(query)、修改密码(modifyPassword)

2.3.添加类:初始化用户
2.3.1.User类
 

/**
 * 用户类
 * @author  tansk
 */
public class User {
    //卡号
    private String cardNo;
    //身份证
    private String idetity;
    //用户名
    private String username;
    //密码
    private String password;
    //电话
    private String phone;
    //余额
    private double balance;

    //构造方法
    public User(){}

    public User(String cardNo, String idetity, String username, String password, String phone, double balance) {
        this.cardNo = cardNo;
        this.idetity = idetity;
        this.username = username;
        this.password = password;
        this.phone = phone;
        this.balance = balance;
    }

    public String getCardNo() {
        return cardNo;
    }

    public void setCardNo(String cardNo) {
        this.cardNo = cardNo;
    }

    public String getIdetity() {
        return idetity;
    }

    public void setIdetity(String idetity) {
        this.idetity = idetity;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public double getBalance() {
        return balance;
    }

    public void setBalance(double balance) {
        this.balance = balance;
    }

    @Override
    public String toString() {
        return "User{" +
                "cardNo='" + cardNo + '\'' +
                ", idetity='" + idetity + '\'' +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", phone='" + phone + '\'' +
                ", balance=" + balance +
                '}';
    }
}

2.4.Bank类

实现功能:

  1. 用户初始化
  2. 登录
  3. 菜单
  4. 存款
  5. 取款
  6. 转账
  7. 查询余额
  8. 修改密码
  9. 退出
/**
 * 银行类
 *
 * @author tansk
 */
public class Bank {

    //创建数组
    private User[] users = new User[5];
    //保存个数
    private int size;

    //1.初始化方法
    public void initial() {
        //创建user1
        User user1 = new User();
        user1.setCardNo("666666");
        user1.setIdetity("014607");
        user1.setUsername("tansk");
        user1.setPassword("123456");
        user1.setPhone("10086");
        user1.setBalance(1000);

        //创建user2
        User user2 = new User("777777", "9587", "liubei", "123456", "10011", 2000);
        //创建user3
        User user3 = new User("888888", "007", "xianyu", "123456", "10020", 3000);
        //添加元素
        users[0] = user1;
        users[1] = user2;
        users[2] = user3;
        size = 3;
        System.out.println("用户初始化完成!!!");
    }

    //2.用户登录
    public void login() {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入卡号:");
        String cardNo = input.next();
        System.out.println("请输入密码:");
        String password = input.next();

        //遍历数组
        User u = null;//保存找到的用户
        for (int i = 0; i < size; i++) {
            if (users[i].getCardNo().equals(cardNo) && users[i].getPassword().equals(password)) {
                u = users[i];
                break;
            }
        }
        if (u != null) {
            //显示菜单
            showMenu(u);
        } else {
            System.out.println("卡号或密码错误...");
        }
    }

    //3.显示菜单
    public void showMenu(User u) {
        Scanner input = new Scanner(System.in);
        System.out.println("=========" + u.getUsername() + " welcome to the tansk-bank system =======");
        //循环选择
        boolean flag = true;
        while (flag = true) {
            System.out.println("=== 1.存款 2.取款 3.转账 4.查询余额 5. 修改密码 0.退出 ===");
            int choice = input.nextInt();
            switch (choice) {
                case 1:
                    this.save(u);
                    break;
                case 2:
                    this.withDraw(u);
                    break;
                case 3:
                    this.trans(u);
                    break;
                case 4:
                    this.query(u);
                    break;
                case 5:
                    this.modefyPassword(u);
                    break;
                case 0:
                    return;
                default:
                    System.out.println("输入错误!!!");
                    flag = false;
                    break;
            }
        }
    }

    //4.存钱
    public void save(User u) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入存款金额");
        double m = input.nextDouble();
        if (m > 0) {
            u.setBalance(u.getBalance() + m);
            System.out.println("存钱成功,余额:" + u.getBalance());
        } else {
            System.out.println("存钱失败!请重新输入...");
        }
    }

    //5.取钱
    public void withDraw(User u) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入取款金额");
        double m = input.nextDouble();
        if (m > 0 && u.getBalance() >= m) {
            u.setBalance(u.getBalance() - m);
            System.out.println("取钱成功,余额:" + u.getBalance());
        } else {
            System.out.println("取钱失败!请重新输入...");
        }
    }

    //6.转账
    public void trans(User u) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入对方卡号:");
        String cardNo = input.next();
        System.out.println("请输入转账金额:");
        double m = input.nextDouble();
        //判断对方卡号是否存在
        User toUser = null;
        for (int i = 0; i <= size; i++) {
            try {//避免出现空指针异常
                if (users[i].getCardNo().equals(cardNo)) {
                    toUser = users[i];
                    break;
                }
            } catch (Exception e) {
                break;
            }
        }
        if (toUser != null) {//存在对方卡号
            if (u.getBalance() >= m) {//转账
                u.setBalance(u.getBalance() - m);
                toUser.setBalance(toUser.getBalance() + m);
                System.out.println("转账成功!!!");
            } else {
                System.out.println("余额不足,转账失败!");
            }
        } else {
            System.out.println("对方卡号不存在");
            return;
        }
    }

    //7.查询余额
    public void query(User u) {
        System.out.println("卡号:" + u.getCardNo() + "余额:" + u.getBalance());
    }

    //8.修改密码
    public void modefyPassword(User u) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入新的密码:");
        String password = input.next();
        if (password.length() == 6) {
            u.setPassword(password);
        } else {
            System.out.println("输入密码不符合要求");
        }

    }
}

2.5.实现类

public class Application {
    public static void main(String[] args) {
        Bank b1=new Bank();
        b1.initial();
        b1.login();
    }
}

2.6.实现效果

用户初始化完成!!!
请输入卡号:
666666
请输入密码:
123456
=========tansk welcome to the tansk-bank system =======
=== 1.存款 2.取款 3.转账 4.查询余额 5. 修改密码 0.退出 ===
4
卡号:666666余额:1000.0
=== 1.存款 2.取款 3.转账 4.查询余额 5. 修改密码 0.退出 ===
1
请输入存款金额
100
存钱成功,余额:1100.0
=== 1.存款 2.取款 3.转账 4.查询余额 5. 修改密码 0.退出 ===
2
请输入取款金额
100
取钱成功,余额:1000.0
=== 1.存款 2.取款 3.转账 4.查询余额 5. 修改密码 0.退出 ===
3
请输入对方卡号:
888888
请输入转账金额:
100
转账成功!!!
=== 1.存款 2.取款 3.转账 4.查询余额 5. 修改密码 0.退出 ===
4
卡号:666666余额:900.0
=== 1.存款 2.取款 3.转账 4.查询余额 5. 修改密码 0.退出 ===
5
请输入新的密码:
123456
=== 1.存款 2.取款 3.转账 4.查询余额 5. 修改密码 0.退出 ===
3
请输入对方卡号:
98556123546535
请输入转账金额:
120
对方卡号不存在
=== 1.存款 2.取款 3.转账 4.查询余额 5. 修改密码 0.退出 ===
0

Process finished with exit code 0

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值