7-10 账户类CAccount-友元-C++

编写账户类CAccount,要求:

(1)账户余额和币种(假设两种币种,人民币"CNY"和美元"USD")为私有数据成员。

(2)在构造函数中通过键盘输入来初始化数据成员币种和账户余额。

(3)输出函数输出币种类型和余额值,余额保留2位小数。

(4)设计友元函数Transfer,当a和b账户的币种相同时,a的余额减少,b的余额增加相同值;当a、b账户币种不同时,b的余额增加值应进行汇率 换算,在友元函数中由键盘输入汇率和需要转账的金额。

输入样例:

CNY 20000

USD 10000

1000

0.1381

输出样例:

存款类型为人民币

存款余额为19000.00元

存款类型为美元

存款余额为10138.10美元

输入格式:

分四行输入信息,前两行分别输入第1个和第2个账户的币种和余额,第三行输入第一个账户到第二个账户需要转账的金额,第四行输入人民币到美元的汇率,例如:

CNY 20000

USD 10000

1000

0.1381

输出格式:

分别输入第1个和第二个账户转账之后的账户币种和余额,例如:

存款类型为人民币

存款余额为19000.00元

存款类型为美元

存款余额为10138.10美元

#include<iostream>
#include<string>
#include<iomanip>
using namespace std;

class CAccount
{
private:
	double m_money;
	string m_variety;
	string m_danwei;
public:
	CAccount(string variety, double money)
	{
		m_money = money;
		if (variety == "CNY")
		{
			m_variety = "人民币";
			m_danwei = "元";
		}
		if (variety == "USD")
		{
			m_variety = "美元";
			m_danwei = "美元";
		}
	}
	friend void Transfer(CAccount &, CAccount &);
};

int main(void)
{
	string variety;
	double money;
	cin >> variety >> money;
	CAccount a(variety, money);
	cin >> variety >> money;
	CAccount b(variety, money);
	Transfer(a, b);
	return 0;
}

void Transfer(CAccount &account1, CAccount &account2)
{
	double trans;
	double huilv;
	cin >> trans;
	cin >> huilv;
	if (account1.m_variety == account2.m_variety)
	{
		account1.m_money = account1.m_money - trans;
		account2.m_money = account2.m_money + trans;
	}
	else
	{
		if (account1.m_variety == "人民币")
		{
			account1.m_money = account1.m_money - trans;
			account2.m_money = account2.m_money + trans * huilv;
		}
		if (account1.m_variety == "美元")
		{
			account1.m_money = account1.m_money - trans;
			account2.m_money = account2.m_money + trans / huilv;
		}
	}
	cout << "存款类型为" << account1.m_variety << endl;
	cout << "存款余额为" << fixed << setprecision(2) << account1.m_money << account1.m_danwei << endl;
	cout << "存款类型为" << fixed << setprecision(2) << account2.m_variety << endl;
	cout << "存款余额为" << account2.m_money << account2.m_danwei << endl;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值