• 32


    #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 << " #" << 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 << " #" << id << " " << amount << " " << 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 << " Balance: " << 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;
    }

  • 相关阅读:
    8位单片机可用的 mktime localtime函数
    【转载】linux获取mac地址
    【转载】openwrt框架分析
    JVM调优工具Arthas的使用
    Grafana监控JVM
    JAVA死锁排查-性能测试问题排查思路
    JVM的堆内存泄漏排查-性能测试
    性能测试之JVM的故障分析工具VisualVM
    性能测试之 JVM 异常说明和分析工具
    性能测试之 JVM 概念认识
  • 原文地址:https://www.cnblogs.com/acm-icpcer/p/6640341.html
Copyright © 2020-2023  润新知