定义一个基本的银行账户类。在基本账户类的基础上派生出1年期定期账户、2年期定期账户、3年期定期账户和5年期定期账户。定义一个n个基类指针组成的数组,随机生成n个各类派生类的对象。让每个指针指向一个派生类的对象。这些对象可以是1年期定期账户、2年期定期账户、3年期定期账户,也可以是5年期定期账户。输出每个账户到期的利息。
#include <iostream>
using namespace std;
class account
{
protected:
double money;
public:
virtual void input()=0;
virtual void display()=0;
};
class account1:public account
{
public:
void input(){
cout<<"存储金额";
cin>>money;
}
void display()
{
cout<<"存储一年后金额为"<< money*0.0234+money<<endl;//假设利率
}
};
class account2:public account
{
public:
void input(){
cout<<"存储金额";
cin>>money;
}
void display()
{
cout<<"存储二年后金额为"<< money*(1+0.0234)*(1+0.0234)<<endl;//假设利率
}
};class account3:public account
{
public:
void input(){
cout<<"存储金额";
cin>>money;
}
void display()
{
cout<<"存储三年后金额为"<<money*(1+0.0234)*(1+0.0234)*(1+0.0234) <<endl;//假设利率
}
};
class account5:public account
{
public:
void input(){
cout<<"存储金额";
cin>>money;
}
void display()
{
cout<<"存储五年后金额为"<< money*(1+0.0234)*(1+0.0234)*(1+0.0234)*(1+0.0234)<<endl;//假设利率
}
};
int main()
{
account *p[1000];
int n;
cout<<"请输入n"<<endl;
int a;
int b;
cin>>n;
for(int i=0;i<n;i++){
if(i%2==0)
{
account1 a;
p[i]=&a;
p[i]->input();
p[i]->display();
}
else{
if(i%3==0)
{
account2 b;
p[i]=&b;
p[i]->input();
p[i]->display();}
else
{
if(i%5==0)
{
account3 c;
p[i]=&c;
p[i]->input();
p[i]->display();
}
else
{
account3 c;
p[i]=&c;
p[i]->input();
p[i]->display();
}//多重循环的目的主要是为了构造随机性
}
}
}
return 0;
}