java 银行管理系统

实现了,登录,注册,查询,取款,存款,转账,修改密码,退出,注销等功能。
public class Atm {
    public static void main(String[] args) {
        ArrayList<user>  User = new ArrayList<>();


        while (true) {
            System.out.println("==========欢迎来到ATM系统==========");
            System.out.println("请进行登录");
            System.out.println("1.登录账号");
            System.out.println("2.注册账号");
            Scanner sc = new Scanner(System.in);
            String data = sc.next();
            switch (data){
                case "1":
                    if (User.size()==0){
                        System.out.println("不好意思,系统内还未有任何账号,请先注册");
                    }
                    else {
                        //登录
                        login(sc,User);
                        break;
                    }
                case "2":
                    //注册
                    enrol(sc,User);
                    break;
                default:
                    System.out.println("输入的操作有误");
                    break;
            }
        }
    }

    public static void login(Scanner sc,ArrayList<user> User){
        System.out.println("==========欢迎来到登录操作==========");
        System.out.println("请输入卡号");
        String car = sc.next();
        System.out.println("请输入密码");
        String password=sc.next();
        int ac = 0;
        for (int i = 0; i < User.size(); i++) {
            if ( User.get(i).getCar().equals(car)) {
                ac =1;
                if (User.get(i).getPassword().equals(password)){
                      //操作页面
                    System.out.println("恭喜"+User.get(i).getName()+"先生登录成功");
                    operate(sc,User,car);
                    ac = 0;
                }
                else {
                    System.out.println("输入的密码出错");
                }
            }
        }
        if (ac ==1) {
            System.out.println("查无此人");
        }
    }

    private static void operate(Scanner sc,ArrayList<user> User,String car) {
        boolean TF = true;
        while (TF) {
            System.out.println("==========欢迎来到操作系统==========");
            System.out.println("请选择你想要进行的操作:");
            System.out.println("1、查询");
            System.out.println("2、存款");
            System.out.println("3、取款");
            System.out.println("4、转账");
            System.out.println("5、修改密码");
            System.out.println("6、退出");
            System.out.println("7、注销账户");
            String se = sc.next();
            switch (se){
                case "1":
                    inquire(User,car);
                    break;
                case "2":
                    deposit(sc,User,car);
                    break;
                case "3":
                    withdraw(sc,User,car);
                    break;
                case "4":
                    transfer(sc,User,car);
                    break;
                case "5":
                    modify(sc,User,car);
                    break;
                case "6":
                    System.out.println("退出成功");
                    TF = false;
                    break;
                case "7":
                    writeOff(sc,User,car);
                    TF = false;
                    break;
                default:
                    System.out.println("输入的操作有误");
                    break;
            }
        }
    }

    private static void writeOff(Scanner sc, ArrayList<user> user, String car) {
        System.out.println("==========正在进行注销账号操作==========");
        System.out.println("请输入注销卡号密码");
        String password = sc.next();
        for (int i = 0; i < user.size(); i++) {
            if (user.get(i).getPassword().equals(password)) {
                System.out.println("注销成功");
                user.remove(i);
            }
        }
    }

    private static void modify(Scanner sc, ArrayList<user> user, String car) {
        System.out.println("==========正在修改密码==========");
        System.out.println("请输入你想要的密码");
        String password = sc.next();
        for (int i = 0; i < user.size(); i++) {
            if (user.get(i).getCar().equals(car)){
                user.get(i).setPassword(password);
                System.out.println("修改密码成功");
            }
        }
    }

    private static void transfer(Scanner sc, ArrayList<user> user, String car) {
        System.out.println("==========正在进行转账操作==========");
        if (user.size() >= 2){
            System.out.println("请输入要转给金额的卡号");
            String cars = sc.next();
            int ac =0;
            for (int i = 0; i < user.size(); i++) {
                if (user.get(i).getCar().equals(cars)){//收款金额
                    ac = 1;
                    System.out.println("请输入转账金额:");
                    double money = sc.nextDouble();
                    for (int j = 0; j < user.size(); j++) {
                        if (user.get(j).getCar().equals(car)) {//转账金额
                            if(user.get(j).getAmount() >= money) {
                                user.get(i).setAmount(user.get(i).getAmount() + money);
                                user.get(j).setAmount(user.get(j).getAmount() - money);
                                System.out.println("转账成功");
                            }
                            else {
                                System.out.println("金额不够");
                            }
                        }
                    }
                }
            }
            if (ac ==0)
                System.out.println("查无此人");
        }
        else {
            System.out.println("本系统只有你一个账号,无法进行转账");
        }
    }

    private static void withdraw(Scanner sc, ArrayList<user> user, String car) {
        System.out.println("==========正在进行取款操作==========");
        for (int i = 0; i< user.size();i++) {
            if (user.get(i).getCar().equals(car)) {
                System.out.println("当前账号余额为:" + user.get(i).getAmount());
                System.out.println("单日可取款金额为:" + user.get(i).getQuota());
                System.out.println("请输入取款金额:");
                double money = sc.nextDouble();
                if(user.get(i).getQuota() >= money) {
                    user.get(i).setAmount(user.get(i).getAmount() - money);
                    user.get(i).setQuota(user.get(i).getQuota() - money);
                    inquire(user,car);
                }
                else {
                    System.out.println("单日可取款金额已超额");
                }
            }
        }

    }

    private static void deposit(Scanner sc, ArrayList<user> User, String car) {
        System.out.println("==========正在进行存款操作==========");
        System.out.println("请输入存款金额:");
        double money = sc.nextDouble();
        for (int i = 0; i < User.size(); i++) {
            if (User.get(i).getCar().equals(car)){
                User.get(i).setAmount(User.get(i).getAmount()+money);
                System.out.println("存钱成功");
                inquire(User,car);
            }
        }
    }

    private static void inquire(ArrayList<user> User,String car) {
        System.out.println("==========你当前账号信息如下==========");
        System.out.println("卡号:"+car);
        for (int i = 0; i < User.size(); i++) {
            if (User.get(i).getCar().equals(car)) {
                System.out.println("户主:" + User.get(i).getName());
                System.out.println("余额:" + User.get(i).getAmount());
                System.out.println("当次取现额度:" + User.get(i).getQuota());
                break;
            }
        }
    }

    public static void enrol(Scanner sc,ArrayList<user> User){
        System.out.println("==========欢迎来到注册操作==========");
        user users = new user();

        System.out.println("请输入账号名称");
        String name = sc.next();
        users.setName(name);
        String password= null;
        while (true) {
            System.out.println("请输入密码");
            password = sc.next();
            System.out.println("请确认密码");
            String repassword=sc.next();
            if (password.equals(repassword)){
                users.setPassword(password);
                break;
            }
            else {
                System.out.println("俩次输入密码不一致");
            }
        }

        //生成卡号
        String cars = getCars(User);
        users.setCar(cars);
        System.out.println("恭喜你,开户成功"+name+"先生,你的卡号为"+cars);
        User.add(users);
    }

    private static String getCars(ArrayList<user> user) {
        String setCar = "";

        while (true) {
            for (int i = 0; i < 8; i++) {
                Random ran = new Random();
                setCar += ran.nextInt(10);
            }
            for (int i = 0; i<user.size(); i++) {
                if (user.get(i).getCar().equals(setCar)){
                    setCar ="";
                    break;
                }
            }
            if (setCar!=""){
                break;
            }
        }

        return setCar;
    }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值