【id:121】【25分】C. 银行账户(拷贝构造)

【id:121】【25分】C. 银行账户(拷贝构造)
时间限制
1s
内存限制
128MB
题目描述

银行账户包括余额、利率、号码、类型等属性,其中号是固定8位整数,类型表示个人还是企业账户,如果是个人用P标识,企业用E标识。

账户又分为活期账户和定期账户,活期利率为0.5%,定期利率为1.5%。

账户操作有计息、查询操作。计息操作是根据利率计算利息,并把利息增加到余额中,并做相关信息输出。查询操作是输出账户的全部信息。

创建一个活期账户,并通过构造函数初始化各个属性。然后通过拷贝构造来创建一个定期账户,信息与活期账户基本相同,不同之处包括:定期账户号码是活期账户号码加50000000(7个0);利率是定期利率。

要求所有数据成员都是私有属性

用C++语言的类与对象思想来编写程序实现上述要求

输入

输入测试个数t,表示有t个活期账户

先输入一个活期账户的账户号码、账户类型、余额(根据输入创建活期账户和定期账户)

接着输入两个操作符,第一个操作符对活期账户操作,第二个操作符对定期账户进行操作。若输入大写字母C表示计息操作,若输入大写字母P表示查询操作

以此类推输入其他账户的信息和操作

输出

每两行输出一对活期账户和定期账户的操作结果。

#include <iostream>
using namespace std;

class BankAccount
{
private:
    long number;
    char type;
    double sum;
    double rate;
public:
    BankAccount(long n, char t, double s, double r)
    {
        number = n;
        type = t;
        sum = s;
        rate = r;
    }
    BankAccount(const BankAccount &ba)
    {
        number = ba.number + 50000000;
        type = ba.type;
        sum = ba.sum;
        rate = 0.015;
    }
    void countInterest()
    {
        double interest = sum * rate;
        sum += interest;
        cout << "Account=" << number << "--sum=" << sum << endl;
    }
    void query()
    {
        cout << "Account=" << number << "--";
        if (type == 'P')
        {
            cout << "Person--";
        }
        else
        {
            cout << "Enterprise--";
        }
        cout << "sum=" << sum << "--rate=" << rate << endl;
    }
};

int main()
{
    int t;
    cin >> t;
    while (t--)
    {
        long n;
        char t;
        double s;
        cin >> n >> t >> s;
        BankAccount ba1(n, t, s, 0.005);
        BankAccount ba2(ba1);
        char op1, op2;
        cin >> op1 >> op2;
        if (op1 == 'C')
        {
            ba1.countInterest();
        }
        else
        {
            ba1.query();
        }
        if (op2 == 'C')
        {
            ba2.countInterest();
        }
        else
        {
            ba2.query();
        }
    }
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谁的BUG最难改

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值