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语言实现了该系统。

