具有多态性的银行系统程序C

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档