用Java实现简单的银行存取款业务

        本项目的主要功能是模拟银行的存取款业务,当用户登录时需判断银行卡号和银行卡密码,当输入的卡号和密码都正确时,登录成功,提示当前登录的账户名,并进入下一步选择操作类型。操作类型包括四种(存款:1 取款:2 余额:3 退出:0),输入数字1、2时,将进行存取款操作,此时需要输入存取的金额,并进行正确的金额加减计算;输入数字3时,显示当前账户的余额;输入数字0时将退出整个系统。

      项目需求分析:

  1. 首先要实现用户的登陆,判断卡号和密码。
  2. 登陆成功后,提示四种可操作类型(存款:1、取款:2、余额:3、退出:0),输入相应类型数字,进入其对应功能。
  3. 选择1,存款时输入金额后,要判断金额是否合理(输入金额不能小于0),合理显示存款成功,不合理回到操作类型选择功能,让其从新选择操作。
  4. 选择2,取款时输入相应金额后,也要进行金额是否合理判断,并且其取款金额不能大于账户余额,如果大于账户余额,则提示“余额不足,取款失败!”,并回到操作类型选择功能。
  5. 选择3,系统显示账户余额。
  6. 选择0,退出系统,程序运行结束。
package com.starry.project;

import java.util.Scanner;

public class Bank {
    Scanner scanner = new Scanner(System.in);
    DBUtil dbutil = DBUtil.getInstance();
    User user = new User();

    public static void main(String[] args) {
        Bank bank = new Bank();
        bank.login();
        bank.operate();
    }

    public void login() {
        System.out.println("欢迎进入网上银行系统!");
        while (true) {
            System.out.println("请输入银行卡号:");
            String cardId = scanner.next();
            user = dbutil.getUser(cardId);
            //containsKey():如果hashMap中存在指定的value对应的映射关系返回true
            if (dbutil.getUsers().containsKey(cardId)) {
                break;
            } else {
                System.out.println("银行卡号输入错误!请重新输入:");
                continue;
            }
        }
        while(true){
            System.out.println("请输入银行卡密码:");
            String cardPwd = scanner.next();
            if (String.valueOf(user.getCardPwd()).equals(cardPwd)) {
                System.out.println("登录成功!欢迎" + user.getUserName() + "先生");
                break;
            }else {
                System.out.println("银行卡密码输入错误!请重新输入:");
               continue;
            }
        }
    }

    //存款
    public void income(int num) {
        System.out.println("请输入存入金额:");
        num = scanner.nextInt();
        if(num <= 0){
            System.out.println("存款金额输入错误!");
        }else{
            int account = user.getAccount() + num;
            user.setAccount(account);
            System.out.println("存入金额" + num + "元成功!");
        }
    }

    //取款
    public void takeout(int num) {
        System.out.println("请输入取款金额:");
        num = scanner.nextInt();
        if (user.getAccount() >= num) {
            int account = user.getAccount() - num;
            user.setAccount(account);
            System.out.println("取出金额" + num + "元成功!");
        } else {
            System.out.println("余额不足,取款失败!");
        }
    }
    //显示账户余额
    public void show(){
        int account = user.getAccount();
        System.out.println("账户总余额为" + account + "元");
    }
    public void operate() {
        while (true) {
            System.out.println("请输入您要进行的操作类型,按回车键结束");
            System.out.println("存款:1" + "\t" + "取款:2" + "\t" + "余额:3" + "\t " + "退出:0");
            int opt = 0;
            int num = 0;
            opt = scanner.nextInt(); // 输入的操作类型
            if(opt < 0 || opt >3){
                System.out.println("请输入0~4之间的数字选择相关操作!");
            }
            else{
                switch (opt) {
                    case 1:
                        income(num);
                        break;
                    case 2:
                        takeout(num);
                        break;
                    case 3:
                        show();
                        break;
                    case 0:
                        System.out.println("退出系统");
                        return;
                }
            }
        }
    }
}
ackage com.starry.project;


import java.util.HashMap;

public class DBUtil {

    private static DBUtil instance = null;
    private HashMap<String, User> users = new HashMap<String, User>();
    private DBUtil(){
        //--------刘备----------
        User u1 = new User();
        u1.setCardId("1001");
        u1.setCardPwd("123456");
        u1.setUserName("刘备");
        u1.setCall("13891352572");
        u1.setAccount(2000);

        users.put(u1.getCardId(), u1);//将指定的键/值对插入到 HashMap 中
        //--------周斯越----------
        User u2 = new User();
        u2.setCardId("1002");
        u2.setCardPwd("135790");
        u2.setUserName("周斯越");
        u2.setCall("13891352573");
        u2.setAccount(3000);

        users.put(u2.getCardId(), u2);
        //--------樊治欣----------
        User u3 = new User();
        u3.setCardId("1003");
        u3.setCardPwd("246810");
        u3.setUserName("樊治欣");
        u3.setCall("13891352574");
        u3.setAccount(5000);

        users.put(u3.getCardId(), u3);
    }
    // 单例模式,保证一个类仅有一个实例
    public static DBUtil getInstance() {
        if (instance == null) {
            instance = new DBUtil();
        }
        return instance;
    }
    // 根据银行卡号获取对应单个账户的信息
    public User getUser(String cardId) {
        User user = (User) users.get(cardId);
        return user;
    }
    // 获取所有账户的信息
    public HashMap<String, User> getUsers() {
        User user = new User();
        user.getCardPwd();
        return users;
    }
}
package com.starry.project;

public class User {
    private String cardId; // 银行卡号
    private String cardPwd; // 银行卡密码
    private String userName;// 账户名
    private String call; // 手机号码
    private int account; // 存款额

    public User() {
    }

    public User(String cardId, String cardPwd, String userName, String call, int account) {
        this.cardId = cardId;
        this.cardPwd = cardPwd;
        this.userName = userName;
        this.call = call;
        this.account = account;
    }

    public String getCardId() {
        return cardId;
    }

    public void setCardId(String cardId) {
        this.cardId = cardId;
    }

    public String getCardPwd() {
        return cardPwd;
    }

    public void setCardPwd(String cardPwd) {
        this.cardPwd = cardPwd;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getCall() {
        return call;
    }

    public void setCall(String call) {
        this.call = call;
    }

    public int getAccount() {
        return account;
    }

    public void setAccount(int account) {
        this.account = account;
    }

}

  • 11
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值