Java实现简易ATM系统

这个代码实现了一个简单的ATM系统,包括账户类(Account)、登录前的主页面、登录功能、注册功能、登录后的主页面及各种操作函数。用户可以创建账户、登录、查询余额、存款、取款、转账、修改密码、退出和注销账户。整个系统通过ArrayList存储账户信息,并使用Scanner获取用户输入。
摘要由CSDN通过智能技术生成

1.创建一个Acount类

//账户类
public class Account {
    private int id;//卡号
    private String name;//账户名
    private String password;//密码
    private double max_money;//最大额度
    private double surplus_money;//剩余金额

    public Account() {
    }

    public Account(int id, String name, String password, double max_money, double surplus_money) {
        this.id = id;
        this.name = name;
        this.password = password;
        this.max_money = max_money;
        this.surplus_money = surplus_money;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

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

    public double getMax_money() {
        return max_money;
    }

    public void setMax_money(double max_money) {
        this.max_money = max_money;
    }

    public double getSurplus_money() {
        return surplus_money;
    }

    public void setSurplus_money(double surplus_money) {
        this.surplus_money = surplus_money;
    }
}

2.写注册前的登录页面

  //登陆前的主页面
    public static void Print_main1(){
        System.out.println("===============欢迎来到ATM系统===============");
        System.out.println("1.登录账户");
        System.out.println("2.创建用户");
        System.out.println("3.退出系统");
    }
  

3.写登录函数

//登录页面
    public static Account DengLu(ArrayList<Account>arrayList, Scanner sc) {
        System.out.println("===============欢迎来到登录操作页面===============");
        if (arrayList.size() == 0) {
            System.out.println("改系统没有账户,无法登录");
            return null;
        } else {
            while (true) {
                System.out.println("请输入您的卡号");
                int id = sc.nextInt();
                boolean index=false;
                for (int i = 0; i < arrayList.size(); i++) {
                    if (arrayList.get(i).getId() == id) {
                        index=false;
                        while (true) {
                            System.out.println("请输入登录密码:");
                            String password = sc.next();
                            if (arrayList.get(i).getPassword().equals(password)) {
                                System.out.println("欢迎您" + arrayList.get(i).getName() + "先生/女士,您可以办理业务了");
                                return arrayList.get(i);
                            } else {
                                System.out.println("密码错误!");
                            }
                        }
                    } else {
                        index=true;
                    }
                }
                if (index){
                    System.out.println("该用户不存在");
                }
            }
        }
    }

4.写注册函数

 //创建账户
    public static void Create_Account(ArrayList<Account>arrayList, Scanner sc){
        System.out.println("===============欢迎来到注册操作页面===============");
        //输入姓名
        System.out.println("请输入姓名");
        String name=sc.next();
        //输入密码
        OUT:
        while (true){
            System.out.println("请输入账户密码");
            String passWord=sc.next();
            System.out.println("请确认密码");
            String password= sc.next();
            if (!password.equals(passWord)){
                System.out.println("两次密码输入不一样");
            }else {
                //输入最大金额
                System.out.println("请您设置取现额度");
                double max_money=sc.nextDouble();
                while (true){
                    //随机生成卡号,遍历集合,防止重复
                    Random r=new Random();
                    int id=r.nextInt(10000000)+90000000;
                    boolean index=true;
                    for (int i = 0; i < arrayList.size(); i++) {
                        if (id==arrayList.get(i).getId()){
                            index=false;
                        }else {
                            index=true;
                        }
                    }
                    if (index){
                        Account a=new Account(id,name,password,max_money,0);
                        //添加到集合
                        arrayList.add(a);
                        System.out.println("恭喜您"+name+"先生/女士,您开户完成,您的卡号为"+id);
                        break OUT;
                    }
                }
            }
        }
    }

5.写登录后的主页面

 //登录成功后的主页面
    public static void Print_main2(){
        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.注销用户");
    }

6.写登录后的一些操作函数

