1. 程式人生 > >c++ 銀行賬戶管理

c++ 銀行賬戶管理

#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 id;
    }
    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"<<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,4000);
    sa1.withdraw(60,4000);
    sa0.settle(90);
    sa1.settle(90);
    sa0.show();
    cout<<endl;
    sa1.show();
    cout<<endl;
    return 0;
}