在C++中设计一个ATM(自动取款机)系统
时间: 2024-09-27 14:08:21 浏览: 16
在C++中设计一个简单的ATM系统,你可以考虑以下几个步骤:
1. **用户类(User)**: 创建一个基本的用户类,包含账户ID、密码和余额等属性。
```cpp
class User {
public:
User(int id, string password, double initial_balance)
: id(id), password(password), balance(initial_balance) {}
int getId() const { return id; }
string getPassword() const { return password; }
double getBalance() const { return balance; }
private:
int id;
string password;
double balance;
};
```
2. **账户类(Account)**: 扩展用户类,增加一些账户操作,如存款、取款等。
```cpp
class Account : public User {
public:
void deposit(double amount) { balance += amount; }
bool withdraw(double amount) {
if (amount <= balance) {
balance -= amount;
return true;
} else {
return false; // 提示余额不足
}
}
// 添加其他可能的方法,例如查看交易记录
};
```
3. **ATM类(ATM)**: 定义ATM类,用于与用户交互,包含登录验证和操作界面。
```cpp
class ATM {
public:
ATM(const User& user) : user_(user) {}
bool login(const string& password) {
return user_.getPassword() == password;
}
void performTransaction(string action, double amount) {
if (login(password)) {
if (action == "deposit") {
user_.deposit(amount);
} else if (action == "withdraw") {
if (user_.withdraw(amount)) {
cout << "取款成功!" << endl;
} else {
cout << "余额不足,取款失败!" << endl;
}
} else {
cout << "无效的操作!" << endl;
}
} else {
cout << "登录失败!" << endl;
}
}
private:
User& user_;
};
```
4. **主函数(Main Function)**: 用户与ATM交互的起点。
```cpp
int main() {
User john("123456", 1000.0); // 示例用户
ATM atm(john);
while (true) {
cout << "请输入选项(1. 存款,2. 取款,3. 退出):" << endl;
int choice;
cin >> choice;
switch (choice) {
case 1:
double amount;
cout << "请输入金额:" << endl;
cin >> amount;
atm.performTransaction("deposit", amount);
break;
// ...处理其他选项
default:
break;
}
}
return 0;
}
```