C++新手上路 程序实例,个人银行账户

这篇博客介绍了一个使用C++实现的个人银行账户管理系统,包括存款、取款、利息结算等功能。通过类`SavingAccount`实现账户管理,记录账号、余额、利率等信息,并提供了相应的操作函数。博客中还展示了如何创建账户、执行存取款操作及利息计算的实例代码。
摘要由CSDN通过智能技术生成

#include "stdafx.h"

#include<cmath>//关于数学运算的文件,要添加复杂的数学运算要用到

#include<iostream>

using namespace std;

 

class SavingAccount {

private:

    int id;//账号

    double balance;//账户余额

    double rate;//存款的年利率

    int lastDate;//上次变更余额的时期

    double accumulation;//余额按日累加之和

    void record(int date, double amount);//记录

    double accumulate(int date)const//获得到指定日期为止的存款金额按日累计值

    {

              return accumulation + balance * (date - lastDate);//计算公式,不必在意(就不能来个简单易懂的数学公式吗?我数学不好)

    }

public:

    SavingAccount(int date, int id, double rate);//构造函数

    int GetId() { return id; }//获得账号id

    double GetBalance() { return balance; }//获得账户余额

    double GetRate() { return rate; }//获得年利率

    void Show();//显示账户信息函数的声明

    void Depossit(int date, double amount);//存入现金的函数声明

    void Withdraw(int date, double amount);//取出现金的函数声明

    void Settle(int date);//结算利息,每年1月1日调用一次该函数

};

//相关成员函数的实现

//构造函数地的实现

SavingAccount::SavingAccount(int date, int id, double rate):id(id), balance(0), rate(rate), lastDate(date), accumulation(0)//初始化数据

{

      cout << date << "\t#" << id << " is created " << endl;//\t 为制表符是数据看起来像是表格,产生空白 

}

 

//余额变动记录的函数实现

void SavingAccount::record(int date, double amount)//amount 为取出或存入的金额

{

      accumulation = accumulate(date);//获得按日累计后的余额之和

      lastDate = date;//获得最后一次变动余额的时间

      amount = floor(amount * 100 + 0.5) / 100;//floor 是cmath中的函数,是向下取整函数//保留小数点后面两位(真是高端大气上档次的保留小数点的方法,我都不懂

      balance += amount;//将取出和存入的金额与账户余额进行加减

      cout << date << "\t#" << id << "\t" << amount << "\t" << balance << endl;

 

}

//存款函数的实现

void SavingAccount::Depossit(int date, double amount)

{

      record(date, amount);//调用余额变动的函数

}

//取款的函数实现

void SavingAccount::Withdraw(int date, double amount)

{

       //要先加判断是否取得数额大于余额

      if (amount > GetBalance())//调用GetBalance函数得到账户的余额

      {

              cout << "Error: not enough money" << endl;

      }

      else

      {

      record(date, -amount);//因为取钱时余额会少所以是负的,但用户操作时是正数

      }

}

//计算利息的函数实现

void SavingAccount::Settle(int date)

{

      double interest = accumulate(date)*rate / 365;//同样是不懂的数学公式,貌似这样就得到利息了??

      //将利息加到余额中

      if (interest != 0)//现在程序员的简便写法,真是越来越懒了

             record(date, interest);

      accumulation = 0;//将accumulation置为0

}

//显示账户信息的函数实现

void SavingAccount::Show()

{

         cout << "#" << id << "\tBalance" << balance;//井号就是个符号不要多想

}

 

int main(){                //函数有返回值

//创建两个账户

SavingAccount sa1(1, 20137659, 0.015);

SavingAccount sa2(1, 20137660, 0.015);

//几次存款操作和取款操作

sa1.Depossit(5, 5000);

sa2.Depossit(25, 10000);

sa1.Depossit(45, 5500);

sa2.Withdraw(60, 4000);//就是这里取款金额也是正数

//假设在开户后第90天结算利息

sa1.Settle(90);

sa2.Settle(90);

//输出各个账户的信息

sa1.Show(); cout << endl;//换行

sa2.Show(); cout << endl;

return 0;

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值