2401_89034302 2025-01-07 10:32 采纳率: 0%
浏览 10

用Java怎么做银行管理系统项目

项目:银行管理系统要求:通过Java控制台开发一个银行管理系统,实现银行管理员工功能和顾客功能。具体要求如下:(1)管理员功能:登录、添加顾客、删除顾客、计算存储金额、富豪排行榜、退出。(2)顾客功能:登录、存款、取款、转账、修改密码、退出。其中管理员界面如下所示

img

  • 写回答

2条回答 默认 最新

  • 檀越@新空间 2025-01-07 10:36
    关注

    上午好☀️☀️☀️️
    本答案参考通义千问

    要开发一个银行管理系统项目,你需要设计和实现多个功能模块。以下是一个详细的解决方案,包括代码示例。

    解决方案

    1. 定义用户类
    2. 定义银行类
    3. 实现管理员功能
    4. 实现顾客功能
    5. 主程序入口

    1. 定义用户类

    public class User {
        private String name;
        private String idNumber;
        private String password;
        private double balance;
        private int accountNumber;
    
        public User(String name, String idNumber, String password, double balance, int accountNumber) {
            this.name = name;
            this.idNumber = idNumber;
            this.password = password;
            this.balance = balance;
            this.accountNumber = accountNumber;
        }
    
        // Getters and Setters
        public String getName() { return name; }
        public void setName(String name) { this.name = name; }
        public String getIdNumber() { return idNumber; }
        public void setIdNumber(String idNumber) { this.idNumber = idNumber; }
        public String getPassword() { return password; }
        public void setPassword(String password) { this.password = password; }
        public double getBalance() { return balance; }
        public void setBalance(double balance) { this.balance = balance; }
        public int getAccountNumber() { return accountNumber; }
        public void setAccountNumber(int accountNumber) { this.accountNumber = accountNumber; }
    }
    

    2. 定义银行类

    import java.util.HashMap;
    import java.util.Map;
    
    public class Bank {
        private Map<Integer, User> users;
        private int nextAccountNumber;
    
        public Bank() {
            users = new HashMap<>();
            nextAccountNumber = 1001; // Starting account number
        }
    
        public boolean addCustomer(User user) {
            if (!users.containsKey(user.getAccountNumber())) {
                users.put(user.getAccountNumber(), user);
                return true;
            }
            return false;
        }
    
        public boolean removeCustomer(int accountNumber) {
            if (users.containsKey(accountNumber)) {
                users.remove(accountNumber);
                return true;
            }
            return false;
        }
    
        public User findCustomerByAccountNumber(int accountNumber) {
            return users.get(accountNumber);
        }
    
        public void deposit(int accountNumber, double amount) {
            User user = users.get(accountNumber);
            if (user != null) {
                user.setBalance(user.getBalance() + amount);
            }
        }
    
        public void withdraw(int accountNumber, double amount) {
            User user = users.get(accountNumber);
            if (user != null && user.getBalance() >= amount) {
                user.setBalance(user.getBalance() - amount);
            }
        }
    
        public void transfer(int fromAccountNumber, int toAccountNumber, double amount) {
            withdraw(fromAccountNumber, amount);
            deposit(toAccountNumber, amount);
        }
    
        public void updatePassword(int accountNumber, String newPassword) {
            User user = users.get(accountNumber);
            if (user != null) {
                user.setPassword(newPassword);
            }
        }
    
        public void printWealthRanking() {
            users.values().stream()
                    .sorted((u1, u2) -> Double.compare(u2.getBalance(), u1.getBalance()))
                    .forEach(user -> System.out.println(user.getName() + " : " + user.getBalance()));
        }
    }
    

    3. 实现管理员功能

    public class AdminMenu {
        private Bank bank;
    
        public AdminMenu(Bank bank) {
            this.bank = bank;
        }
    
        public void showAdminMenu() {
            Scanner scanner = new Scanner(System.in);
            while (true) {
                System.out.println("--------银行管理系统[管理员]--------");
                System.out.println("1、添加顾客");
                System.out.println("2、计算存储金额");
                System.out.println("3、富豪排行榜");
                System.out.println("4、退出");
    
                System.out.print("请选择服务种类:");
                int choice = scanner.nextInt();
    
                switch (choice) {
                    case 1:
                        addCustomer();
                        break;
                    case 2:
                        calculateTotalAmount();
                        break;
                    case 3:
                        wealthRanking();
                        break;
                    case 4:
                        return;
                    default:
                        System.out.println("无效的选择!");
                }
            }
        }
    
        private void addCustomer() {
            Scanner scanner = new Scanner(System.in);
            System.out.print("请输入姓名:");
            String name = scanner.nextLine();
            System.out.print("请输入身份证号码(18位):");
            String idNumber = scanner.nextLine();
            System.out.print("请输入密码:");
            String password = scanner.nextLine();
            System.out.print("请输入初始余额:");
            double balance = scanner.nextDouble();
    
            User newUser = new User(name, idNumber, password, balance, nextAccountNumber++);
            if (bank.addCustomer(newUser)) {
                System.out.println("开户成功!你的账号为:" + newUser.getAccountNumber());
                System.out.println("开户日期为:" + java.time.LocalDate.now());
            } else {
                System.out.println("开户失败!");
            }
        }
    
        private void calculateTotalAmount() {
            double total = bank.users.values().stream().mapToDouble(User::getBalance).sum();
            System.out.println("当前存储总金额为:" + total);
        }
    
        private void wealthRanking() {
            System.out.println("富豪排行榜:");
            bank.printWealthRanking();
        }
    }
    

    4. 实现顾客功能

    public class CustomerMenu {
        private Bank bank;
        private int accountNumber;
    
        public CustomerMenu(Bank bank, int accountNumber) {
            this.bank = bank;
            this.accountNumber = accountNumber;
        }
    
        public void showCustomerMenu() {
            Scanner scanner = new Scanner(System.in);
            while (true) {
                System.out.println("--------银行管理系统[顾客]--------");
                System.out.println("1、存款");
                System.out.println("2、取款");
                System.out.println("3、转账");
                System.out.println("4、修改密码");
                System.out.println("5、退出");
    
                System.out.print("请选择服务种类:");
                int choice = scanner.nextInt();
    
                switch (choice) {
                    case 1:
                        deposit();
                        break;
                    case 2:
                        withdraw();
                        break;
                    case 3:
                        transfer();
                        break;
                    case 4:
                        updatePassword();
                        break;
                    case 5:
                        return;
                    default:
                        System.out.println("无效的选择!");
                }
            }
        }
    
        private void deposit() {
            Scanner scanner = new Scanner(System.in);
            System.out.print("请输入存款金额:");
            double amount = scanner.nextDouble();
            bank.deposit(accountNumber, amount);
            System.out.println("存款成功!");
        }
    
        private void withdraw() {
            Scanner scanner = new Scanner(System.in);
            System.out.print("请输入取款金额:");
            double amount = scanner.nextDouble();
            bank.withdraw(accountNumber, amount);
            System.out.println("取款成功!");
        }
    
        private void transfer() {
            Scanner scanner = new Scanner(System.in);
            System.out.print("请输入转入账户号:");
            int toAccountNumber = scanner.nextInt();
            System.out.print("请输入转账金额:");
            double amount = scanner.nextDouble();
            bank.transfer(accountNumber, toAccountNumber, amount);
            System.out.println("转账成功!");
        }
    
        private void updatePassword() {
            Scanner scanner = new Scanner(System.in);
            System.out.print("请输入新密码:");
            String newPassword = scanner.nextLine();
            bank.updatePassword(accountNumber, newPassword);
            System.out.println("密码修改成功!");
        }
    }
    

    5. 主程序入口

    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Bank bank = new Bank();
            Scanner scanner = new Scanner(System.in);
    
            while (true) {
                System.out.println("银行管理系统");
                System.out.println("1、管理员");
                System.out.println("2、顾客");
                System.out.println("0、退出");
    
                System.out.print("请输入身份:");
                int choice = scanner.nextInt();
    
                switch (choice) {
                    case 1:
                        adminLogin(bank);
                        break;
                    case 2:
                        customerLogin(bank);
                        break;
                    case 0:
                        return;
                    default:
                        System.out.println("无效的选择!");
                }
            }
        }
    
        private static void adminLogin(Bank bank) {
            Scanner scanner = new Scanner(System.in);
            System.out.print("请输入管理员名称:");
            String adminName = scanner.nextLine();
            System.out.print("请输入管理员密码:");
            String adminPassword = scanner.nextLine();
    
            if ("admin".equals(adminName) && "admin123".equals(adminPassword)) {
                AdminMenu adminMenu = new AdminMenu(bank);
                adminMenu.showAdminMenu();
            } else {
                System.out.println("登录失败!");
            }
        }
    
        private static void customerLogin(Bank bank) {
            Scanner scanner = new Scanner(System.in);
            System.out.print("请输入账号:");
            int accountNumber = scanner.nextInt();
            System.out.print("请输入密码:");
            String password = scanner.next();
    
            User user = bank.findCustomerByAccountNumber(accountNumber);
            if (user != null && password.equals(user.getPassword())) {
                CustomerMenu customerMenu = new CustomerMenu(bank, accountNumber);
                customerMenu.showCustomerMenu();
            } else {
                System.out.println("登录失败!");
            }
        }
    }
    

    总结

    以上代码实现了银行管理系统的大部分功能。你可以根据实际需求进行进一步的扩展和优化。例如,可以增加更多的验证逻辑、异常处理等。

    评论

报告相同问题?

问题事件

  • 创建了问题 1月7日