public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[] user_cards = new int[1];
int[] user_pwd = new int[1];
int[] user_balance = new int[1];
boolean[] user_status = new boolean[1];
String name = "", pwd = "", other_account = "", other_balance;
int len = 1;
int index;
boolean flag_1 = false;
// 持续在线
flag2: while (true) {
System.out.println("\n\n\n----------------欢迎使用ATM自助系统----------------");
System.out.print("请输入账号:");
name = scanner.next();
if (name.equals("admin")) {
System.out.print("请输入密码:");
pwd = scanner.next();
if (pwd.equals("admin")) {
System.out.println("\r-----登录成功,亲爱的管理员 " + name + " 欢迎您-----\r");
flag3: for (;;) {
System.out.println(
"-------------------\r" + "\t1 开卡\r\n" + "\t2 注销卡\r\n" + "\t3 查看所有用户列表(可以查看单个用户)\r\n"
+ "\t4 冻结用户\r\n" + "\t5 切换用户\r\n" + "\t6 退出系统\r" + "-------------------");
System.out.print("请输入您的选择:");
int operation = scanner.nextInt();
switch (operation) {
// 开卡
case 1:
if (flag_1 == true) {
user_cards = Arrays.copyOf(user_cards, len + 1);
user_pwd = Arrays.copyOf(user_pwd, len + 1);
user_status = Arrays.copyOf(user_status, len + 1);
user_balance = Arrays.copyOf(user_balance, len + 1);
}
len = user_cards.length;
user_cards[len - 1] = 1000 + len;
System.out.print("新开卡号为:" + user_cards[len - 1]);
user_status[len - 1] = true;
user_balance[len - 1] = 0;
flag_1 = true;
System.out.print("\t请设置密码:");
user_pwd[len - 1] = scanner.nextInt();
System.out.println("设置成功,密码为:" + user_pwd[len - 1] + "\r\r");
break;
// 注销卡
case 2:
if (user_cards.length == 1 && user_cards[0] == 0) {
System.out.println("当前账户为空,请先开户!");
break;
}
for (int i = 0; i < user_cards.length; i++) {
System.out.print("账号:" + user_cards[i] + "\t");
System.out.print("密码:" + user_pwd[i] + "\t");
System.out.print("余额:" + user_balance[i] + "\t");
if (user_status[i]) {
System.out.println("状态:启用中");
} else {
System.out.println("状态:已停用");
}
}
System.out.print("输入需要删除的账户: ");
name = scanner.next();
for (int j = 0; j < user_cards.length; j++) {
if (name.equals(Integer.toString(user_cards[j]))) {
System.out.println("是否删除该账户?\r\t1.确定\r\t2.取消");
int select = scanner.nextInt();
switch (select) {
case 1:
for (int k = 0; k < user_cards.length; k++) {
if (name.equals(Integer.toString(user_cards[k]))) {
index = k;
if (k < user_cards.length) {
for (int l = k; l < user_cards.length - 1; l++) {
user_cards[l] = user_cards[l + 1];
user_pwd[l] = user_pwd[l + 1];
user_status[l] = user_status[l + 1];
user_balance[l] = user_balance[l + 1];
}
user_cards = Arrays.copyOf(user_cards, user_cards.length - 1);
user_pwd = Arrays.copyOf(user_pwd, user_pwd.length - 1);
user_status = Arrays.copyOf(user_status, user_status.length - 1);
user_balance = Arrays.copyOf(user_balance, user_balance.length - 1);
System.out.println("删除成功");
continue flag3;
}
}
}
}
}
break flag3;
}
// 查看所有用户列表
case 3:
for (int i = 0; i < user_cards.length; i++) {
if (!name.equals(Integer.toString(user_cards[i]))) {
System.out.println("账号不存在!请检查后从新输入!\r\r");
}
break;
}
if (user_cards.length == 1 && user_cards[0] == 0) {
System.out.print("当前账户为空,请先开户!\r\r\r");
break;
}
for (int i = 0; i < user_cards.length; i++) {
System.out.print("账号:" + user_cards[i] + "\t");
System.out.print("密码:" + user_pwd[i] + "\t");
System.out.print("余额:" + user_balance[i] + "\t");
if (user_status[i]) {
System.out.print("状态: 启用中\r");
} else {
System.out.print("状态: 已停用\r");
}
}
System.out.println("");
break;
// 冻结用户
case 4:
for (int i = 0; i < user_cards.length; i++) {
System.out.print("账号:" + user_cards[i] + "\t");
System.out.print("密码:" + user_pwd[i] + "\t");
System.out.print("余额:" + user_balance[i] + "\t");
if (user_status[i]) {
System.out.println("状态: 启用中");
} else {
System.out.println("状态: 已停用");
}
}
System.out.print("输入需要冻结的账户:");
name = scanner.next();
// 处理输入不正确
for (int i = 0; i < user_cards.length; i++) {
if (!name.equals(Integer.toString(user_cards[i]))) {
System.out.println("账号不存在!请检查后从新输入!\r\r");
}
break;
}
flag1: for (int i = 0; i < user_cards.length; i++) {
if (name.equals(Integer.toString(user_cards[i]))) {
System.out.println("是否停用该账户?\r\t1.停用\r\t2.启用");
int select = scanner.nextInt();
switch (select) {
case 1:
user_status[i] = false;
System.out.println("\t停用成功\r");
break;
case 2:
user_status[i] = true;
System.out.println("\t启用成功\r");
break;
default:
System.out.println("输入有误请从新输入!\r\r\r");
break;
}
}
}
break;
// 切换用户
case 5:
System.out.println("退出成功!欢迎再次使用!\r\r\r");
continue flag2;
// 退出系统
case 6:
System.out.println("退出成功!欢迎再次使用!\r\r\r");
break flag2;
default:
System.out.println("输入有误请从新输入!\r\r\r");
break;
}
}
} else {
System.out.println("密码错误请检查后从新输入!\r\r\r");
continue;
}
} else {
// 处理没有账户时提示
for (int i = 0; i < user_cards.length; i++) {
if (!name.equals(Integer.toString(user_cards[i]))) {
System.out.println("账号不存在!请检查后从新输入!\r\r");
}
break;
}
for (int f = 0; f < user_cards.length; f++) {
if (name.equals(Integer.toString(user_cards[f]))) {
if (user_status[f] == false) {
System.out.println("您的账户被停用,请联系管理员处理!");
break;
}
} else {
continue;
}
flag: for (int i = 0; i < user_cards.length; i++) {
System.out.print("请输入密码:");
pwd = scanner.next();
if (pwd.equals(Integer.toString(user_pwd[i]))) {
System.out.print("登录成功, " + user_cards[i] + " 欢迎您");
for (;;) {
System.out
.println("-------------------\r" + "\t1 查看余额\r\n" + "\t2 转账\r\n" + "\t3 取钱\r\n"
+ "\t4 存钱\r\n" + "\t5 切换用户\r\n" + "\t6 退出系统\r" + "-------------------");
System.out.print("请输入您的选择: ");
int operation = scanner.nextInt();
switch (operation) {
// 查看余额
case 1:
for (int z = 0; z < user_cards.length; z++) {
if (name.equals(Integer.toString(user_cards[z]))) {
System.out.println("您的余额为:" + user_balance[z] + "元");
}
}
break;
// 转账
case 2:
System.out.print("请输入对方账号: ");
other_account = scanner.next();
if (name.equals(other_account)) {
System.out.println("不能给自己转账!请重新选择操作!\r\r\r");
break;
}
for (int z = 0; z < user_cards.length; z++) {
if (other_account.equals(Integer.toString(user_cards[z]))) {
System.out.print("请输入转账金额: ");
other_balance = scanner.next();
if (Integer.parseInt(other_balance) <= user_balance[z]) {
user_balance[z] -= Integer.parseInt(other_balance);
System.out.println("转账成功您的当前余额为: " + user_balance[z] + " 元");
} else {
System.out.println("余额不足!\r\r\r");
}
} else {
System.out.println("对方账户不存在!请检查后从新输入!\r\r\r");
break;
}
}
break flag;
// 取钱
case 3:
for (int z = 0; z < user_cards.length; z++) {
System.out.println("请输入取款金额:");
other_balance = scanner.next();
if (Integer.parseInt(other_balance) <= user_balance[z]) {
user_balance[z] -= Integer.parseInt(other_balance);
System.out.println("取款成功您的当前余额为:" + user_balance[z] + "元");
} else {
System.out.println("余额不足!\r\r\r");
}
}
break;
// 4 存钱
case 4:
for (int z = 0; z < user_cards.length; z++) {
if (name.equals(Integer.toString(user_cards[z]))) {
System.out.print("请放置存入的纸币!");
other_balance = scanner.next();
user_balance[z] += Integer.parseInt(other_balance);
System.out.println("存入成功:" + other_balance + "元");
System.out.println("您当前余额为:" + user_balance[z] + "元\r\r\r");
}
}
break;
// 切换用户
case 5:
System.out.println("退出成功!欢迎再次使用!\r\r\r");
continue flag2;
// 退出系统
case 6:
System.out.println("退出成功!欢迎再次使用!\r\r\r");
break flag2;
default:
System.out.println("输入有误请从新输入!\r\r");
break;
}
}
} else {
System.out.println("密码错误请检查后从新输入!");
break;
}
}
}
}
}
}