具有多态性的银行系统程序C
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
使用习题12.10中创建的Account类层次结构开发一个具有多态性的银行系统程序。创建一个Account指针的vector对象,其中的指针指向SavingsAccount对象和CheckingAccount 对象。对于该vector对象中每个Account,允许用户使用成员函数debit指定要从Account 取出的货币金额,并允许用户使用成员函数credit指定要存入该Account的货币金额。处理每个Account时,应判定它的类型。如果Account是SavingsAccount,就使用成员函数,就使用成员函数calculateInterest计算该Account应得的利息,然后使用成员函数credit把利息加到帐户余额上。处理完一个Account后,通过调用基类成员函数getBalance打印更新后的帐户余额。
Account.h
#ifndef ACCOUNT_H
#define ACCOUNT_H
class Account
{
public:
Account(double=0);
virtual bool credit(double);
virtual bool debit(double);
virtual double getBalance()
{
return balance;
}
private:
double balance;
};
#endif
Account.cpp
#include
using std::endl;
using std::cout;
#include"Account.h"
Account::Account(double YuE)
{
if(YuE>=0)
balance=YuE;
else
{
balance=0;
cout<<"Unvalid input!Balance is setted to0!"< } bool Account::credit(double deposit)//存钱 { cout<<"you are crediting or get interest"< if(deposit>=0) { balance+=deposit; return true; } else { cout<<"Wrong deposit!You can't deposit less than0yuan!";//不合要求输出提示信息 return false; } } bool Account::debit(double withdraw)//取钱 { cout<<"you are debiting or paying the fee charged for this transaction"< if(withdraw>=0&&withdraw<=balance) { balance-=withdraw; return true; } else { cout<<"Debit amount exceeded account balance,or you wrongly withdraw less than0 yuan!";//不合要求输出提示信息 return false; } } SavingAccount.h #ifndef SAVINGACCOUNT_H #define SAVINGACCOUNT_H #include"Account.h" class SavingAccount:public Account { public: SavingAccount(double=0,double=0); double calculateInterest()//计算利息 { return interestrate*getBalance(); } private: double interestrate; }; #endif SavingAccount.cpp #include using std::endl; using std::cout; #include"SavingAccount.h" SavingAccount::SavingAccount(double YuE,double LiLv) :Account(YuE)//为基类中的数据成员初始化 { if(LiLv>=0&&LiLv<=1) interestrate=LiLv; else { interestrate=0; cout<<"Unvalid input!Interestrate is setted to0!"< } cout<<"saving interestrate is"< } CheckingAccount.h #ifndef CHECKINGACCOUNT_H