下载地址:https://www.pan38.com/share.php?code=bRtMK 提取码:8888 【仅供学习参考用途】
这个增强版银行系统包含以下合法功能:
完整的账户管理
交易记录功能
转账功能
账户流水查询
import java.util.HashMap;
import java.util.Scanner;
import java.text.SimpleDateFormat;
import java.util.Date;
// 交易记录类
class Transaction {
private String type;
private double amount;
private Date timestamp;
public Transaction(String type, double amount) {
this.type = type;
this.amount = amount;
this.timestamp = new Date();
}
@Override
public String toString() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return String.format("[%s] %s: %.2f",
sdf.format(timestamp), type, amount);
}
}
// 银行账户类(增强版)
public class EnhancedBankAccount {
private final String accountNumber;
private String accountName;
private double balance;
private ArrayList transactions;
public EnhancedBankAccount(String number, String name) {
this.accountNumber = number;
this.accountName = name;
this.balance = 0.0;
this.transactions = new ArrayList<>();
}
public void deposit(double amount) {
if(amount > 0) {
balance += amount;
transactions.add(new Transaction("存款", amount));
System.out.println("存款成功,当前余额:" + balance);
} else {
System.out.println("存款金额必须大于0");
}
}
public boolean withdraw(double amount) {
if(amount > 0 && balance >= amount) {
balance -= amount;
transactions.add(new Transaction("取款", -amount));
System.out.println("取款成功,当前余额:" + balance);
return true;
}
System.out.println("取款失败,余额不足或金额无效");
return false;
}
public void transferTo(EnhancedBankAccount target, double amount) {
if(this.withdraw(amount)) {
target.deposit(amount);
transactions.add(new Transaction("转出至"+target.accountNumber, -amount));
target.transactions.add(new Transaction("转入自"+this.accountNumber, amount));
}
}
public void printStatement() {
System.out.println("\n===== 账户流水 =====");
System.out.println("账号:" + accountNumber);
System.out.println("户名:" + accountName);
System.out.println("当前余额:" + balance);
System.out.println("\n交易记录:");
for(Transaction t : transactions) {
System.out.println(t);
}
}
}
// 银行系统类
public class BankSystem {
private HashMap accounts;
public BankSystem() {
accounts = new HashMap<>();
}
public void createAccount(String number, String name) {
if(!accounts.containsKey(number)) {
accounts.put(number, new EnhancedBankAccount(number, name));
System.out.println("账户创建成功");
} else {
System.out.println("账户已存在");
}
}
public EnhancedBankAccount getAccount(String number) {
return accounts.get(number);
}
public void showAllAccounts() {
System.out.println("\n===== 所有账户 =====");
for(EnhancedBankAccount account : accounts.values()) {
System.out.println(account.getInfo());
}
}
}
// 主程序
public class BankApp {
public static void main(String[] args) {
BankSystem system = new BankSystem();
Scanner scanner = new Scanner(System.in);
// 初始化测试数据
system.createAccount("622202100001", "张三");
system.createAccount("622202100002", "李四");
system.getAccount("622202100001").deposit(5000);
system.getAccount("622202100002").deposit(3000);
while(true) {
System.out.println("\n===== 银行系统菜单 =====");
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("0. 退出");
System.out.print("请选择操作:");
int choice = scanner.nextInt();
scanner.nextLine(); // 清除缓冲区
switch(choice) {
case 1:
System.out.print("输入账号:");
String num = scanner.nextLine();
System.out.print("输入户名:");
String name = scanner.nextLine();
system.createAccount(num, name);
break;
case 2:
System.out.print("输入账号:");
String depNum = scanner.nextLine();
EnhancedBankAccount depAcc = system.getAccount(depNum);
if(depAcc != null) {
System.out.print("输入存款金额:");
double depAmount = scanner.nextDouble();
depAcc.deposit(depAmount);
} else {
System.out.println("账户不存在");
}
break;
// 其他case类似实现...
case 0:
System.out.println("感谢使用银行系统");
scanner.close();
System.exit(0);
default:
System.out.println("无效选择");
}
}
}
}