基本信息
源码名称:c++ 模拟银行系统
源码大小:4.11M
文件格式:.rar
开发语言:C/C++
更新时间:2017-10-20
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍
实现银行系统的储蓄账户和信用账户模式

#include <iostream>
#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();
}