银行app模拟器,建设农业邮政工商中国,java版源码【仅供学习娱乐用途
这个银行APP模拟器实现了账户管理、存款、取款、转账、交易记录等核心功能。代码结构清晰,包含三个主要类:BankAccount处理账户逻辑,Transaction记录交易信息,BankApp提供用户界面,仅供学习娱乐参考用途哈。成品下载地址:https://www.pan38.com/yun/share.php?code=JCnzE 提取密码:1135。源码部分:【仅供学习娱乐教程演示用途】
·
成品下载地址:https://www.pan38.com/yun/share.php?code=JCnzE 提取密码:1135
这个银行APP模拟器实现了账户管理、存款、取款、转账、交易记录等核心功能。代码结构清晰,包含三个主要类:BankAccount处理账户逻辑,Transaction记录交易信息,BankApp提供用户界面,仅供学习娱乐参考用途哈。
源码部分:【仅供学习娱乐教程演示用途】
import java.util.ArrayList;
import java.util.Date;
import java.text.SimpleDateFormat;
public class BankAccount {
private String accountNumber;
private String accountHolder;
private double balance;
private ArrayList<Transaction> transactions;
private String accountType;
private Date creationDate;
public BankAccount(String accountNumber, String accountHolder, String accountType) {
this.accountNumber = accountNumber;
this.accountHolder = accountHolder;
this.accountType = accountType;
this.balance = 0.0;
this.transactions = new ArrayList<>();
this.creationDate = new Date();
}
public void deposit(double amount) {
if(amount <= 0) {
System.out.println("存款金额必须大于0");
return;
}
balance += amount;
transactions.add(new Transaction("存款", amount, balance));
System.out.println("存款成功,当前余额: " + balance);
}
public void withdraw(double amount) {
if(amount <= 0) {
System.out.println("取款金额必须大于0");
return;
}
if(amount > balance) {
System.out.println("余额不足");
return;
}
balance -= amount;
transactions.add(new Transaction("取款", amount, balance));
System.out.println("取款成功,当前余额: " + balance);
}
public void transfer(BankAccount target, double amount) {
if(amount <= 0) {
System.out.println("转账金额必须大于0");
return;
}
if(amount > balance) {
System.out.println("余额不足");
return;
}
this.balance -= amount;
target.balance += amount;
transactions.add(new Transaction("转出到"+target.accountNumber, amount, balance));
target.transactions.add(new Transaction("转入自"+this.accountNumber, amount, target.balance));
System.out.println("转账成功,当前余额: " + balance);
}
public void printStatement() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("账户号码: " + accountNumber);
System.out.println("账户持有人: " + accountHolder);
System.out.println("账户类型: " + accountType);
System.out.println("开户日期: " + sdf.format(creationDate));
System.out.println("当前余额: " + balance);
System.out.println("\n交易记录:");
System.out.println("时间\t\t\t类型\t金额\t余额");
for(Transaction t : transactions) {
System.out.println(sdf.format(t.getTime()) + "\t" + t.getType() + "\t" + t.getAmount() + "\t" + t.getBalance());
}
}
// 其他getter方法...
}
import java.util.Date;
public class Transaction {
private String type;
private double amount;
private double balance;
private Date time;
public Transaction(String type, double amount, double balance) {
this.type = type;
this.amount = amount;
this.balance = balance;
this.time = new Date();
}
public String getType() {
return type;
}
public double getAmount() {
return amount;
}
public double getBalance() {
return balance;
}
public Date getTime() {
return time;
}
}
java.util.Scanner;
import java.util.HashMap;
public class BankApp {
private static HashMap<String, BankAccount> 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. 登录账户");
System.out.println("2. 创建新账户");
System.out.println("3. 退出系统");
System.out.print("请选择: ");
int choice = scanner.nextInt();
scanner.nextLine(); // 消耗换行符
switch(choice) {
case 1:
login();
break;
case 2:
createAccount();
break;
case 3:
System.out.println("感谢使用,再见!");
System.exit(0);
default:
System.out.println("无效选择,请重试");
}
}
}
private static void login() {
System.out.print("请输入账号: ");
String accountNumber = scanner.nextLine();
if(!accounts.containsKey(accountNumber)) {
System.out.println("账号不存在");
return;
}
BankAccount account = accounts.get(accountNumber);
accountMenu(account);
}
private static void accountMenu(BankAccount account) {
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.print("请选择: ");
int choice = scanner.nextInt();
scanner.nextLine(); // 消耗换行符
switch(choice) {
case 1:
System.out.print("请输入存款金额: ");
double depositAmount = scanner.nextDouble();
account.deposit(depositAmount);
break;
case 2:
System.out.print("请输入取款金额: ");
double withdrawAmount = scanner.nextDouble();
account.withdraw(withdrawAmount);
break;
case 3:
System.out.print("请输入目标账号: ");
String targetNumber = scanner.nextLine();
if(!accounts.containsKey(targetNumber)) {
System.out.println("目标账号不存在");
break;
}
System.out.print("请输入转账金额: ");
double transferAmount = scanner.nextDouble();
account.transfer(accounts.get(targetNumber), transferAmount);
break;
case 4:
account.printStatement();
break;
case 5:
account.printStatement();
break;
case 6:
return;
default:
System.out.println("无效选择,请重试");
}
}
}
private static void createAccount() {
System.out.print("请输入账户持有人姓名: ");
String holder = scanner.nextLine();
System.out.print("请输入账户类型(1.储蓄账户 2.支票账户): ");
int typeChoice = scanner.nextInt();
scanner.nextLine();
String accountType = typeChoice == 1 ? "储蓄账户" : "支票账户";
String accountNumber = generateAccountNumber();
BankAccount newAccount = new BankAccount(accountNumber, holder, accountType);
accounts.put(accountNumber, newAccount);
System.out.println("账户创建成功!");
System.out.println("您的账号是: " + accountNumber);
}
private static String generateAccountNumber() {
return "62" + (100000000 + (int)(Math.random() * 900000000));
}
private static void initializeSampleAccounts() {
accounts.put("621234567890", new BankAccount("621234567890", "张三", "储蓄账户"));
accounts.put("621234567891", new BankAccount("621234567891", "李四", "支票账户"));
accounts.get("621234567890").deposit(10000);
accounts.get("621234567891").deposit(5000);
}
}
更多推荐
所有评论(0)