11.10 Account_Inheritance
描述
按照书本11.10描述编写银行账户的类继承结构
为了统一实现方式,请使用下面的main函数,main函数代码不得修改
int main(){
//初始化
//输入账户余额
double balance;
cin>>balance;
//创建一个Account实例
Account a(balance);
//检查输入的balance是否合法
if(!a.check()){
a.setBalance(0);
cout<<"Not a valid parameter."<<endl;
return 0;
}
//输入利率
double rate;
cin>>rate;
//创建一个SavingAccount实例
SavingAccount aSaving(balance, rate);
//输入手续费
double fee;
cin>>fee;
//创建一个 CheckingAccount实例
CheckingAccount aChecking(balance, fee);
//模拟业务
//输入存取钱数
double creditAmount;
double debitAmount;
cin >> creditAmount >> debitAmount;
//测试Acount
a.credit(creditAmount); //存钱
cout<<fixed << setprecision(2) <<a.getBalance()<<endl;//输出余额
if(a.debit(debitAmount)){ // 取钱
cout<<fixed << setprecision(2)<<a.getBalance()<<endl;// 输出余额
}
// 测试 CheckingAccount
if(aChecking.credit(creditAmount)){
cout<<fixed << setprecision(2)<<aChecking.getBalance()<<endl;
}
if(aChecking.debit(debitAmount)){
cout<<fixed << setprecision(2)<<aChecking.getBalance()<<endl;
}
//测试 SavingAccount
double interest = aSaving.calculateInterest();
aSaving.credit(interest);
cout<<fixed << setprecision(2)<<aSaving.getBalance()<<endl;
return 0;
}
输入
输入包含两行(除初始余额外其余的输入保证为正数)
1.三个实数,表示账户的初始余额、利率(百分比)和手续费
2.两个实数,表示用于测试的存钱数和取钱数
普通账户和CheckingAccount均执行存钱后取钱操作
SavingAccount不进行存取,只保留初始余额
输出
输出包含五行(初始余额输入为负数时,只输出"Not a valid parameter.")
1.一个实数,Account存钱后的账户余额
2.一个实数/字符串,Account取钱后的账户余额/取钱失败提示
3.一个实数/字符串,CheckingAccount存钱后的账户余额/操作失败提示
4.一个实数/字符串,CheckingAccount取钱后的账户余额/操作失败提示
5.一个实数,SavingAccount计算利息并将利息存入后的账户余额
所有输出的实数保留两位小数
普通账户取钱失败输出"Debit amount exceeded account balance."
CheckingAccount操作失败输出"Operation not permitted."(不带引号)
输入样例1
100 20 0.5
5 2
输出样例1
105.00
103.00
104.50
102.00
120.00
输入样例2
-10 20 8
10 93
输出样例2
Not a valid parameter.
信息
- ID
- 1006
- 难度
- 1
- 分类
- (无)
- 标签
- 递交数
- 246
- 已通过
- 37
- 通过率
- 15%
- 上传者