用Java实现简单的银行系统

介绍

这段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<>();

我们使用了两个 HashMapusers 用于存储用户名与其对应的密码。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实现简单的银行系统

Python版本的简单银行 系统在这里哦

© 版权声明
THE END
喜欢就支持一下吧
点赞7赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容