基于控制台的银行ATM取款机


程序有4个类,Human类负责创建个人信息类,Menu负责创建菜单,Function类进行功能实现,Major类是主函数,以arraylist集合作为数据存储,实现了查看余额,存钱,取钱,不同账户之间转账功能,可查看个人信息并修改和填加账户。

Human类

package ATM;

public class Human {
    private String account;
    private String name;
    private String Idcord;
    private String password;
    private int money;

    public String getAccount() {
        return account;
    }

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

    public String getName() {
        return name;
    }

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

    public String getIdcord() {
        return Idcord;
    }

    public void setIdcord(String idcord) {
        Idcord = idcord;
    }

    public String getPassword() {
        return password;
    }

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

    public int getMoney() {
        return money;
    }

    public void setMoney(int money) {
        this.money = money;
    }

    public Human() {
    }

    public Human(String account, String name, String idcord, String password, int money) {
        this.account = account;
        this.name = name;
        Idcord = idcord;
        this.password = password;
        this.money = money;
    }
}

设置变量信息及构造方法。

Major类

package ATM;


import java.util.ArrayList;
import java.util.Scanner;

public class Menu {
    Functions n = new Functions();
    public void majormenu(ArrayList<Human> arr,String account) {
        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.退出系统");
        System.out.println("-------------------------");
        System.out.println("请输入数字,选择功能");
        System.out.println("请输入选项:");
        Scanner sc = new Scanner(System.in);
        int i = sc.nextInt();
        switch (i) {
            case 1:
                n.accounting(arr,account);
                majormenu(arr,account);
                break;
            case 2:
                n.addmoney(arr,account);
                majormenu(arr,account);
                break;
            case 3:
                n.money(arr,account);
                majormenu(arr,account);
                break;
            case 4:
                n.correction(arr,account);
                majormenu(arr,account);
                break;
            case 5:
                n.write(arr);
                majormenu(arr,account);
                break;
            case 6:n.print(arr);
                majormenu(arr,account);
                break;
            case 7:
                System.out.println("谢谢使用");
                System.exit(0);
                break;

            default:
                throw new IllegalStateException("Unexpected value: " + i);
        }
}
}

打印菜单页面,并与Functions中功能向关联。

Functions类

addarr方法

public  ArrayList<Human> addarr() {
       ArrayList<Human> arr = new ArrayList<>();
       Human s1 = new Human("12345", "amdin1", "11111", "123456", 0);
       Human s2 = new Human("23456", "amdin2", "22222", "234567", 0);
       Human s3 = new Human("34567", "amdin3", "33333", "345678", 0);
       arr.add(s1);
       arr.add(s2);
       arr.add(s3);
       return arr;
   }

创建存储信息的ArrayList集合,并初始化了3个账户。

login方法

public String login(ArrayList<Human> arr) {
       System.out.println("请输入账号:");
       Scanner sc = new Scanner(System.in);
       String account = sc.next();
       int change=2;
       for (Human s : arr) {
           if (account.equals(s.getAccount())) {
               change = 1;
               break;
           }
       }
       if(change!=1){
           System.out.println("账号错误");
           System.exit(0);
       }
       System.out.println("请输入密码:");
       String word = sc.next();
       for (Human m : arr) {
           if (account.equals(m.getAccount())) {
               if(word.equals(m.getPassword())){
                   System.out.println("登录成功");
                   break;
               } else {
                   System.out.println("密码错误,请重新输入");
                   System.exit(0);
               }
           }
       }
       return account;
   }

输入账号密码进行登录,会与储存好的信息进行对比,并返回账号,作为后续操作此账户的依据。

print方法

public void print(ArrayList<Human> arr) {
     System.out.println("用户详细信息");
     System.out.println("------------------------------------------------");
     System.out.println("账号" + "\t\t" + "姓名" + "\t\t" + "身份证号" + "\t" + "密码" + "\t\t" + "余额");
     for (Human s : arr) {
         System.out.println(s.getAccount() + "\t" + s.getName() + "\t" + s.getIdcord() + "\t" + s.getPassword() + "\t" + s.getMoney());
     }
 }

打印账户信息

accounting方法

public void accounting(ArrayList<Human> arr, String account) {
     Scanner sc = new Scanner(System.in);
     for (Human m:arr) {
         if (account.equals(m.getAccount())) {
             System.out.println("请输入取款金额:");
             int cost = sc.nextInt();
             int balance = m.getMoney() - cost;
             m.setMoney(balance);
             System.out.println("取款成功");
             System.out.println("账户"+account);
             System.out.println("姓名"+m.getName());
             System.out.println("取款金额"+cost);
             System.out.println("剩余金额"+m.getMoney());
         }
     }
 }

取款功能

addmoney

public void addmoney(ArrayList<Human> arr, String account) {
    Scanner sc = new Scanner(System.in);
    for (Human s:arr) {
        if (account.equals(s.getAccount())) {
            System.out.println("请输入存款金额");
            int cost = sc.nextInt();
            int balance = s.getMoney() + cost;
            s.setMoney(balance);
            System.out.println("存款成功");
            System.out.println("账户"+account);
            System.out.println("姓名"+s.getName());
            System.out.println("存款金额"+cost);
            System.out.println("剩余金额"+s.getMoney());
        }

    }
}

存款功能

correction方法

public void correction(ArrayList<Human> arr, String account) {
       Scanner sc = new Scanner(System.in);
       for (int i = 0; i < arr.size(); i++) {
           Human m = arr.get(i);
           if (account.equals(m.getAccount())) {
               System.out.println("请输入身份证号:");
               String idcord = sc.nextLine();
               if (idcord.equals(m.getIdcord())) {
                   System.out.println("请输入新密码");
                   String nextword = sc.nextLine();
                   m.setPassword(nextword);
               } else {
                   System.out.println("身份证号码错误,请重新输入");
                   correction(arr, account);
               }
           }
       }
   }

修改密码

write

public void write(ArrayList<Human> arr) {
        System.out.println("请输入账户信息:");
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入账号");
        String account = sc.next();
        System.out.println("请输入姓名");
        String name = sc.next();
        System.out.println("请输入身份证号码:");
        String idcord = sc.next();
        System.out.println("请输入密码");
        String password = sc.next();
        System.out.println("请输入余额");
        int money = sc.nextInt();
        Human h = new Human();
        h.setAccount(account);
        h.setIdcord(idcord);
        h.setName(name);
        h.setPassword(password);
        h.setMoney(money);
        arr.add(h);
    }

增加账户

money方法

public void money(ArrayList<Human> arr, String account) {
       Scanner sc = new Scanner(System.in);
       for (int i=0;i< arr.size();i++) {
           Human old= arr.get(i);
           if (account.equals(old.getAccount())) {
               System.out.println("请输入转账账户:");
               String account1 = sc.nextLine();
               for(int j=0;j< arr.size();j++){
                   Human s= arr.get(j);
                   if (account1.equals(s.getAccount())) {
                       System.out.println("请输入转账金额:");
                       int money = sc.nextInt();
                       old.setMoney(old.getMoney() - money);
                       s.setMoney(s.getMoney() + money);
                       System.out.println("转账成功");
                       System.out.println("账户"+account);
                       System.out.println("姓名"+s.getName());
                       System.out.println("转账金额"+money);
                       System.out.println("剩余金额"+old.getMoney());
                   }
               }
           }
       }
   }

转账功能


文章作者: 尘风
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 尘风 !
  目录