C++面向对象程序设计第3版杜茂康习题2第9题的代码
时间: 2024-06-12 10:06:47 浏览: 204
题目描述:
设计一个银行账户类Account,包含如下属性:账户号码(number)、账户余额(balance)、账户利率(rate)三个私有数据成员,并分别提供访问它们的公有成员函数。除此之外,还要求提供下面的公有成员函数:
1.构造函数,用来初始化账户号码、账户余额、账户利率三个数据成员。
2.取款函数,用来从账户余额中扣除指定的数额。
3.存款函数,用来向账户余额中增加指定的数额。
4.计算并返回账户利息的函数。
5.输出账户信息的函数。
6.设计一个测试代码,测试Account类的各个成员函数是否正确。
注意:
1.账户号码和账户余额不能为负数,如果有负数,构造函数会自动将它们设置为0。
2.账户利率不能为负数或大于100,如果有负数或大于100,构造函数会自动将它们设置为0。
3.取款函数和存款函数不能使账户余额为负数,如果取款或存款后余额为负数,则不进行操作。
4.计算利息的函数使用以下公式:interest=balance*rate/12,其中interest为月利息,balance为账户余额,rate为账户利率。
5.输出账户信息的函数应该按照如下格式输出:Account#100000: balance=$1000.00, rate=5.00%。
6.测试代码应该创建两个账户,一个初始余额为$1000,利率为5%的账户(account1),一个初始余额为$2000,利率为4%的账户(account2)。对account1进行一次取款$500,对account2进行一次存款$1000,并输出它们的信息。
代码实现:
```c++
#include<iostream>
using namespace std;
class Account{
private:
int number;
double balance;
double rate;
public:
Account(int n, double b, double r){
if(n<0) number=0;
else number=n;
if(b<0) balance=0;
else balance=b;
if(r<0 || r>100) rate=0;
else rate=r;
}
int get_number(){
return number;
}
double get_balance(){
return balance;
}
double get_rate(){
return rate;
}
void withdraw(double amount){
if(amount<=balance){
balance-=amount;
cout<<"Withdrawal $"<<amount<<" from Account#"<<number<<endl;
}
else{
cout<<"Withdrawal failed. Not enough balance in Account#"<<number<<endl;
}
}
void deposit(double amount){
balance+=amount;
cout<<"Deposit $"<<amount<<" to Account#"<<number<<endl;
}
double get_interest(){
return balance*rate/12;
}
void print_info(){
cout<<"Account#"<<number<<": balance=$"<<balance<<", rate="<<rate<<"%"<<endl;
}
};
int main(){
Account account1(100000, 1000, 5);
Account account2(100001, 2000, 4);
account1.withdraw(500);
account2.deposit(1000);
account1.print_info();
account2.print_info();
return 0;
}
```
阅读全文