欢迎来到天天文库
浏览记录
ID:46681967
大小:55.00 KB
页数:7页
时间:2019-11-26
《c大学基础教程多态》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、C++第13章第16题使用Account类层次结构开发的多态性的银行系统1、代码实现://Account.h#ifndefACCOUNT_H#defineACCOUNT_HclassAccount{public:Account(double=0.0);virtualvoidcredit(double);virtualbooldebit(double);voidsetBalance(double);doublegetBalance();private:doublebalance;};#endif//Account.cpp#include2、am>usingstd::cout;usingstd::cin;usingstd::endl;usingstd::cerr;#includeMAccount.hHAccount::Account(doubleb){if(b<0){balance=0.0;cerr«"Error:aninvalidvalue!"«endl;}elsebalance=b;voidAccount::credit(doubleamount)balance=balance+amount;boolAccount::debit(doubleamount)if(amount<=ba3、lance)balance=balance・amount;returntrue;elsecout«"Debitamountexceededaccountbalanee!";returnfalse;voidAccount::setBalance(doublenewBalance)balance二newBalance;doubleAccount::getBalance()returnbalance;//SavingsAccount.h#includeHAccount.hn#ifndefSAVINGSACCOUNT.H#defineSAVINGSACCO4、UNT.HclassSavingsAccount:publicAccountpublic:SavingsAccount(double,double=0.0);〜SavingsAccount();doublecaculatelnterestf);private:doubleinterestrate;};#endif//SavingsAccount.cpp#includeusingstd::cout;usingstd::cin;usingstd::endl;#includenSavingsAccount.hnSavingsAccou5、nt::SavingsAccount(doublebdoublei):Account(b){interestrate=i;}SavingsAccount::〜SavingsAccount(){}doubleSavingsAccount::caculateInterest(){doubleinterest;interest=Account::getBalance()*interestrate;returninterest;}//CheckingAccount.h#includeHAccount.hn#ifndefCHECKINGACCOUNT_H#d6、efineCHECKINGACCOUNT.HclassCheckingAccount:publicAccount{public:CheckingAccountfdouble^double二0.0);voidsetFeechargedpertransaction(double);doublegetFeechargedpertransactionQ;virtualvoidcredit(double);virtualbooldebit(double);private:doublefeechargedpertransaction;};#endif//Che7、ckingAccount.cpp#includeusingstd::cout;usingstd::cin;usingstd::endl;#include,,CheckingAccount.hHCheckingAccount::CheckingAccount(doublebdoublef):Account(b){feechargedpertransaction=f;}voidCheckingAccount::setFeechargedpertransaction(doublef){cout«nenterfeechargedpert8、ransaction:"«endl;cin»f;feechargedpertransaction=f;}doubleChe
2、am>usingstd::cout;usingstd::cin;usingstd::endl;usingstd::cerr;#includeMAccount.hHAccount::Account(doubleb){if(b<0){balance=0.0;cerr«"Error:aninvalidvalue!"«endl;}elsebalance=b;voidAccount::credit(doubleamount)balance=balance+amount;boolAccount::debit(doubleamount)if(amount<=ba
3、lance)balance=balance・amount;returntrue;elsecout«"Debitamountexceededaccountbalanee!";returnfalse;voidAccount::setBalance(doublenewBalance)balance二newBalance;doubleAccount::getBalance()returnbalance;//SavingsAccount.h#includeHAccount.hn#ifndefSAVINGSACCOUNT.H#defineSAVINGSACCO
4、UNT.HclassSavingsAccount:publicAccountpublic:SavingsAccount(double,double=0.0);〜SavingsAccount();doublecaculatelnterestf);private:doubleinterestrate;};#endif//SavingsAccount.cpp#includeusingstd::cout;usingstd::cin;usingstd::endl;#includenSavingsAccount.hnSavingsAccou
5、nt::SavingsAccount(doublebdoublei):Account(b){interestrate=i;}SavingsAccount::〜SavingsAccount(){}doubleSavingsAccount::caculateInterest(){doubleinterest;interest=Account::getBalance()*interestrate;returninterest;}//CheckingAccount.h#includeHAccount.hn#ifndefCHECKINGACCOUNT_H#d
6、efineCHECKINGACCOUNT.HclassCheckingAccount:publicAccount{public:CheckingAccountfdouble^double二0.0);voidsetFeechargedpertransaction(double);doublegetFeechargedpertransactionQ;virtualvoidcredit(double);virtualbooldebit(double);private:doublefeechargedpertransaction;};#endif//Che
7、ckingAccount.cpp#includeusingstd::cout;usingstd::cin;usingstd::endl;#include,,CheckingAccount.hHCheckingAccount::CheckingAccount(doublebdoublef):Account(b){feechargedpertransaction=f;}voidCheckingAccount::setFeechargedpertransaction(doublef){cout«nenterfeechargedpert
8、ransaction:"«endl;cin»f;feechargedpertransaction=f;}doubleChe
此文档下载收益归作者所有