#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;
}
c++ 银行账户管理
最新推荐文章于 2022-04-20 12:54:19 发布