 //1.查询
    public static void search_Account(Account account){
        System.out.println("===============您当前账户信息如下===============");
        System.out.println("卡号:"+account.getId());
        System.out.println("户主:"+account.getName());
        System.out.println("余额:"+account.getSurplus_money());
        System.out.println("当前取现额度:"+account.getMax_money());
    }
    //2.存款
    public static void stare_money(Account account,Scanner sc){
        System.out.println("===============欢迎来到存款操作页面===============");
        System.out.println("请输入存款的金额");
        double number=sc.nextDouble();
        account.setSurplus_money(account.getSurplus_money()+number);
        System.out.println("您当前余额:"+account.getSurplus_money());
    }
    //3.取款
    public static void get_money(Account account,Scanner sc){
        System.out.println("===============欢迎来到取款操作页面===============");
        while (true){
            System.out.println("请输入取款的金额");
            double number=sc.nextDouble();
            if (number>account.getSurplus_money()){
                System.out.println("当前余额不足。当前余额是:"+account.getSurplus_money());
            }else {
                if(number>account.getMax_money()){
                    System.out.println("您当前取款金额超过了每次限额");
                }else {
                    account.setSurplus_money(account.getSurplus_money()-number);
                    System.out.println("您当前取钱完成,请拿走您的钱。当前账户余额为:"+account.getSurplus_money());
                    break;
                }
            }
        }
    }
    //4.转账
    public static void Zhuan_money(Account account,ArrayList<Account>arrayList,Scanner sc){
        System.out.println("===============欢迎来到转账操作页面===============");
        if(arrayList.size()<2){
            System.out.println("当前无其他用户可以转,去注册一个账户吧");
        } else {
            OUT1:
            while (true) {
                System.out.println("请输入转入的卡号");
                int id = sc.nextInt();
                if (id==account.getId()){
                    System.out.println("转入账号不能为本账户");
                }else {
                    OUT:
                    for (int i = 0; i < arrayList.size(); i++) {
                        if (id == arrayList.get(i).getId()) {
                            String name = arrayList.get(i).getName();//获得转入账户的姓名
                            String s1 = "" + name.charAt(0);
                            String new_name = name.replace(s1, "*");
                            System.out.println("请您确认" + new_name + "的姓氏来确认对方用户");
                            while (true) {
                                System.out.println("请输入对方姓氏");
                                String s = sc.next();
                                if (s1.equals(s)) {
                                    System.out.println("请输入转入的金额");
                                    double number = sc.nextDouble();
                                    //本账户减
                                    if (account.getSurplus_money() > number) {
                                        account.setSurplus_money(account.getSurplus_money() - number);
                                        arrayList.get(i).setSurplus_money(arrayList.get(i).getSurplus_money() + number);
                                        System.out.println("转入成功。当前余额为"+ account.getSurplus_money());
                                    } else {
                                        System.out.println("账户余额不足。当前余额为" + account.getSurplus_money());
                                    }
                                    break OUT1;
                                } else {
                                    System.out.println("您输入对方卡号有误");
                                    break OUT;
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    //5.修改密码
    public static void Update_Account(Account account,Scanner sc){
        System.out.println("===============欢迎来到修改密码操作页面===============");
        while (true){
            System.out.println("请输入修改后的密码");
            String s= sc.next();
            System.out.println("请确认密码");
            String s1=sc.next();
            if (s1.equals(s)){
                account.setName(s);
                System.out.println("修改成功");
                break;
            }else {
                System.out.println("两次输入的不一致,请重新输入");
            }
        }
    }
    //6.退出
    public static void exit(){
        System.exit(-1);
    }
    //7.注销用户
    public static void remove_account(Account account,Scanner sc,ArrayList<Account>arrayList){
        System.out.println("===============欢迎来到注销操作页面===============");
        System.out.println("您确定要注销吗(1--false)");
        int num=sc.nextInt();
        if (num==1){
            arrayList.remove(account);
        }
    }

总代码:

public class Account {
    private int id;//卡号
    private String name;//账户名
    private String password;//密码
    private double max_money;//最大额度
    private double surplus_money;//剩余金额

    public Account() {
    }

    public Account(int id, String name, String password, double max_money, double surplus_money) {
        this.id = id;
        this.name = name;
        this.password = password;
        this.max_money = max_money;
        this.surplus_money = surplus_money;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

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

    public double getMax_money() {
        return max_money;
    }

    public void setMax_money(double max_money) {
        this.max_money = max_money;
    }

    public double getSurplus_money() {
        return surplus_money;
    }

    public void setSurplus_money(double surplus_money) {
        this.surplus_money = surplus_money;
    }
}

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我要学好编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值