程序有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());
}
}
}
}
}
转账功能