#include #include using namespace std;

class BankAccount { private: int accountNumber; // 账号号码 double balance; // 余额 double rate; // 利率 static int nextAccountNumber; // 下一个账号号码 static int getNextAccountNumber(); // 生成下一个账号号码 public: BankAccount(); // 构造函数 BankAccount(double balance, double rate); // 构造函数 double getBalance(); // 获取余额 double getRate(); // 获取利率 void setBalance(double balance); // 修改余额 void setRate(double rate); // 修改利率 void print(); // 输出账号信息 };

class CheckingAccount : public BankAccount { private: int charge; // 积数 int lastTransactionTime; // 上一次存取款时间 void updateCharge(int time); // 更新积数 public: CheckingAccount(double balance, double rate); // 构造函数 bool withdraw(double amount, int time); // 取款 bool deposit(double amount, int time); // 存款 double calculateInterest(); // 计算利息 void print(); // 输出账户信息 };

// 静态成员变量的初始化 int BankAccount::nextAccountNumber = 1;

// 静态成员函数的实现 int BankAccount::getNextAccountNumber() { return nextAccountNumber++; }

// BankAccount类的成员函数的实现 BankAccount::BankAccount() { accountNumber = getNextAccountNumber(); balance = 0.0; rate = 0.0; }

BankAccount::BankAccount(double balance, double rate) { accountNumber = getNextAccountNumber(); this->balance = balance; this->rate = rate; }

double BankAccount::getBalance() { return balance; }

double BankAccount::getRate() { return rate; }

void BankAccount::setBalance(double balance) { this->balance = balance; cout << '余额修改为:' << balance << endl; }

void BankAccount::setRate(double rate) { this->rate = rate; cout << '利率修改为:' << rate << endl; }

void BankAccount::print() { cout << '账号号码:' << accountNumber << endl; cout << '余额:' << balance << endl; cout << '利率:' << rate << endl; }

// CheckingAccount类的成员函数的实现 CheckingAccount::CheckingAccount(double balance, double rate) : BankAccount(balance, rate) { charge = 0; lastTransactionTime = 0; }

void CheckingAccount::updateCharge(int time) { if (time > lastTransactionTime) { double balance = getBalance(); int days = time - lastTransactionTime; charge += balance * days * getRate(); lastTransactionTime = time; } }

bool CheckingAccount::withdraw(double amount, int time) { updateCharge(time); if (time > lastTransactionTime && amount <= getBalance()) { setBalance(getBalance() - amount); updateCharge(time); cout << '取款成功,取款金额为:' << amount << endl; return true; } cout << '取款失败' << endl; return false; }

bool CheckingAccount::deposit(double amount, int time) { if (time > lastTransactionTime) { setBalance(getBalance() + amount); updateCharge(time); cout << '存款成功,存款金额为:' << amount << endl; return true; } cout << '存款失败' << endl; return false; }

double CheckingAccount::calculateInterest() { double balance = getBalance(); return charge + balance * getRate(); }

void CheckingAccount::print() { BankAccount::print(); cout << '积数:' << charge << endl; cout << '上一次存取款时间:' << lastTransactionTime << endl; }

int main() { cout << '马云 E11700009' << endl;

cout << '==============================\n';
BankAccount bAccount1;
bAccount1.print();
bAccount1.setBalance(5000);
bAccount1.setRate(0.25);
bAccount1.print();
cout << '==============================\n';
BankAccount bAccount2(3000,0.3);
bAccount2.print();
bAccount2.setBalance(5000);
bAccount2.setRate(0.35);
bAccount2.print();
cout << '==============================\n';
CheckingAccount cAccount(3000,0.3);
cAccount.print();
cAccount.deposit(1000, 10);
cAccount.print();
cAccount.withdraw(2000, 20);
cAccount.print();
cAccount.setRate(0.25);
cAccount.print();

return 0;
C++银行账户管理系统:设计与实现

原文地址: https://www.cveoy.top/t/topic/osjP 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录