银行账户BankAccount类

   

【问题描述】

定义银行账户BankAccount类。

私有数据成员:余额balance(整型)。

公有成员方法:

无参构造方法BankAccount():将账户余额初始化为0;

带参构造方法BankAccount(int m):将账户余额初始化为指定的参数。

int getbalance() 方法:返回账户余额。

void withdraw(int m) 取款方法:从账户余额中提取m指定的款额,如果余额不足,给出” Insufficient balance.”。

void deposit(int m) 存款方法:将m指定的款项存到账户。

在main方法中构造银行账户,对其进行存取款操作。

其中操作类型类型为d表示存款,w表示取款,每次操作后打印账户余额。


【输入形式】

账户余额

存取款操作数

操作类型 金额


【输出形式】

操作后的账户余额。

【样例输入】

1000

5

w 400

d 100

w 500

w 300

w 100


【样例输出】

balance: 600

balance: 700

balance: 200

Insufficient balance.balance: 200

balance: 100              

改进之处

  1. 在构造函数BankAccount(int m)中,你使用了cin语句来获取输入。通常来说,构造函数不应该直接从用户输入中获取数据,因为这样的设计可能会导致不可预测的行为。建议在构造函数中只初始化成员变量,将用户输入放在 main() 函数或其他适当的地方处理。

  2. 在循环中,你使用了 const int k = A.i; 来控制循环次数。然而,iBankAccount 类的一个公有成员变量,不应该暴露给外部。更好的方法是使用一个私有成员变量来记录循环次数,并提供一个公有的成员函数来获取该值。

  3. 易错在用户输入 'd' 时,你使用了 if (way == 'd'),但是没有相应的 else if 来处理用户输入 'w'。这意味着如果用户输入的是 'w',程序会执行下一个 if 语句,即使用户输入的不是 'd'。你可以使用 else if 来修正这个问题。

  4. 在最后的 else 语句中,你使用 return 0; 来结束程序。这样做会导致程序在用户输入其他字符时立即退出,而不是等待用户继续输入。你可以考虑使用循环来持续接受用户输入,直到用户选择退出。

#include<iostream>
using namespace std;
class BankAccount {
private:
	int balance;

public:
	int i = 0;
	BankAccount() {}
	BankAccount(int m) :balance(m) { }
	int getbalance();
	void withdraw(int m);
	void deposit(int m);
};

void BankAccount::withdraw(int m)
{
	if (m <= balance) 
	{
		
		balance -= m;
		cout << "balance:" << balance << endl;
	}
		
	else
	{
		cout << "Insufficient balance:" << balance<<endl;
		
	}
		
}
void BankAccount::deposit(int m)
{
	balance += m;
	cout << "balance:" << balance << endl;
}
int main()
{
	int m;
	int j,i;
	cin >> m ;
	BankAccount A(m);
	cin >> i;
	for (j = 0; j<i; j++)
	{
		int a;
		char way;
		cin >> way;
		if (way == 'w')
		{
			cin >> a;
			A.withdraw(a);
		}
		else if (way == 'd')
		{
			cin >> a;
			A.deposit(a);
		}
		else
		{
			return 0;
		}



	}
	return 0;
}
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值