实现ATM机(多帐号),实现登陆、存款、取款、查询余额、改密码、转帐、退出的功能。
public class ATM2 {
public static String[] userArray = {"张飞", "关羽", "刘备"};
public static String[] codeArray = {"001", "002", "003"};
public static String[] pwdArray = {"111", "222", "333"};
public static int[] moneyArray = {1000, 2000, 3000};
public static int loginIndex = 0;
public static void main(String[] args) {
JOptionPane.showMessageDialog(null, "欢迎光临XXXX银行!");
if (login() == false) {
JOptionPane.showMessageDialog(null, "非法用户!");
System.exit(0);
}
while (true) {
String item = JOptionPane.showInputDialog(null, "1.存款\n2.取款\n3.查询余额\n4.改密码\n5.转账\n6.退出\n7.Test");
switch (item) {
case "1":
saveMoney();
break;
case "2":
getMoney();
break;
case "3":
findMoney();
break;
case "4":
chagePwd();
break;
case "5":
transfer();
break;
case "6":
JOptionPane.showMessageDialog(null, "感谢你的使用!再见!");
System.exit(0);
break;
case "7":
showInfo();
break;
default:
JOptionPane.showMessageDialog(null, "请按指定指令操作!");
}
}
}
public static boolean login() {
for (int i = 0; i < 3; i++) {
String codeInput = JOptionPane.showInputDialog(null, "请输入账号:");
String pwdInput = JOptionPane.showInputDialog(null, "请输入密码:");
if (checkLogin(codeInput, pwdInput) != -1) {
JOptionPane.showMessageDialog(null, "欢迎您! " + userArray[loginIndex]);
return true;
} else {
JOptionPane.showMessageDialog(null, "账号或密码错误!");
}
}
return false;
}
public static int checkLogin(String code, String pwd) {
for (int i = 0; i < codeArray.length; i++) {
if (code.equals(codeArray[i]) && pwd.equals(pwdArray[i])) {
loginIndex = i;
return i;
}
}
return -1;
}
public static void saveMoney() {
String save = JOptionPane.showInputDialog(null, "请输入要存的金额:");
moneyArray[loginIndex] += Integer.parseInt(save);
}
public static void getMoney() {
String get = JOptionPane.showInputDialog(null, "请输入要取走的金额:");
if (Integer.parseInt(get) > moneyArray[loginIndex]) {
JOptionPane.showMessageDialog(null, "账户余额不足!");
return;
}
moneyArray[loginIndex] -= Integer.parseInt(get);
}
public static void findMoney() {
JOptionPane.showMessageDialog(null, "当前账户可用余额为:" + moneyArray[loginIndex] + "万");
}
public static void chagePwd() {
String oldPwd = JOptionPane.showInputDialog(null, "请输入旧密码:");
if (oldPwd.equals(pwdArray[loginIndex]) == false) {
JOptionPane.showMessageDialog(null, "密码错误!");
return;
}
String newPwd = JOptionPane.showInputDialog(null, "请输入新密码:");
String newPwdAgain = JOptionPane.showInputDialog(null, "请再次输入新密码:");
if (newPwd.equals(newPwdAgain) == false) {
JOptionPane.showMessageDialog(null, "两次密码输入不一致!");
return;
}
pwdArray[loginIndex] = newPwd;
}
public static void transfer() {
String transCode = JOptionPane.showInputDialog(null, "请输入转账账号:");
int transIndex = checkCode(transCode);
if (transIndex == -1) {
JOptionPane.showMessageDialog(null, "账号不存在!");
return;
} else if (transIndex == loginIndex) {
JOptionPane.showMessageDialog(null, "不能给自己账户转账!");
return;
}
String transInput = JOptionPane.showInputDialog(null, "请输入转账金额:");
int money = Integer.parseInt(transInput);
if (money > moneyArray[loginIndex]) {
JOptionPane.showMessageDialog(null, "账户余额不足!");
return;
}
moneyArray[loginIndex] -= money;
moneyArray[transIndex] += money;
}
public static int checkCode(String transCode) {
for (int i = 0; i < codeArray.length; i++) {
if (transCode.equals(codeArray[i])) {
return i;
}
}
return -1;
}
public static void showInfo() {
String info = "账号 密码 余额(单位/万)\n";
for (int i = 0; i < codeArray.length; i++) {
info += codeArray[i] + " " + pwdArray[i] + " " + moneyArray[i] + "\n";
}
JOptionPane.showMessageDialog(null, info);
}