**
**
//count.h
#ifndef Account_h
#define Account_h
#include<iostream>
#include<cmath>
using namespace std;
class SaveAccount{
private:
double balance,rate;
int lastdate,id;
double accumulation;//每日累计金额
public:
SaveAccount(int id,double rate,int date);
SaveAccount();
~SaveAccount(){}
int getid(){return id;}
double getrate(){return rate;}
double getbalance(){return balance;}
void deposit(int date,double amount);
void withdraw(int date,double amount);
void record(int date,double amount);
double accumulate(int date);
void settle(int date);
void show();
};
#endif
```cpp
//account.cpp
#include "count.h"
#include<iostream>
#include<cmath>
using namespace std;
/*每个操作(成员函数)只能做赋值累加积累,不能记录每个数据
函数(操作)是根据事情性质来添加参数的,作为外部改变的窗口*/
SaveAccount::SaveAccount(int id,double rate,int date):
id(id),rate(rate),lastdate(date),balance(0),accumulation(0)
{
cout<<lastdate<<"\t#"<<id<<" is created"<<endl;
}
SaveAccount::SaveAccount(){
id=0;rate=0;lastdate=0;balance=0;accumulation=0;
}
//计算每日积累金额
double SaveAccount::accumulate(int date){
return accumulation+balance*(date-lastdate);
//accumulation是累计赋值,天数不断改变
}
//存钱
void SaveAccount::deposit(int date,double amount)
{
record(date,amount);
}
//取钱
void SaveAccount::withdraw(int date,double amount)
{
if(amount>getbalance())
cout<<"Error:not enough money"<<endl;
else
record(date,-amount);
}
//计算改变每次存取钱余额变化
void SaveAccount::record(int date,double amount){
//成员函数里通过相同参数函数改变
accumulation=accumulate(date);
lastdate=date;
amount=floor(amount*100+0.5)/100;//保留小数点后两位
balance+=amount;
}
//计算利息
void SaveAccount::settle(int date){
double interests=accumulate(date)*rate/365;
if(interests!=0)
record(date,interests);//把利息传给余额总值
accumulation=0;
}
void SaveAccount::show(){
cout<<"#"<<id<<"\tBalance:"<<balance<<endl;
}
//test.cpp
#include "count.h"
#include<iostream>
using namespace std;
int main(){
//确定创建几个用户
SaveAccount s[2]={
SaveAccount(1,0.015,1),
SaveAccount(2,0.015,1),
};
//进行的交易
s[0].deposit(5,5000);
s[0].deposit(45,5500);
s[1].deposit(25,10000);
s[1].withdraw(60,4000);
//结算年利息
s[0].settle(90);
s[1].settle(90);
//展现客户交易最后信息
s[0].show();
s[1].show();
delete []s;
return 0;
}
这是一版不够完善的小程序,仍然可以精进。后面才能在此简单基础上不断完善,改进程序