C++作业8.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C作业8

(Account继承层次)创建一个银行账户的继承层次,表示银行的所有客户账户。所有的客户都能在他们的银行账户存钱,取钱,但是账户也可以分成更具体的类型。例如,一方面存款账户SavingAccount依靠存款生利,另一方面,支票账户CheckingAccount对每笔交易(即存款或取款)收取费用。 创建一个类层次,以Account作为基类, SavingAccount和CheckingAccount作为派生类。基类Account应该包括一个double类型的数据成员balance,表示账户的余额。该类应提供一个构造函数,接受一个初始余额值并用它初始化数据成员balance。而且构造函数确认初始余额的有效性,保证它大于等于0。如果小于0,则需将其置为0,并显示出错信息,表明该初始化余额是一个无效的值。该类应当提供三个成员函数。成员函数credit可以向当前余额加钱;成员函数debit负责从账户中取钱,并且保证账户不会被透支。如果提取金额大于账户金额,函数将保持balance不变,并打印信息“Debit amount exceeded account balance”;成员函数getBalance则返回当前balance的值 派生类SavingAccount不仅继承了基类Account的功能,而且还应提供一个附加的double类型数据成员interestrate表示这个账户的比率(百分比)。 SavingAccount的构造函数应接受初始余额值和初始利率值,还应提供一个public成员函数caclculateInterest,返回代表账户的利息的一个double值,这个值是balance和interestrate的乘积。注意:类SavingAccount应继承成员函数credit和debit,不需要重新定义。 派生类CheckingAccount不仅继承了基类Account的功能,还应提供一个附加的double类型数据成员表示每笔交易的费用。 CheckingAccount的构造函数应接受初始余额值和交易费用值。类CheckingAccount需要重新定义成员函数credit和debit,当每笔交易完成时,从balance中减去每笔交易的费用。重新定义这些函数时应用(即调用)基类Account的这两个函数来执行账户余额的更新。 CheckingAccount的debit函数只有当钱被成功提取时(即提取金额不超过账户余额时)才应收取交易费。提示:定义Account的debit函数使它返回一个bool类型值,表示钱是否被成功提取。然后利用该值决定是否需要扣除交易费。 当这个层次中的类定义完毕后,编写一个程序,要求创建每个类的对象并测试他们的成员函数。将利息加到SavingAccount对象的方法是:先调用它的成员函数caclculateInterest,然后将返回的利息数传递给该对象的credit值。 Account.h #ifndef ACCOUNT_H #define ACCOUNT_H class Account { public: Account( double = 0 ); bool credit( double ); bool debit( double ); double getBalance() { return balance; } private: double balance; }; #endif Account.cpp #include iostream 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 to 0! endl; // 不合要求输出提示信息 } } bool Account::credit( double deposit ) // 存钱 { cout you are crediting or get interest deposit yuan endl; if( deposit = 0 ) { balance += deposit; return true; } else { cout Wrong deposit! You cant deposit less than 0 yuan! ; // 不合要求输出提示信息 return false; } } bool Account::de

文档评论(0)

yaobanwd + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档