题目描述
银行账户类的基本描述如下:
要求如下:
实现该银行账户类
为账户类Account增加一个友元函数,实现账户结息,要求输出结息后的余额(结息余额=账户余额+账户余额*利率)。友元函数声明形式为 friend void update(Account& a);
在main函数中,定义一个Account类型的指针数组,让每个指针指向动态分配的Account对象,并调用成员函数测试存款、取款、显示等函数,再调用友元函数测试进行结息。
大家可以根据实际需求在类内添加其他方法,也可以修改成员函数的参数设置
输入
第1行:利率
第2行:账户数目n
第3行开始,每行依次输入一个账户的“账号”、“姓名”、“余额”、存款数,取款数。
输出
第1行开始,每行输出一个账户的相关信息,包括账号、姓名、存款后的余额、存款后结息余额、取款后余额。
最后一行输出所有账户的余额。
AC代码:
#include <iostream>
#include <cmath>
using namespace std;
string cno, cname;
float balance, deposit_count, withdraw_count;
float sum;
class Account
{
private:
static float count; // 账户总余额
static float interestRate;
string cno, name;
float balance;
public:
Account(string cno, string name, float balance) : cno(cno), name(name), balance(balance) {}
~Account(){};
void deposit(float amount); // 存款
void withdraw(float amount); // 取款
float getBalance() const { return balance; }; // 获取账户余额
void show() const; // 显示账户所有基本信息
static float getCount() { return count; }; // 获取账户总余额
static void setInterestRate(float rate); // 设置利率
static float getInterestRate(); // 获取利率
void setbalance(float rate){ balance*=(1+rate);};
};
float Account::count = 0; // 初始化静态成员变量
float Account::interestRate = 0;
void Account::deposit(float amount)
{
balance += amount;
count += amount;
} // 存款
void Account::withdraw(float amount)
{
if (balance >= amount)
{
balance -= amount;
count -= amount;
}
} // 取款
void Account::show() const
{
//账号、姓名、存款后的余额、存款后结息余额、取款后余额。
cout << cno << " " << name << " ";
}
void Account::setInterestRate(float rate)
{
interestRate = rate;
}
float Account::getInterestRate()
{
return interestRate;
}
int main()
{
double rate;
int t;
cin >> rate >> t;
int ultimate_count=0;
while (t--)
{
cin >> cno >> cname >> balance;
cin >> deposit_count >> withdraw_count;
Account::setInterestRate(rate); // 设置利率
Account a(cno, cname, balance);
a.show();
a.deposit(deposit_count);
cout << a.getBalance() << " ";
cout << a.getBalance() * (1 + Account::getInterestRate()) << " ";
a.setbalance(rate);
a.withdraw(withdraw_count);
cout << a.getBalance() << endl;
ultimate_count+=a.getBalance();
//账号、姓名、存款后的余额、存款后结息余额、取款后余额。
}
cout<< ultimate_count<<endl;
return 0;
}