C++ 面向对象 ATM 系统设计与实现 (三级项目)
以下是一个基于面向对象思想的 ATM 系统的 C++ 程序设计与实现:
#include <iostream>
#include <string>
using namespace std;
class Account {
private:
string accountNumber;
string pin;
double balance;
public:
Account(string num, string pin, double balance) {
accountNumber = num;
this->pin = pin;
this->balance = balance;
}
string getAccountNumber() {
return accountNumber;
}
double getBalance() {
return balance;
}
bool validatePin(string pin) {
return this->pin == pin;
}
void withdraw(double amount) {
balance -= amount;
}
void deposit(double amount) {
balance += amount;
}
};
class ATM {
private:
Account* currentAccount;
public:
void login() {
string accountNumber, pin;
cout << 'Enter account number: ';
cin >> accountNumber;
cout << 'Enter PIN: ';
cin >> pin;
// Validate account and pin
currentAccount = validateAccount(accountNumber, pin);
if (currentAccount == nullptr) {
cout << 'Invalid account number or PIN.' << endl;
}
else {
showMenu();
}
}
Account* validateAccount(string accountNumber, string pin) {
// In a real system, this method would validate the account details against a database
// For simplicity, a hardcoded account is used here
if (accountNumber == '123456' && pin == '1234') {
return new Account(accountNumber, pin, 1000.0);
}
return nullptr;
}
void showMenu() {
int choice;
double amount;
do {
cout << endl;
cout << '1. Check Balance' << endl;
cout << '2. Withdraw' << endl;
cout << '3. Deposit' << endl;
cout << '4. Exit' << endl;
cout << 'Enter choice: ';
cin >> choice;
switch (choice) {
case 1:
cout << 'Current balance: ' << currentAccount->getBalance() << endl;
break;
case 2:
cout << 'Enter amount to withdraw: ';
cin >> amount;
if (amount > currentAccount->getBalance()) {
cout << 'Insufficient balance.' << endl;
}
else {
currentAccount->withdraw(amount);
cout << 'Amount withdrawn successfully.' << endl;
}
break;
case 3:
cout << 'Enter amount to deposit: ';
cin >> amount;
currentAccount->deposit(amount);
cout << 'Amount deposited successfully.' << endl;
break;
case 4:
cout << 'Exiting ATM...' << endl;
break;
default:
cout << 'Invalid choice. Please try again.' << endl;
break;
}
} while (choice != 4);
}
};
int main() {
ATM atm;
atm.login();
return 0;
}
在这个程序中,我们定义了两个类:Account 和 ATM。Account 类表示一个银行账户,包含账号、PIN 和余额等属性,以及验证 PIN、取款和存款等方法。ATM 类表示一个 ATM 机,包含登录、验证账户、显示菜单等方法。在 ATM 类的 login 方法中,我们通过调用 validateAccount 方法来验证账号和 PIN 是否正确,如果验证成功,则调用 showMenu 方法显示 ATM 菜单。
在 main 函数中,我们创建一个 ATM 对象,并调用 login 方法来开始 ATM 系统的运行。
原文地址: https://www.cveoy.top/t/topic/pkUL 著作权归作者所有。请勿转载和采集!