新知识点
- 1.实现四舍五入函数 floor(x); 且为整数floor(x+0.5) 且 保留2位小数 floor(x*100+0.5)/100
#include<iostream>
#include<cmath>
#include<string>
using namespace std;
class savingaccount{
string id;
double balance;
int lastdate;
double accumulation;
float rate;
void record(int date,float amount);
double accumulating(int date)
{
return accumulation+(date-lastdate)*balance;
}
public:
savingaccount(string id,int lastdate,float rate):id(id),balance(0),lastdate(lastdate),accumulation(0),rate(rate)
{
cout<<"id:"<<id<<"\t congrulations! it's created!"<<endl;
}
void withdraw(int date,int amount);
void deposit(int date,int amount);
void benefits(int date);
void showing();
};
void savingaccount::record(int date,float amount)
{
accumulation=accumulating(date);
lastdate=date;
amount=floor(amount*100+0.5)/100;
balance+=amount;
cout<<"id:"<<id<<"\t dealing amount:"<<amount<<"\t balance:"<<balance<<endl;
}
void savingaccount::withdraw(int date,int amount)
{
if(amount>balance)
cout<<"Error: saving is not enough";
else
record(date,-amount);
}
void savingaccount::deposit(int date,int amount)
{
record(date,amount);
}
void savingaccount::showing()
{
cout<<"id:"<<id<<"\t balance:"<<balance<<endl;
}
void savingaccount::benefits(int date)
{
double interests=accumulating(date)/365*rate;
record(date,interests);
accumulation=0;
}
int main(void)
{
savingaccount banker1("001",1,0.015);
savingaccount banker2("002",1,0.015);
banker1.deposit(5,5000);
banker2.deposit(25,10000);
banker1.deposit(45,5500);
banker2.withdraw(60,4000);
banker1.benefits(90);
banker2.benefits(90);
banker1.showing();
banker2.showing();
return 0;
}