c++ 銀行賬戶管理
阿新 • • 發佈:2019-01-02
#include <iostream> #include <cmath> using namespace std; class SavingsAccount{ private: int id; double balance; double rate; int lastdate; double accumulation; 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(){return id;} double getBalance() { return id; } double getRate() { return rate; } void deposit(int date, double amount); void withdraw(int date, double amount); void settle(int date); void show(); }; 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"<<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() { 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,4000); sa1.withdraw(60,4000); sa0.settle(90); sa1.settle(90); sa0.show(); cout<<endl; sa1.show(); cout<<endl; return 0; }