编写一个java程序,有一台ATM机,当用户开始操作后,将为用户创建一张银行卡,该卡的卡号和密码由用户进行输入,卡的余额初始为0,。当用户成功建卡后,系统将提供以下操作:①存款;②取款;③查询余额;④退卡。程序运行效果如下:
时间: 2024-12-15 18:29:25 浏览: 138
在Java中,我们可以设计一个简单的ATM机模拟程序,首先创建一个BankCard类来表示银行卡,并包含卡号、密码和余额属性,然后定义AccountManager类处理用户的操作。这里是一个简化的示例:
```java
// 定义银行卡类 BankCard
class BankCard {
private String cardNumber;
private String password;
private double balance;
public BankCard(String cardNumber, String password) {
this.cardNumber = cardNumber;
this.password = password;
this.balance = 0.0;
}
// 存款方法
public void deposit(double amount) {
if (amount > 0) {
balance += amount;
System.out.println("存入了 " + amount + " 元,当前余额为 " + balance);
} else {
System.out.println("无效的存款金额");
}
}
// 取款方法
public void withdraw(double amount) {
if (amount > 0 && amount <= balance) {
balance -= amount;
System.out.println("取出了 " + amount + " 元,当前余额为 " + balance);
} else {
System.out.println("取款失败,余额不足或金额错误");
}
}
// 查询余额方法
public void checkBalance() {
System.out.println("当前余额为 " + balance);
}
// 退卡方法
public void cancelCard() {
System.out.println("退卡已成功,卡号:" + cardNumber);
// 这里只是一个示例,实际应用中需要更复杂的逻辑来销毁卡片实例
}
}
// 定义账户管理类 AccountManager
class AccountManager {
private Map<String, BankCard> cards;
public AccountManager() {
cards = new HashMap<>();
}
public void createCard(String cardNumber, String password) {
BankCard card = new BankCard(cardNumber, password);
cards.put(cardNumber, card);
System.out.println("新卡创建成功,卡号: " + cardNumber);
}
public void performAction(String cardNumber, String operation, double amount) {
BankCard card = cards.get(cardNumber);
if (card != null) {
switch (operation.toLowerCase()) {
case "deposit":
card.deposit(amount);
break;
case "withdraw":
card.withdraw(amount);
break;
case "checkbalance":
card.checkBalance();
break;
case "cancel":
card.cancelCard();
break;
default:
System.out.println("无效的操作");
}
} else {
System.out.println("找不到该卡,请检查卡号");
}
}
}
public class ATMMachine {
public static void main(String[] args) {
AccountManager manager = new AccountManager();
manager.createCard("123456", "password123");
// 用户操作示例
manager.performAction("123456", "存款", 500);
manager.performAction("123456", "取款", 200);
manager.performAction("123456", "查询余额");
manager.performAction("123456", "取消", 0); // 非法退卡操作,因为金额为0
}
}
```
这个程序实现了基本的ATM功能,用户可以创建新的银行卡并执行各种操作。每个银行卡都有唯一的卡号和密码,只有通过正确的卡号和密码才能访问。注意这只是一个简化版本,实际应用会包括更多的错误检查和安全性考虑。
阅读全文
相关推荐


















