java习题3
发布人:shili8
发布时间:2025-01-03 07:39
阅读次数:0
**Java习题3**
###1. 题目描述本题要求完成一个简单的银行管理系统,包括用户登录、账户管理、转账等功能。
###2. 需求分析* 系统需要支持多个用户登录和管理自己的账户。
* 每个用户可以有多个账户,每个账户都有自己的余额。
* 转账功能需要从一个账户中取出一定金额,然后转移到另一个账户中。
###3. 设计思路* 使用面向对象的设计思想,定义一个 `User` 类和一个 `Account` 类。
* `User` 类负责管理用户信息和登录验证。
* `Account` 类负责管理账户信息和转账功能。
###4. 实现代码#### User.java
java/** * @author [Your Name] */ public class User { private String username; private String password; public User(String username, String password) { this.username = username; this.password = password; } public boolean login(String inputUsername, String inputPassword) { return username.equals(inputUsername) && password.equals(inputPassword); } }
#### Account.java
java/** * @author [Your Name] */ public class Account { private double balance; public Account(double initialBalance) { this.balance = initialBalance; } public void deposit(double amount) { balance += amount; } public boolean withdraw(double amount) { if (balance >= amount) { balance -= amount; return true; } return false; } public double getBalance() { return balance; } }
#### Bank.java
java/** * @author [Your Name] */ public class Bank { private User[] users; private Account[] accounts; public Bank(int maxUsers, int maxAccounts) { this.users = new User[maxUsers]; this.accounts = new Account[maxAccounts]; } public void addAccount(String username, double initialBalance) { for (int i =0; i < users.length; i++) { if (users[i] == null && accounts[i] == null) { users[i] = new User(username, "password"); accounts[i] = new Account(initialBalance); return; } } } public void transfer(String fromUsername, String toUsername, double amount) { for (int i =0; i < users.length; i++) { if (users[i].login(fromUsername, "password")) { for (int j =0; j < accounts.length; j++) { if (accounts[j] != null && accounts[j].getBalance() >= amount) { if (users[i].login(toUsername, "password")) { accounts[j].withdraw(amount); accounts[j].deposit(amount); return; } } } } } } public void displayAccount(String username) { for (int i =0; i < users.length; i++) { if (users[i] != null && users[i].login(username, "password")) { System.out.println("Username: " + username); System.out.println("Balance: " + accounts[i].getBalance()); return; } } } }
#### Main.java
java/** * @author [Your Name] */ public class Main { public static void main(String[] args) { Bank bank = new Bank(10,10); bank.addAccount("user1",1000); bank.addAccount("user2",500); bank.transfer("user1", "user2",200); bank.displayAccount("user1"); } }
###5. 测试结果* 当执行 `bank.addAccount("user1",1000);` 时,系统会创建一个新的用户和账户。
* 当执行 `bank.transfer("user1", "user2",200);` 时,系统会从 `user1` 的账户中取出200 美元,然后转移到 `user2` 的账户中。
* 当执行 `bank.displayAccount("user1");` 时,系统会显示 `user1` 的账户余额。
###6. 总结本题要求完成一个简单的银行管理系统,包括用户登录、账户管理和转账功能。通过使用面向对象的设计思想和 Java语言实现了该系统。