1.用对象数组实现一个简单的银行账户管理系统,完成多个用户的开户、存款、取款和查询余额等行为。

#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;
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值