个人银行账户管理程序实例




头文件

#ifndef _ACCOUNT_

#define _ACCOUNT_

class SavingAccount{
public:
 SavingAccount(int date, int id, double rate);
 int getId();
 double getBalance();
 double getRate();
 void show();//显示信息
 void deposit(int date, double amount);//存款
 void withdraw(int date, double amount);//取款
 void settle(int date);//结算利息
private:
 int m_iID;
 double m_dBalance;//余额,
 double m_dRate;//利率,
 int m_iLastDate;//上一次余额变动的日期。
 double m_dAccumulate;//用来存储上次计算利息以后到最近一次余额变动时余额按日累加值,
 
 void record(int date, double amount);//amount为金额。
 double accumulate(int date);//用来计算截止至指定日期的账户余额按日累计值。
};

#endif

源文件1

#include "SavingAccount.h"
#include <cmath>
#include <iostream>
using namespace std;

SavingAccount::SavingAccount(int date, int id, double rate){
 this->m_iLastDate = date;
 this->m_iID = id;
 this->m_dRate = rate;
 this->m_dAccumulate = 0;
 this->m_dBalance = 0;
}
int SavingAccount::getId(){return this->m_iID;}
double SavingAccount::getBalance(){return this->m_dBalance;}
double SavingAccount::getRate(){return this->m_dRate;}
void SavingAccount::show(){
 cout << "账号为" << this->getId() << "余额为:" << this->getBalance() << "年利率为:" << this->getRate() << endl;
}

void SavingAccount::deposit(int date, double amount){
 this->record(date, amount);
}

void SavingAccount::withdraw(int date, double amount){

 if(amount > getBalance()){
  cout << "你的余额不足,无法取款!" << endl;
 }
 else{
  record(date, -amount);
 }
}

void SavingAccount::settle(int date){
 double interest = accumulate(date) * m_dRate / 365;//计算年息。
 if(interest != 0){
  record(date, interest);
 }
 m_dAccumulate = 0;
}

//获得到指定日期为止的存款金额按日累计值。
double SavingAccount::accumulate(int date){
 return m_dAccumulate + m_dBalance * (date - m_iLastDate);
}

void SavingAccount::record(int date, double amount){
 m_dAccumulate = accumulate(date);
 m_iLastDate = date;
 amount = floor(amount * 100 + 0.5) / 100;
 m_dBalance += amount;
}

源文件2

#include <cstdlib>
#include"SavingAccount.h"
int main(){
 //建立账户
 SavingAccount sa0(1, 21325302, 0.015);
 SavingAccount sa1(1, 58320212, 0.015);
 //几笔账目
 sa0.deposit(5, 5000);
 sa1.deposit(25, 10000);
 sa0.deposit(45, 5500);
 sa1.withdraw(60, 4000);

 //开户后第90天到了计息日,结算所有年息。
 sa0.settle(90);
 sa1.settle(90);
 //输出账户的所有信息。
 sa0.show();
 sa1.show();

 system("pause");
 return 0;
}




  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值