模拟银行系统PHP,c++ 模拟银行系统

【实例简介】实现银行系统的储蓄账户和信用账户模式

【实例截图】

bc893b5adb58dc5d07adc5056db16944.png

【核心代码】

#include

#include "account.h"

using namespace std;

double Account::total = 0;

Account::Account(const Date &date, const string &id):id(id),balance(0)

{

date.show();

cout << "\t#" << id << " created" << endl;

}

void Account::record(const Date &date, double amount, const string &desc)

{

balance = amount;

total = amount;

date.show();

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

}

void Account::show() const

{

cout << id << "\tBalance: " << balance;

}

void Account::error(const string &msg) const

{

cout << "Error(#" << id << "): " << msg << endl;

}

//储蓄卡

SavingsAccount::SavingsAccount(const Date &date, const string &id, double rate):Account(date,id),rate(rate),acc(date,0)

{

}

void SavingsAccount::deposit(const Date &date, double amount, const string &desc)

{

record(date, amount, desc);

acc.change(date, getBalance());

}

void SavingsAccount::withdraw(const Date &date, double amount, const string &desc)

{

if (amount > getBalance())

{

error("余额不足");

}

else

{

record(date, -amount, desc);

acc.change(date, getBalance());

}

}

void SavingsAccount::settle(const Date &date)

{

//每年一月计算利息

if (date.getMonth() == 1)

{

double intrest = acc.getSum(date)*rate / (date - Date(date.getYear() - 1, 1, 1));

if (intrest != 0)

{

record(date, intrest, "存款利息");

acc.reset(date, getBalance());

}

}

}

//信用卡相关函数

CreditAccount::CreditAccount(const Date &date, const string &id, double credit, double rate, double fee)

:Account(date,id),credit(credit),rate(rate),fee(fee),acc(date,0)

{

}

void CreditAccount::deposit(const Date &date, double amount, const string &desc)

{

record(date, amount, desc);

acc.change(date, getDebt());

}

void CreditAccount::withdraw(const Date &date, double amount, const string &desc)

{

if (amount - getBalance() > credit)

{

error("信用额度不足");

}

else

{

record(date, -amount, desc);

acc.change(date, getDebt());

}

}

void CreditAccount::settle(const Date &date)

{

double interest = acc.getSum(date)*rate;

if (interest != 0)

{

record(date, interest, "信用卡利息");

}

if (date.getMonth() == 1)

{

record(date, -fee, "信用卡年费");

}

acc.reset(date, getDebt());

}

void CreditAccount::show() const

{

Account::show();

cout << "\t可用信用额度:" << getAvailableCredit();

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值