【C++ 第四章 個人銀行賬戶管理程序案例】
阿新 • • 發佈:2017-10-10
with count acc cpp name c++ money 建立 esc
【第四章】 個人銀行賬戶管理程序 案例實現
#include<iostream> #include<cmath> using namespace std; class SavingsAccount //儲蓄賬戶類 { private: int id; //賬號 double balance; //余額 double rate; //存款的年利率 int lastDate; //上次變更余額的日期 double accumulation; //余額按日累加之和 static double total; //所有賬戶的總金額 //記錄一筆賬,date為日期,desc為說明 void record(int date, double amount); //獲得到指定日期為止的存款金額按日累積值 double accumulate(int date) const { return accumulation + balance*(date - lastDate); } public: //構造函數 SavingsAccount(int date, int id, double rate); int getId() const { return id; } double getBalance() const { return balance; } double getRate() const { return rate; } void deposit(int date, double amount); //存入現金 void withdraw(int date, double amount); //取出現金 //結算利息,每年1月1日調用一次該函數 void settle(int date); //顯示賬戶信息 void show() const; }; SavingsAccount::SavingsAccount(int date, int id, double rate) : id(id), balance(0), rate(rate), lastDate(date), accumulation(0) { cout << date << "\t#" << id << " is created" << endl; } void SavingsAccount::record(int date, double amount) { accumulation = accumulate(date); lastDate = date; amount = floor(amount * 100 + 0.5) / 100; //保留小數點後兩位 balance += amount; cout << date << "\t#" << id << "\t" << amount << "\t" << balance << endl; } void SavingsAccount::deposit(int date, double amount) { record(date, amount); } void SavingsAccount::withdraw(int date, double amount) { if (amount>getBalance()) cout << "Error:not enough money" << endl; else record(date, -amount); } void SavingsAccount::settle(int date) { double interest = accumulate(date)*rate / 365; //計算年息 if (interest != 0) record(date, interest); accumulation = 0; } void SavingsAccount::show() const { cout << "#" << id << "\tBalance:" << balance; } int main() { //建立幾個賬戶 SavingsAccount sa0(1, 21325302, 0.015); SavingsAccount sa1(1, 58320212, 0.015); //幾筆賬目 sa0.deposit(5, 5000); sa1.deposit(25, 10000); sa0.deposit(45, 5500); sa1.withdraw(60, 4000); //開戶後第90天到了銀行的計息日,結算所有賬戶的年息 sa0.settle(90); sa1.settle(90); //輸出各個賬戶信息 sa0.show(); cout << endl; sa1.show(); cout << endl; return 0; }
ps:
配套教材:鄭莉《c++程序設計語言》
課程:學堂在線《c++程序設計語言》
【C++ 第四章 個人銀行賬戶管理程序案例】