下载地址(文章指定相关附件):www.pan38.com/dow/share.p… 提取密码:7167
纯开源的代码,我估计稍微有点jar基础的都能打包成单独的app,而且这玩意的逼真°非常高的,用来装逼娱乐恶搞没问题哈,那么怎么用呢,我们用Mt文件管理器吧代码完全扒拉出来了,代码部分我下面会分享,先看下界面吧。
源码部分:
import java.util.HashMap; import java.util.Scanner; import java.text.SimpleDateFormat; import java.util.Date; import java.util.ArrayList;
public class BankSystem { private static HashMap<String, EnhancedBankAccount> accounts = new HashMap<>(); private static Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
initializeSampleAccounts();
while (true) {
System.out.println("\n===== 银行模拟系统 =====");
System.out.println("1. 创建账户 2. 存款 3. 取款");
System.out.println("4. 转账 5. 查询流水 6. 退出");
System.out.print("请选择操作: ");
int choice = scanner.nextInt();
scanner.nextLine(); // 清除缓冲区
switch (choice) {
case 1: createAccount(); break;
case 2: deposit(); break;
case 3: withdraw(); break;
case 4: transfer(); break;
case 5: printStatement(); break;
case 6: System.exit(0);
default: System.out.println("无效输入");
}
}
}
private static void initializeSampleAccounts() {
accounts.put("1001", new EnhancedBankAccount("1001", "张三"));
accounts.put("1002", new EnhancedBankAccount("1002", "李四"));
accounts.get("1001").deposit(5000);
accounts.get("1002").deposit(3000);
}
private static void createAccount() {
System.out.print("输入账号: ");
String accNum = scanner.nextLine();
System.out.print("输入户名: ");
String name = scanner.nextLine();
if (accounts.containsKey(accNum)) {
System.out.println("账号已存在");
} else {
accounts.put(accNum, new EnhancedBankAccount(accNum, name));
System.out.println("账户创建成功");
}
}
private static void deposit() {
System.out.print("输入账号: ");
String accNum = scanner.nextLine();
if (!accounts.containsKey(accNum)) {
System.out.println("账号不存在");
return;
}
System.out.print("输入存款金额: ");
double amount = scanner.nextDouble();
accounts.get(accNum).deposit(amount);
}
private static void withdraw() {
System.out.print("输入账号: ");
String accNum = scanner.nextLine();
if (!accounts.containsKey(accNum)) {
System.out.println("账号不存在");
return;
}
System.out.print("输入取款金额: ");
double amount = scanner.nextDouble();
accounts.get(accNum).withdraw(amount);
}
private static void transfer() {
System.out.print("输入转出账号: ");
String fromAcc = scanner.nextLine();
System.out.print("输入转入账号: ");
String toAcc = scanner.nextLine();
if (!accounts.containsKey(fromAcc) || !accounts.containsKey(toAcc)) {
System.out.println("账号不存在");
return;
}
System.out.print("输入转账金额: ");
double amount = scanner.nextDouble();
accounts.get(fromAcc).transferTo(accounts.get(toAcc), amount);
}
private static void printStatement() {
System.out.print("输入查询账号: ");
String accNum = scanner.nextLine();
if (!accounts.containsKey(accNum)) {
System.out.println("账号不存在");
return;
}
accounts.get(accNum).printStatement();
}
}
import java.util.ArrayList; import java.text.SimpleDateFormat; import java.util.Date;
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);
}
}
}
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);
}
}
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);
}
}
4.0.0 com.bank bank-simulator 1.0-SNAPSHOT <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> org.codehaus.mojo exec-maven-plugin 3.0.0 BankSystem