目录
1.设计一个BankAccount类,模拟银行账户的基本操作。
2.使用静态成员变量记录所有账户的总余额,每个账户对象有自己的余额属性。
题目
银行账户:设计一个BankAccount类,模拟银行账户的基本操作。
1.使用静态成员变量记录所有账户的总余额,每个账户对象有自己的余额属性。2.每个账户可以存取。3.提供静态成员函数来查询总余额。4.在构造函数和析构函数中更新总余额
分析
1.设计一个BankAccount类,模拟银行账户的基本操作。
首先,创建一个BankAccount类,用来模拟一些银行账户的存取操作。
class BankAccount{};
2.使用静态成员变量记录所有账户的总余额,每个账户对象有自己的余额属性。
然后创建一个静态变量表示所有账户的总余额,由于是静态成员变量,所以需要在类内定义,类外初始化。
static int Balance; // BankAccount类内
int BankAccount::balance = 0; // BankAccount类外
每个账户对象都有自己的余额属性,我们再创建一个普通的成员对象
int My_Balance;
3.每个账户可以存取。
创建出存钱和取钱的成员函数
// 存钱
void Save_Money(int money)
{
if (money > 0)
{
My_Balance += money;
Balance += money;
}
else
{
cout << "-------------存钱失败-------------" << endl;
}
}
// 取钱
void Withdraw_Money(int money)
{
if (money > 0 && My_Balance >= money)
{
My_Balance -= money;
Balance -= money;
}
else
{
cout << "-------------取钱失败-------------" << endl;
}
}
4.提供静态成员函数来查询总余额。
创建静态成员函数,返回Balance值
static int getBalance() //获取总余额
{
return Balance;
}
创建普通成员变量,返回My_Balance值
int getMy_Balance() //获取个人的余额
{
return My_Balance;
}
5.在构造函数和析构函数中更新总余额
我们使用构造函数在创建对象时,可以确定用户已有的余额
BankAccount() : My_Balance(0){}; // 在创建账户时不存钱
BankAccount(int money) : My_Balance(money) // 在创建账户时存钱,并更新总余额Balance
{
Balance += money;
};
在对象被销毁时,更新总余额
~BankAccount()
{
if (My_Balance > 0) Balance -= My_Balance;
}
6.创建主函数测试
int main()
{
BankAccount a(1000), b(2500), c(3500), d;
cout << "总余额为: " << BankAccount::getBalance() << endl;
a.getBalance();
a.getMyBalance();
b.Withdraw_Money(500);
cout << "总余额为: " << BankAccount::getBalance() << endl;
c.Save_Money(10000);
cout << "总余额为: " << BankAccount::getBalance() << endl;
}
7.结果
总余额为: 7000
总余额为: 6500
总余额为: 16500
完整代码
#include<iostream>
using namespace std;
/*
银行账户:
设计一个BankAccount类,模拟银行账户的基本操作。
1.使用静态成员变量记录所有账户的总余额,每个账户对象有自己的余额属性。
2.每个账户可以存取。
3.提供静态成员函数来查询总余额。
4.在构造函数和析构函数中更新总余额
*/
class BankAccount
{
static int Balance; // 总余额
int My_Balance;
public:
BankAccount() :My_Balance(0) {} //创建账户时不存钱
BankAccount(int money) :My_Balance(money) //创建账户时存钱
{
Balance += money;
}
~BankAccount() //销毁账户
{
if (My_Balance > 0) Balance -= My_Balance;
}
static int getBalance() //获取总余额
{
return Balance;
}
int getMyBalance() //获取个人余额
{
return My_Balance;
}
void Save_Money(int money)
{
if (money > 0)
{
My_Balance += money;
Balance += money;
}
else
{
cout << "-------------存钱失败-------------" << endl;
}
}
void Withdraw_Money(int money)
{
if (money > 0 && My_Balance >= money)
{
My_Balance -= money;
Balance -= money;
}
else
{
cout << "-------------取钱失败-------------" << endl;
}
}
};
int BankAccount::Balance = 0;
int main()
{
BankAccount a(1000), b(2500), c(3500), d;
cout << "总余额为: " << BankAccount::getBalance() << endl;
a.getBalance();
a.getMyBalance();
b.Withdraw_Money(500);
cout << "总余额为: " << BankAccount::getBalance() << endl;
c.Save_Money(10000);
cout << "总余额为: " << BankAccount::getBalance() << endl;
}