使用Java1.编写1个银行卡类Card: 属性:姓名、卡号、密码、余额 方法:登录、查询余额、存款、取款、退出 2.在BankApp类中编写mian函数,使用数据库保存银行卡信息,模拟ATM的功能。
时间: 2024-12-24 12:24:56 浏览: 5
在Java中,你可以按照以下步骤创建一个简单的`BankCard`类和`BankApp`类来实现这个功能:
```java
// 定义银行卡类BankCard
public class BankCard {
private String name;
private String cardNumber;
private String password;
private double balance;
// 构造函数
public BankCard(String name, String cardNumber, String password) {
this.name = name;
this.cardNumber = cardNumber;
this.password = password;
this.balance = 0; // 初始余额设为0
}
// 方法:登录(验证密码)
public boolean login(String inputPassword) {
return password.equals(inputPassword);
}
// 方法:查询余额
public double queryBalance() {
return balance;
}
// 方法:存款
public void deposit(double amount) {
if (amount > 0) {
balance += amount;
}
}
// 方法:取款
public void withdraw(double amount) {
if (amount <= balance) {
balance -= amount;
} else {
System.out.println("取款金额超过当前余额");
}
}
// 方法:退出
public void logout() {
System.out.println(name + "已退出银行系统");
}
}
// 定义BankApp类,模拟ATM功能
import java.util.Scanner;
public class BankApp {
private static BankDatabase database = new BankDatabase(); // 假设存在一个简单的内存数据库
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("请输入操作选项(1.开户 2.登录 3.查询余额 4.存款 5.取款 6.退出):");
int choice = scanner.nextInt();
switch (choice) {
case 1:
System.out.println("请输入姓名:");
String name = scanner.next();
System.out.println("请输入卡号:");
String cardNumber = scanner.next();
System.out.println("请输入密码:");
String password = scanner.next();
database.saveCard(new BankCard(name, cardNumber, password));
break;
case 2:
System.out.println("请输入用户名:");
String userName = scanner.next();
BankCard card = database.getCardByUserName(userName);
if (card != null && card.login(scanner.next())) {
System.out.println("登录成功!");
while (true) {
System.out.println("请选择操作(1.查询余额 2.存款 3.取款 4.退出):");
choice = scanner.nextInt();
switch (choice) {
case 1:
System.out.printf("当前余额: %.2f\n", card.queryBalance());
break;
case 2:
System.out.println("请输入存款金额:");
double depositAmount = scanner.nextDouble();
card.deposit(depositAmount);
break;
case 3:
System.out.println("请输入取款金额:");
double withdrawAmount = scanner.nextDouble();
card.withdraw(withdrawAmount);
break;
case 4:
card.logout();
System.out.println("用户已退出");
break;
default:
System.out.println("无效操作");
}
if (choice == 4) break;
}
} else {
System.out.println("登录失败!");
}
break;
// 其他选项省略...
}
}
scanner.close();
}
}
```
在这个例子中,我们假设了一个简单的内存数据库`BankDatabase`用于存储卡片信息。实际应用中,你可能会需要连接到真实的数据库如MySQL,SQLite等。以上代码仅为演示,生产环境中的设计会更复杂,包括错误处理和安全性考虑。
阅读全文