【java】【基础8】入门结业-ATM系统实战
发布人:shili8
发布时间:2025-02-21 05:17
阅读次数:0
**Java 基础8: ATM 系统实战**
作为 Java 基础的最后一个项目,今天我们将一起实现一个简单的 ATM 系统。这个系统将包括用户登录、余额查询、存款、取款等功能。
### **1. 系统设计**
首先,我们需要设计我们的系统。ATM 系统主要包含以下几个模块:
* **用户管理**:负责管理用户信息,包括用户名和密码。
* **账户管理**:负责管理用户的银行账户信息,包括余额和历史记录。
* **登录模块**:负责处理用户登录和验证。
* **业务逻辑模块**:负责处理用户的业务操作,如存款、取款等。
### **2. 系统实现**
#### **2.1 用户管理**
首先,我们需要定义一个 `User` 类来代表我们的用户:
javapublic class User { private String username; private String password; public User(String username, String password) { this.username = username; this.password = password; } // getter 和 setter 方法}
#### **2.2 账户管理**
接下来,我们需要定义一个 `Account` 类来代表我们的银行账户:
javapublic class Account { private double balance; //余额 private Listhistory; // 历史记录 public Account() { this.balance =0; this.history = new ArrayList<>(); } public void deposit(double amount) { this.balance += amount; this.history.add(new Transaction("deposit", amount)); } public void withdraw(double amount) { if (this.balance >= amount) { this.balance -= amount; this.history.add(new Transaction("withdrawal", amount)); } else { System.out.println("余额不足!"); } } // getter 和 setter 方法}
#### **2.3 登录模块**
现在,我们需要实现登录模块:
javapublic class LoginModule { private Mapusers; // 用户信息 public LoginModule() { this.users = new HashMap<>(); } public void registerUser(String username, String password) { if (!this.users.containsKey(username)) { this.users.put(username, new User(username, password)); System.out.println("用户注册成功!"); } else { System.out.println("用户名已存在!"); } } public boolean login(String username, String password) { if (this.users.containsKey(username)) { User user = this.users.get(username); return user.password.equals(password); } else { System.out.println("用户不存在!"); return false; } } }
#### **2.4业务逻辑模块**
最后,我们需要实现业务逻辑模块:
javapublic class BusinessLogicModule { private LoginModule loginModule; // 登录模块 private Account account; // 账户 public BusinessLogicModule(LoginModule loginModule, Account account) { this.loginModule = loginModule; this.account = account; } public void deposit(double amount) { if (this.loginModule.login("admin", "password")) { this.account.deposit(amount); System.out.println("存款成功!"); } else { System.out.println("登录失败!"); } } public void withdraw(double amount) { if (this.loginModule.login("admin", "password")) { this.account.withdraw(amount); System.out.println("取款成功!"); } else { System.out.println("登录失败!"); } } }
### **3. 测试**
现在,我们可以测试我们的系统了:
javapublic class Main { public static void main(String[] args) { LoginModule loginModule = new LoginModule(); Account account = new Account(); // 注册用户 loginModule.registerUser("admin", "password"); // 登录 if (loginModule.login("admin", "password")) { BusinessLogicModule businessLogicModule = new BusinessLogicModule(loginModule, account); // 存款 businessLogicModule.deposit(1000); System.out.println(account.getBalance()); // 取款 businessLogicModule.withdraw(500); System.out.println(account.getBalance()); } } }
### **4. 总结**
在本文中,我们实现了一个简单的 ATM 系统,包括用户登录、余额查询、存款和取款等功能。我们使用 Java语言来编写这个系统,并且使用面向对象的设计原则来组织我们的代码。
希望这篇文章能够帮助你理解 Java 基础知识,并且能够让你在实际项目中应用这些知识。