|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<iostream>
#include<cmath>
using namespace std;
class Perbank
{
private:
int id; //帐号
int lastdate; //上次变余额时间
double rate; //利率
double balance; //余额
double accumulation; //余额按日累计之和
double accumulate(int date)const
{
return accumulation +balance*(date-lastdate);
}
void record (int date,double amount);
public:
void in(int date,double amount) // 存钱函数
{
record (date,amount);
}
void out(int date ,double amount);
double getrate(){return rate;}
int Getid(){return id;}
Perbank(int date,int id,double amount);
double getbalance(){return balance;}
void settle(int date);
void show();
};
void Perbank:: 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;
}
Perbank:Perbank(int date,int id ,double amount):id(id),lastdate(date),balance(0),accumulation(0),rate(rate)
{
cout<<date<<"\t#"<<id<<endl; //构造函数,提供初始化
}
void Perbank:: out(int date ,double amount) //取钱函数
{
if(amount>getbalance())
cout<<"error,not enough money"<<endl;
else
record(date,-amount);
}
void Perbank::settle(int date) //按年算利息
{
double interest =accumulate(date)*rate/365;
if(interest!=0)
record(date,interest);
accumulation=0;
}
void Perbank::show()
{
cout<<"\t#"<<id<<"\t"<<balance<<endl;
}
int main()
{
Perbank s1(1,1234455,0.015);
Perbank s2(1,12347,0.015);
s1.in(5,1000);
s2.in(5,200);
s1.in(34,5000);
s2.out(6,100);
s2.settle(7);
s1.show();
s2.show();
}
|
|