用Java写一个ATM项目
时间: 2024-03-30 19:40:52 浏览: 33
好的,ATM项目是一个比较常见的练手项目,下面是一个简单的 Java 实现:
首先,我们需要定义一个 Account 类,用于表示用户的银行账户信息,包括账号、密码、余额等属性:
```java
public class Account {
private String accountNumber;
private String password;
private double balance;
public Account(String accountNumber, String password, double balance) {
this.accountNumber = accountNumber;
this.password = password;
this.balance = balance;
}
public String getAccountNumber() {
return accountNumber;
}
public String getPassword() {
return password;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
}
```
然后,我们需要定义一个 ATM 类,用于表示自助银行机器,包括存款、取款、查询余额等操作:
```java
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class ATM {
private Map<String, Account> accounts;
public ATM() {
accounts = new HashMap<>();
accounts.put("123456", new Account("123456", "123456", 1000.0));
accounts.put("111111", new Account("111111", "111111", 2000.0));
accounts.put("222222", new Account("222222", "222222", 3000.0));
}
public void run() {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("请输入账号:");
String accountNumber = scanner.nextLine();
System.out.println("请输入密码:");
String password = scanner.nextLine();
if (!accounts.containsKey(accountNumber)) {
System.out.println("账号不存在!");
continue;
}
Account account = accounts.get(accountNumber);
if (!account.getPassword().equals(password)) {
System.out.println("密码错误!");
continue;
}
while (true) {
System.out.println("请选择操作:1.存款 2.取款 3.查询余额 4.退出");
int choice = scanner.nextInt();
switch (choice) {
case 1:
System.out.println("请输入存款金额:");
double deposit = scanner.nextDouble();
account.setBalance(account.getBalance() + deposit);
System.out.println("存款成功,当前余额为:" + account.getBalance());
break;
case 2:
System.out.println("请输入取款金额:");
double withdraw = scanner.nextDouble();
if (withdraw > account.getBalance()) {
System.out.println("余额不足!");
break;
}
account.setBalance(account.getBalance() - withdraw);
System.out.println("取款成功,当前余额为:" + account.getBalance());
break;
case 3:
System.out.println("当前余额为:" + account.getBalance());
break;
case 4:
System.out.println("谢谢使用!");
return;
default:
System.out.println("无效操作!");
}
}
}
}
public static void main(String[] args) {
ATM atm = new ATM();
atm.run();
}
}
```
这里我们先创建了三个账户,用于测试。在 run 方法中,我们首先要求用户输入账号和密码,如果账号或密码错误,则重新输入。如果验证通过,则进入操作菜单,根据用户的选择执行相应的操作,直到用户选择退出。
以上是一个简单的 Java 实现,当然还有很多细节需要完善,比如密码加密、异常处理等。