/*
original author: jacky Li
Time of completion:2022.12.20
Last edited: 2022.12.20
*/
package bank;
/**
* 银行账户实体类
*
*/
public class BankAccount {
private String name;
private String bankId;
private String password;
private double money;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getBankId() {
return bankId;
}
public void setBankId(String bankId) {
this.bankId = bankId;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
@Override
public String toString() {
return "账户名:" + name + "\n银行卡号:" + bankId + "\n银行卡密码:" + password + "\n余额:" + money;
}
public BankAccount(String name, String bankId, String password, double money) {
super();
this.name = name;
this.bankId = bankId;
this.password = password;
this.money = money;
}
public BankAccount() {
super();
}
}
/*
original author: jacky Li
Time of completion:2022.12.20
Last edited: 2022.12.20
*/
package bank;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Main {
// 储存账户信息
private static Map<String, BankAccount> accounts;
private static Scanner scanner = new Scanner(System.in);
private static BankAccount bankAccount;
/**
* 初始化账户信息
*
* @return 初始化结果
*/
public static boolean init() {
BankAccount account1 = new BankAccount("张三", "11234", "123", 1000.99);
BankAccount account2 = new BankAccount("李四", "22134", "456", 2000);
BankAccount account3 = new BankAccount("王五", "33124", "789", 100.99);
accounts = new HashMap<String, BankAccount>();
accounts.put(account1.getBankId(), account1);
accounts.put(account2.getBankId(), account2);
accounts.put(account3.getBankId(), account3);
// 返回初始化结果
return accounts.isEmpty() ? false : true;
}
/**
* 系统入口
*
* @param args
*/
public static void main(String[] args) {
System.out.println("银行系统正在启动...");
if (init()) {
System.out.println("--系统启动成功--");
System.out.println("输入卡号:");
String id = scanner.next();
System.out.println("输入密码:");
String psw = scanner.next();
if (login(id, psw)) {
// 进入系统
System.out.println("--登录成功--");
menu(bankAccount);
} else {
System.out.println("--登录失败--");
}
} else {
System.out.println("--系统启动失败--");
}
}
/**
* 返回登录结果
*
* @param id
* @param psw
* @return
*/
private static boolean login(String id, String psw) {
bankAccount = accounts.get(id);
return null == bankAccount ? false : true;
}
/**
* 功能菜单
*
* @param account
*/
private static void menu(BankAccount account) {
System.out.println("--当前账户:" + account.getName() + "--");
main: while (true) {
System.out.println("1:存款 2:取款 3:余额 4:修改密码 0:退出");
int item = scanner.nextInt();
switch (item) {
case 0:
scanner.close();
System.out.println("--退出系统--");
break main;
case 1:
System.out.println("--存款系统--");
saveMoney(accounts, account);
break;
case 2:
System.out.println("--取款系统--");
ereduceMoney(accounts, account);
break;
case 3:
System.out.println("--余额系统--");
showMoney(account);
break;
case 4:
System.out.println("--修改密码--");
rePassword(accounts, account);
break;
default:
System.out.println("--错误的指令--");
break;
}
}
}
/**
* 修改密码
*
* @param accounts2
* @param account
*/
private static void rePassword(Map<String, BankAccount> accs, BankAccount account) {
System.out.println("输入旧的密码:");
String oldPsw = scanner.next();
if (oldPsw.equals(account.getPassword())) {
System.out.println("输入新的密码:");
String newPsw = scanner.next();
account.setPassword(newPsw);
accs.put(account.getBankId(), account);
System.out.println("--修改成功--");
} else {
System.out.println("--旧密码错误--");
}
}
private static void showMoney(BankAccount account) {
System.out.println(account);
}
/**
* 取款
*
* @param accounts2
* @param account
*/
private static void ereduceMoney(Map<String, BankAccount> accounts2, BankAccount account) {
System.out.println("输入取款金额:");
double money = scanner.nextDouble();
double now = account.getMoney();
if (money <= now) {
account.setMoney(now - money);
accounts2.put(account.getBankId(), account);
System.out.println("--取款成功--");
} else {
System.out.println("--余额不足--");
}
}
private static void saveMoney(Map<String, BankAccount> accounts2, BankAccount account) {
System.out.println("输入存入金额:");
double money = scanner.nextDouble();
account.setMoney(account.getMoney() + money);
accounts2.put(account.getBankId(), account);
System.out.println("--存款成功--");
}
}