package Pro;
import day8_8.BalanceException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
class TestBank {
public static void main(String[] args) {
Bank bank = new Bank();
bank.login();
}
}
class Bank {
Scanner input = new Scanner(System.in);
List us = new ArrayList();
int post; // 存储当前操作账户下标
String acc;
String pwd;
// 初始化方法
public void initial() {
us.add(new User("6222020200001234567", "123456", "13900000000", "11010119910203", 2000.0));
us.add(new User("6222020200001237777", "123456", "13900000123", "11010119914567", 3000.0));
us.add(new User("6222020200001238888", "123456", "13900055667", "11010119914321", 4000.0));
}
// 登录(登录成功-进入操作界面;不成功,提示用户名不存在或是密码错误)
public void login() {
this.initial();
System.out.println("-----欢迎使用百知ATM自助终端-----");
System.out.println("-------根据提示请先登录---------");
System.out.print("请输入卡号:");
acc = input.next();
System.out.print("请输入密码:");
pwd = input.next();
// 判断:卡号和密码是否正确 -> 注意提示补全
for (int i = 0; i < us.size(); i++) {
User u = us.get(i);
if (u.getAccount().equals(acc) && u.getPassword().equals(pwd)) {
post = i;
showMenu();
break;
}
}
System.out.println("账户密码输入有误");
}
public void showMenu() {
int choice;
do {
System.out.println("-----------欢迎使用XXXATM自助终端操作界面--------");
System.out.println("1.存款 2.取款 3.转账 4.余额 5.修改密码 6.退出");
System.out.println("---------------根据提示进行操作-------------------");
System.out.print("请输入操作编号:");
choice = input.nextInt();
switch (choice) {
case 1:
this.save();
break;
case 2:
this.take();
break;
case 3:
this.transfer();
break;
case 4:
System.out.println("查询余额");
queryBalance();
break;
case 5:
System.out.println("修改密码");
updatePassword();
break;
case 6:
System.out.println("退出");
break;
default:
System.out.println("输入错误,请重新输入!");
break;
}
} while (choice != 6);// 有误就循环
}
// 查询余额
public void queryBalance() {
for (int i = 0; i < us.size(); i++) {
User u = us.get(i);
if (u.getAccount().equals(acc)) {
System.out.println(u.getBalance());
}
}
}
// 修改密码(重新输入密码进行校验,正确之后再修改,修改时有二次确认)
public void updatePassword() {
for (int i = 0; i < us.size(); i++) {
User u = us.get(i);
System.out.println("请输入用户原密码:");
String pwd = input.next();//获取用户输入原密码
if (pwd.equals(u.getPassword())) {//验证用户输入的密码
System.out.println("请输入新密码");
String pwd2 = input.next();
u.setPassword(pwd2);//正确修改
System.out.println("请确认密码");
String pwd3 = input.next();
if (pwd3.equals(pwd2)) {//判断二次输入密码是否正确
u.setPassword(pwd3);//正确修改
System.out.println("修改成功");
break;//结束
} else {
System.out.println("密码不正确");//不正确把值初始化
u.setPassword(pwd);
}
} else {
System.out.println("密码输入有误");
}
}
}
// 存款
public void save() {
System.out.println("请输入存款金额");
double d = input.nextDouble();
for (int i = 0; i < us.size(); i++) {
User u = us.get(i);
double da = u.getBalance() + d;
//将余额给到Balance
u.setBalance(da);
}
System.out.println("存款成功");
}
// 取款
public void take() {
System.out.println("请输入取款金额");
double d = input.nextDouble();
for (int i = 0; i < us.size(); i++) {
User u = us.get(i);
if (u.getBalance()>d && u.getBalance()>0){
double da=u.getBalance()-d;
u.setBalance(da);
}else {
System.out.println("余额不足");
break;
}
}
}
//转账
public void transfer() {
System.out.println("请输入转账卡号");
String s=input.next();
System.out.println("请输入转账金额");
double d = input.nextDouble();
for (int i=0;ipackage day8_8;
//自定义异常
public class BalanceException extends RuntimeException{
public BalanceException(){}
public BalanceException(String message){
super(message);
}
}