介绍
这段Java代码实现了一个简单的模拟银行系统,名为BankSystem。该系统主要利用了两个HashMap:一个存储用户的用户名和密码,另一个存储用户的用户名和余额。该系统提供了基本的功能,如注册新用户、用户登录、查询余额、存款、取款以及更改密码。程序的入口是main函数,它提供了一个简单的文本界面,允许用户选择他们希望执行的操作。当用户选择登录并成功登录后,他们会被转到一个新的菜单,提供进一步的账户操作选项。
代码解释
1. 基础设置
import java.util.HashMap; import java.util.Scanner;
我们导入了两个必要的 Java 工具类:HashMap
用于存储用户数据和余额;Scanner
用于从控制台读取用户输入。
2. 主类定义
public class BankSystem {
我们定义了一个名为 BankSystem
的类来表示这个简单的银行系统。
3. 数据存储
private HashMap<String, String> users = new HashMap<>(); private HashMap<String, Double> balances = new HashMap<>();
我们使用了两个 HashMap
。users
用于存储用户名与其对应的密码。balances
用于存储用户名和其对应的余额。
4. 注册功能
public void register(String username, String password) { ... }
此函数允许用户进行注册。如果用户名已经存在,会显示一个消息。否则,它会在 users
中存储密码,并在 balances
中为该用户设置初始余额为 0。
5. 登录功能
public boolean login(String username, String password) { ... }
此函数允许用户登录并返回一个布尔值来表示是否成功。它会检查用户名是否存在,以及密码是否正确。
6. 余额查询
public double checkBalance(String username) { ... }
此函数返回给定用户名的余额。
7. 存款功能
public void deposit(String username, double amount) { ... }
此函数允许指定的用户存款。
8. 取款功能
public void withdraw(String username, double amount) { ... }
此函数允许指定的用户取款。如果尝试取款金额超过余额,将会显示一个消息。
9. 更改密码
public void changePassword(String username, String oldPassword, String newPassword) { ... }
此函数允许用户更改密码,但前提是他们必须先提供正确的旧密码。
10. 主函数
public static void main(String[] args) { ... }
这是程序的入口点。它提供了一个用户友好的菜单,允许用户选择注册、登录或退出。一旦用户登录,他们可以访问一个新的菜单,允许他们查询余额、存款、取款或更改密码。
总结:这段 Java 代码提供了一个简单的模拟银行系统,用户可以进行基本的银行操作,如注册、登录、查询余额、存款、取款和更改密码。
import java.util.HashMap;
import java.util.Scanner;
public class BankSystem {
private HashMap<String, String> users = new HashMap<>(); // 用户名与密码的映射
private HashMap<String, Double> balances = new HashMap<>(); // 用户名与余额的映射
public void register(String username, String password) {
if (users.containsKey(username)) {
System.out.println("用户名已经存在!");
return;
}
users.put(username, password);
balances.put(username, 0.0);
System.out.println("注册成功!");
}
public boolean login(String username, String password) {
if (!users.containsKey(username)) {
System.out.println("用户不存在!");
return false;
}
if (!users.get(username).equals(password)) {
System.out.println("密码错误!");
return false;
}
System.out.println("登陆成功!");
return true;
}
public double checkBalance(String username) {
return balances.get(username);
}
public void deposit(String username, double amount) {
balances.put(username, balances.get(username) + amount);
System.out.println("存款成功! 余额: " + balances.get(username));
}
public void withdraw(String username, double amount) {
if (amount > balances.get(username)) {
System.out.println("余额不足!");
return;
}
balances.put(username, balances.get(username) - amount);
System.out.println("取款成功! 余额: " + balances.get(username));
}
public void changePassword(String username, String oldPassword, String newPassword) {
if (!users.get(username).equals(oldPassword)) {
System.out.println("原密码错误!");
return;
}
users.put(username, newPassword);
System.out.println("密码修改成功!");
}
public static void main(String[] args) {
BankSystem system = new BankSystem();
Scanner scanner = new Scanner(System.in);
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();
switch (choice) {
case 1:
System.out.print("输入用户名: ");
String regUser = scanner.next();
System.out.print("输入密码: ");
String regPass = scanner.next();
system.register(regUser, regPass);
break;
case 2:
System.out.print("输入用户名: ");
String logUser = scanner.next();
System.out.print("输入密码: ");
String logPass = scanner.next();
if (system.login(logUser, logPass)) {
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.print("选择操作: ");
int userChoice = scanner.nextInt();
switch (userChoice) {
case 1:
System.out.println("余额: " + system.checkBalance(logUser));
break;
case 2:
System.out.print("输入存款金额: ");
double depositAmount = scanner.nextDouble();
system.deposit(logUser, depositAmount);
break;
case 3:
System.out.print("输入取款金额: ");
double withdrawAmount = scanner.nextDouble();
system.withdraw(logUser, withdrawAmount);
break;
case 4:
System.out.print("输入原密码: ");
String oldPass = scanner.next();
System.out.print("输入新密码: ");
String newPass = scanner.next();
system.changePassword(logUser, oldPass, newPass);
break;
case 5:
break;
default:
System.out.println("无效选择!");
}
if (userChoice == 5) {
break;
}
}
}
break;
case 3:
System.out.println("谢谢使用!");
scanner.close();
return;
default:
System.out.println("无效选择!");
}
}
}
}
运行图片
![图片[1]-用Java实现简单的银行系统](https://z7h.cn/wp-content/uploads/2023/08/1691902233719-1024x604.png)
Python版本的简单银行 系统在这里哦
免责声明:
本站提供的资源所有内容及软件的文章仅限用于学习和研究目的。不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。我们不保证内容的长久可用性,通过使用本站内容随之而来的风险与本站无关。您必须在下载后的24个小时之内,从您的电脑/手机中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,得到更好的正版服务。侵删请致信 E-mail:2945314004@qq.com。
暂无评论内容