C++ 银行账户简单版

**

在这里插入图片描述

**
在这里插入图片描述
在这里插入图片描述

//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;
}

这是一版不够完善的小程序,仍然可以精进。后面才能在此简单基础上不断完善,改进程序


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值