下载地址:https://www.pan38.com/share.php?code=bRtMK 提取码:8888 【仅供学习参考用途】
功能特点
账户管理:创建银行账户,管理账户信息
资金操作:模拟存款、取款等基本银行操作
转账功能:实现账户间的资金转移
数据安全:使用面向对象封装特性保护账户数据
技术架构
编程语言:Java 8+
数据结构:HashMap用于账户存储
设计模式:简单的面向对象设计
代码模块说明
BankAccount类
public class BankAccount {
private String accountNumber; // 账号
private String accountName; // 户名
private double balance; // 余额// 构造方法
public BankAccount(String number, String name) {this.accountNumber = number; this.accountName = name; this.balance = 0.0; // 初始余额为0}
// 存款方法
public void deposit(double amount) {if(amount > 0) { balance += amount; System.out.println("存款成功,当前余额:" + balance); } else { System.out.println("存款金额必须大于0"); }}
// 取款方法
public boolean withdraw(double amount) {if(amount > 0 && balance >= amount) { balance -= amount; System.out.println("取款成功,当前余额:" + balance); return true; } System.out.println("取款失败,余额不足或金额无效"); return false;}
// 获取账户信息
public String getAccountInfo() {return "账号:" + accountNumber + " 户名:" + accountName + " 余额:" + balance;}
// Getter方法
public String getAccountNumber() {return accountNumber;}
public double getBalance() {
return balance;}
}- BankSystem类
import java.util.HashMap;
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 BankAccount(number, name));
System.out.println("账户创建成功:" + number);
} else {
System.out.println("账户已存在");
}
}
// 获取账户
public BankAccount getAccount(String number) {
return accounts.get(number);
}
// 转账功能
public boolean transfer(String from, String to, double amount) {
BankAccount src = accounts.get(from);
BankAccount dst = accounts.get(to);
if(src == null || dst == null) {
System.out.println("账户不存在");
return false;
}
if(src.withdraw(amount)) {
dst.deposit(amount);
System.out.println("转账成功");
return true;
}
return false;
}
// 显示所有账户
public void displayAllAccounts() {
System.out.println("\n===== 所有账户信息 =====");
for(BankAccount account : accounts.values()) {
System.out.println(account.getAccountInfo());
}
}
}
- MainApp主程序
import java.util.Scanner;
public class MainApp {
public static void main(String[] args) {
BankSystem system = new BankSystem();
Scanner scanner = new Scanner(System.in);
// 初始化测试账户
system.createAccount("622202100000", "张三");
system.createAccount("622202100001", "李四");
// 主菜单
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("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 depositNum = scanner.nextLine();
System.out.print("输入存款金额:");
double depositAmount = scanner.nextDouble();
BankAccount depositAccount = system.getAccount(depositNum);
if(depositAccount != null) {
depositAccount.deposit(depositAmount);
} else {
System.out.println("账户不存在");
}
break;
case 3:
System.out.print("输入账号:");
String withdrawNum = scanner.nextLine();
System.out.print("输入取款金额:");
double withdrawAmount = scanner.nextDouble();
BankAccount withdrawAccount = system.getAccount(withdrawNum);
if(withdrawAccount != null) {
withdrawAccount.withdraw(withdrawAmount);
} else {
System.out.println("账户不存在");
}
break;
case 4:
System.out.print("输入转出账号:");
String from = scanner.nextLine();
System.out.print("输入转入账号:");
String to = scanner.nextLine();
System.out.print("输入转账金额:");
double transferAmount = scanner.nextDouble();
system.transfer(from, to, transferAmount);
break;
case 5:
system.displayAllAccounts();
break;
case 0:
System.out.println("感谢使用银行系统");
scanner.close();
System.exit(0);
default:
System.out.println("无效选择");
}
}
}
}
项目扩展建议
数据持久化:添加文件存储或数据库支持
日志系统:记录所有交易操作
密码验证:增加账户安全验证
利息计算:实现定期存款利息功能
异常处理:完善各种边界条件处理