随笔 - 403  文章 - 0  评论 - 6  阅读 - 3254

5月9日打卡

例4-10

题目描述:

个人银行账户管理。

复制代码
#include<iostream>
#include<cmath>
using namespace std;
class SavingsAccount {//储蓄账户类
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:
    SavingsAccount(int date, int id, double rate);
    int getId() { return id; }
    double getBalance() { return balance; }
    double getRate() { return rate; }
    void deposit(int date, double amount);
    void withdraw(int date, double amount);
    void settle(int date);
    void show();
};
SavingsAccount::SavingsAccount(int date, int id, double rate) :id(id), balance(0), rate(rate), lastDate(date), accumulation(0) {
    cout << date << "\t#" << id << "is created" << endl;
}
void SavingsAccount::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;
}
void SavingsAccount::deposit(int date, double amount) {
    record(date, amount);
}
void SavingsAccount::withdraw(int date, double amount)
{
    if (amount > getBalance())
        cout << "Error:not enough money" << endl;
    else
        record(date, -amount);
}
void SavingsAccount::settle(int date) {
    double interest = accumulate(date) * rate / 365;
    if (interest != 0)
        record(date, interest);
    accumulation = 0;
}
void SavingsAccount::show()
{
    cout << "#" << id << "\tBalance:" << balance;
}
int main()
{
    SavingsAccount sa0(1, 21325302, 0.015);
    SavingsAccount sa1(1, 58320212, 0.015);
    sa0.deposit(5, 5000);
    sa1.deposit(25, 10000);
    sa0.deposit(45, 5500);
    sa1.withdraw(60, 4000);
    sa0.settle(90);
    sa1.settle(90);
    sa0.show();
    cout << endl;
    sa1.show();
    cout << endl;
    return 0;
}
复制代码

 

posted on   石铁生  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示