#include<iostream>
#include<string>
#include<stdlib.h> //system("cls")清屏函数和exit()用到此头文件
#include<conio.h> //getch()要用到此头文件
using namespace std;
#pragma warning(disable:4996)
class Account
{
private:
char mName[10]; //银行账户的户名
long mSN; //本账户的帐号
float mBalance; //本账户当前的余额
public:
Account(); //无参构造函数
void deposit(); //往账户中存款
int withdraw(); //从账户中取款
void getBalance(); //查询余额
long getmSN() { return mSN; } //取得客户的帐号
};
Account::Account() //无参构造函数,从键盘输入信息进行初始化
{
cout << "输入户名" << endl;
cin >> mName;
cout << "输入账号" << endl;
cin >> mSN;
cout << "输入存款金额" << endl;
cin >> mBalance;
}
//往账户中存款,存款金额为amount
void Account::deposit()
{
cout << "请输入存款金额" << endl;
int amount;
cin >> amount;
mBalance = mBalance + amount;
cout << "存款成功" << endl;
}
//从账户中取款,取款金额为amount
int Account::withdraw()
{
cout << "请输入取款金额" << endl;
int amount;
cin >> amount;
while (1)
{
if (amount > mBalance)
{
cout << "透支,请重新输入取款金额" << endl;
cin >> amount;
}
else break;
}
mBalance = mBalance - amount;
cout << "取款成功" << endl;
return 1;
}
//查询帐户当前余额
void Account::getBalance()
{
cout <<"当前账户余额为"<< mBalance << endl;
}
//菜单函数
void menu(void)
{
system("cls"); //清屏
cout << "-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*" << endl;
cout << "-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*" << endl;
cout << " 简单银行帐户系统" << endl << endl;
cout << "1.存款 " << endl;
cout << "2:取款" << endl;
cout << "3:查询余额 " << endl;
cout << "4:退出 " << endl << endl;
cout << "-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*" << endl;
cout << "-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*" << endl;
cout << endl << endl << endl;
}
//主函数
int main()
{
int cho, n, r, i, flag = 0;
long aNo;
cout << "要开的账户数目为:" << endl;
cin >> n;
Account* p; //定义对象指针
p = new Account[n]; //动态创建对象数组
while (1)
{
menu();
do
{
cout << "请根据菜单进行操作选择:" << endl;
cin >> cho;
// getch(); //清除键盘缓冲区内容,为下一次正确读入做准备。
} while (cho < 1 || cho>4);
switch (cho)
{
case 1://存款
cout << "请输入帐号:";
cin >> aNo;
for (i = 0; i < n; i++)
{
if ((p + i)->getmSN() == aNo)
{
flag = 1;
(p + i)->deposit();
(p + i)->getBalance();
break;
}
}
if (flag == 0)
cout << "对不起,输入帐号有错误!" << endl;
flag = 0;
getch();
break;
case 2://取款
cout << "请输入帐号:";
cin >> aNo;
for (r = 0; r < n; r++)
{
if ((p + r)->getmSN() == aNo)
{
flag = 1;
(p + r)->withdraw();
(p + r)->getBalance();
break;
}
}
if (flag == 0)
cout << "对不起,输入帐号有错误!" << endl;
flag = 0;
getch();
break;
case 3://查询
cout << "请输入帐号:";
cin >> aNo;
for (i = 0; i < n; i++)
{
if ((p + i)->getmSN() == aNo)
{
flag = 1;
(p + i)->getBalance();
}
}
if (flag == 0)
cout << "对不起,输入帐号有错误!" << endl;
flag = 0;
getch();
break;
case 4://退出
return 0;
}
}
delete[] p; //释放空间
return 0;
}