定义一个基本的银行账户类。在基本账户类的基础上派生出1年期定期账户、2年期定期账户、3年期定期账户和5年期定期账户。定义一个n个基类指针组成的数组,随机生成n个各类派生类的对象。让每个指针指向一个派生

定义一个基本的银行账户类。在基本账户类的基础上派生出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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值