实验二:继承和派生程序设计(4学时)必做题:
先设计一个基本账户类,再通过继承基本账户类设计一个储蓄账户类,储蓄账户类中增加一个静态成员变量(年利率),并增加如下成员函数:(1)计算月利息
月利息=存款金额x年利率+12
(2)更改利率(静态方法):重新设置年利率最后,编写一个程序来测试所设计的储蓄账户类能否实现预定的功能。
#include<iostream>
#include<string.h>
using namespace std;
class Account{
protected:
int id;
char name[15];
int money;
public:
Account(int id,char *name,int money):id(id),money(money){
strcpy(this->name,name);
}
void Inmoney(int m);
void outmoney(int m);
};
void Account::Inmoney(int m){
money +=m;
}
void Account::outmoney(int m){
if(m>money){
cout<<"余额不足,无法操作"<<endl;
}else{
money -=m;
}
}
class SaveAccount:public Account{
private:
static float yearrate;
public:
SaveAccount(int id,char *name,int money):Account(id,name,money){}
float AMouthrate(int Mouthrate);
void print();
void reyearrate();
};
float SaveAccount::yearrate =0.03;
float SaveAccount::AMouthrate(int Mouthrate){
Mouthrate= money*yearrate/12;
return Mouthrate;
}
void SaveAccount::print(){
cout<<"账户"<<id<<endl;
cout<<"姓名"<<name<<endl;
cout<<"余额"<<money<<endl;
cout<<"年利率"<<yearrate<<endl;
}
void SaveAccount::reyearrate(){
int m;
cout<<"请输入你想要修改的的数值"<<endl;
cin>>m;
yearrate = m;
cout<<"年利率为:"<<yearrate<<endl;
}
int main() {
SaveAccount zhangsan(1, "zhangsan", 50000);
zhangsan.print();
int m;
cout << "请选择操作" << endl;
cout << "1.存钱 " << "2.取钱 " << "3.打印信息 " << "4.计算月利息 " << "5.修改年利率" << endl;
cin >> m;
switch (m) {
case 1: {
int c;
cout << "请输入存款金额" << endl;
cin >> c;
zhangsan.Inmoney(c);
zhangsan.print();
break;
}
case 2: {
int c;
cout << "请输入取款金额" << endl;
cin >> c;
zhangsan.outmoney(c);
zhangsan.print();
break;
}
case 3: {
zhangsan.print();
break;
}
case 4: {
int c;
cout << "月利息是:" << zhangsan.AMouthrate(c) << endl;
break;
}
case 5: {
zhangsan.reyearrate();
}
}
return 0;
}