- 16
- 0
- 约5.15千字
- 约 8页
- 2020-04-19 发布于浙江
- 举报
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::debit( double
原创力文档

文档评论(0)