第12周项目4 银行系统最终版

问题描述:

  任务 2——引入函数改善程序结构
1、数据
仍然只支持一位用户,所以用户帐号不必存储。
要用全局变量存储:(1)用户密码(由于支持改密码功能,所以用变量,暂时用整型,要在声
明时赋初值);(2)帐户余额(用浮点数表示,声明时赋初值)
2、在输入密码环节,实现有限次密码输入的限制,如果三次都没有输入正确,程序将直接退出,
不允许用户继续操作。
查验密码功能做成一个函数。例如:

<pre name="code" class="cpp">bool pass()
{
int 次数=0;
bool 是否密码正确=false; //先假设密码不正确,以便能进入 do-while 循环
do{
输入密码;
次数++;
if(相符)是否密码正确=true;
}while(密码不正确且尝试次数不足 3次);
return 是否密码正确; //上面密码正确为 true,反之……
}
3、main()函数的结构将如下所示,work 函数用于处理业务。
main()
{
……
if(pass())
work();
else
输出“请到柜台办理密码查询后再来”。
return 0;
}
4、办理业务的函数 work 的结构如下:
void work()
{
//循环显示功能菜单:1.查询、2.取款、3.存款、4.转帐、5.改密、0.退出
//选择后办理各种业务,再显示菜单,直到选择了0。
}

 其中,各项业务分别编制一个函数完成。提示功能菜单(1.查询、2.取款、3.存款、4.转帐、5.改密、0.退出)后,由用户输入功能选择,用 switch 多分支完成对应的功能(有的功能依然只输出 

一句话提示即可)。下页图示给出建议(鼓励在合理范围内别出心裁):
 输入 1(查询),调用函数 showbalance(),显示“您的余额是 xxxx.xx 元。”
 输入 2(取款),调用 drawmoney(),完成取款。要求输入取款金额,若余额不够,提示不能取
款,否则,帐户余额减少。取款后给出提示:“你的余额还有 XXX.XX 元”。
在实际业务中,还涉及到计算的问题。本题暂不考虑,作为拓展建议,可以在此处考虑计息。
 输入 3(存款):调用 deposit(),完成存款,余额增加(过瘾吧,想存多少存多少)。存款后
给出提示:“你的余额是 XXX.XX 元”。
 输入 4(转帐):调用 transferAccounts(),完成转帐,只支持转出功能。要求输入对方帐号和转
帐金额,若金额充足,完成转帐,当前帐户的余额减少,对方帐户余额增加。由于本题只有一
个帐号,故对方帐户增加的操作先不做了。
 输 入 5 ( 改 密 ) : 调 用updatePassword()改变密码。要求先输入旧密码,对了以后才能改密。新密码要输入两次,只有两次完全相同时才可以完成修改。
 输入0,显示“谢谢,欢迎下次再来!”退出循环,返回调用函数。
 输入不是 0-5,提示“输错了,不要急!”以后我们再做支持多个帐户的银行系统。

代码:

main.cpp

#include <iostream>
using namespace std;
int iPASSWORD=961013;
bool pass();
int work();
int main()
{
    cout<<"                             欢迎使用星耀银行自助系统!"<< endl;
    cout<<"请输入您的密码:";
    if (pass())
    {
        work();
    }
    return 0;
}
password.cpp

#include <iostream>
using namespace std;
extern int iPASSWORD;
bool pass()
{
    int iKey;
    cin>>iKey;
    if (iKey!=iPASSWORD)
    {
        cout<<"输入错误,亲不要着急。"<<'\n';
        cout<<"请重新输入密码:";
        cin>>iKey;
        if (iKey!=iPASSWORD)
        {
            cout<<"又错了你还有一次机会。"<<'\n';
            cout<<"请重新输入密码:";
            cin>>iKey;
        }
        if (iKey!=iPASSWORD)
        {
            cout<<"您的银行卡已被冻结,请持有效证件到银行解冻!";
            return false;
        }
    }
    return true;
}
int updatePassword()
{
    int password,a,b;
    cout<<"请输入旧密码:";
    cin>>password;
    while (password!=iPASSWORD)
    {
        cout<<"输入错误,请重新输入:";
        cin>>password;
    }
    cout<<"请输入新密码:";
    cin>>a;
    cout<<"请再输入一次新密码:";
    cin>>b;
    if (a==b)
        cout<<"恭喜您修改密码成功!"<<'\n';
    else
    {
        cout<<"两次密码不同!"<<'\n';
        updatePassword();
    }
    return 0;

}

word.cpp

#include <iostream>
using namespace std;
int deposit();
int transfer();
int showbalance();
int drawmoeny();
int updatePassword();
static long double a=7592.26;
int work()
{
    int iSelect;
    cout<<"-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-"<<endl;
    cout<<"* 星耀银行自助系统提供以下业务:"<<'\n';
    cout<<"* 1.查询"<<'\n';
    cout<<"* 2.取款"<<'\n';
    cout<<"* 3.存款"<<'\n';
    cout<<"* 4.转账"<<'\n';
    cout<<"* 5.改密"<<'\n';
    cout<<"* 0.退出"<<'\n';
    cout<<"* 请输入(0-5):";
    while (cin>>iSelect)
    {
        while (iSelect>5||iSelect<0)
        {
            cout<<"输入错误,无法提供服务。"<<'\n';
            cout<<"请重新输入:";
            cin>>iSelect;
        }
        switch (iSelect)
        {
        case 0:
            break;
        case 1:
            showbalance();
            break;
        case 2:
            drawmoeny();
            break;
        case 3:
            deposit();
            break;
        case 4:
            transfer();
            break;
        case 5:
            updatePassword();
        }
        if (iSelect==0)
        {
            cout<<"谢谢使用,欢迎下次再来!";
            return 0;
        }
        cout<<"继续操作请输入操作序号:";
    }
    return 0;
}
int showbalance()
{
    cout<<"您的余额为"<<a<<"元"<<'\n';
    return 0;
}
int drawmoeny()
{
    int iChoice;
    double iMoney;
    cout<<"请选择取款金额:"<<'\n';
    cout<<"* 1.100元"<<'\n';
    cout<<"* 2.200元"<<'\n';
    cout<<"* 3.500元"<<'\n';
    cout<<"* 4.1000元"<<'\n';
    cout<<"* 5.其他"<<'\n';
    cout<<"请输入(1-5):";
    cin>>iChoice;
    while (iChoice>5||iChoice<0)
    {
        cout<<"输入错误,无法提供服务。"<<'\n';
        cout<<"请重新输入:";
        cin>>iChoice;
    }
    switch (iChoice)
    {
    case 1:
        iMoney=100;
        cout<<"请提取现金!"<<'\n';
        cout<<"您的余额是:"<<a-iMoney<<'\n';
        break;
    case 2:
        iMoney=200;
        cout<<"请提取现金!"<<'\n';
        cout<<"您的余额是:"<<a-iMoney<<'\n';
        break;
    case 3:
        iMoney=500;
        cout<<"请提取现金!"<<'\n';
        cout<<"您的余额是:"<<a-iMoney<<'\n';
        break;
    case 4:
        iMoney=1000;
        cout<<"请提取现金!"<<'\n';
        cout<<"您的余额是:"<<a-iMoney<<'\n';
        break;
    case 5:
        cout<<"请输入金额:";
        cin>>iMoney;
        if(iMoney>a)
        {
            cout<<"余额不足!无法操作!"<<'\n';
            break;
        }
        cout<<"请提取现金!"<<'\n';
        cout<<"您的余额是:"<<a-iMoney<<'\n'<<"元";
        break;
    }
    return 0;
}
int deposit()
{
    int iChoice;
    double iMoney;
    cout<<"请选择存款金额:"<<'\n';
    cout<<"* 1.100元"<<'\n';
    cout<<"* 2.200元"<<'\n';
    cout<<"* 3.500元"<<'\n';
    cout<<"* 4.1000元"<<'\n';
    cout<<"* 5.其他"<<'\n';
    cout<<"请输入(1-5):";
    cin>>iChoice;
    while (iChoice>5||iChoice<0)
    {
        cout<<"输入错误,无法提供服务。"<<'\n';
        cout<<"请重新输入:";
        cin>>iChoice;
    }
    switch (iChoice)
    {
    case 1:
        iMoney=100;
        cout<<"汇款成功!!"<<'\n';
        cout<<"您的余额是:"<<a+iMoney<<'\n';
        break;
    case 2:
        iMoney=200;
        cout<<"汇款成功!!"<<'\n';
        cout<<"您的余额是:"<<a+iMoney<<'\n';
        break;
    case 3:
        iMoney=500;
        cout<<"汇款成功!!"<<'\n';
        cout<<"您的余额是:"<<a+iMoney<<'\n';
        break;
    case 4:
        iMoney=1000;
        cout<<"汇款成功!!"<<'\n';
        cout<<"您的余额是:"<<a+iMoney<<'\n';
        break;
        cout<<"汇款成功!"<<'\n';
        cout<<"您的余额为:"<<a+iMoney<<"元"<<'\n';
        break;
    case 5:
        cout<<"请输入金额:";
        cin>>iMoney;
        cout<<"汇款成功!"<<'\n';
        cout<<"您的余额为:"<<a+iMoney<<"元"<<'\n';
        break;
    }
    return 0;
}
int transfer()
{
    int iAccount,iChoice;
    double iMoney;
    cout<<"请输入转账账号:";
    cin>>iAccount;
    cout<<"请选择转账金额:"<<'\n';
    cout<<"* 1.100元"<<'\n';
    cout<<"* 2.200元"<<'\n';
    cout<<"* 3.500元"<<'\n';
    cout<<"* 4.1000元"<<'\n';
    cout<<"* 5.其他"<<'\n';
    cout<<"请输入(1-5):";
    cin>>iChoice;
    while (iChoice>5||iChoice<0)
    {
        cout<<"输入错误,无法提供服务。"<<'\n';
        cout<<"请重新输入:";
        cin>>iChoice;
    }
    switch (iChoice)
    {
    case 1:
        iMoney=100;
        cout<<"汇款成功!!"<<'\n';
        cout<<"您的余额是:"<<a-iMoney<<'\n';
        break;
    case 2:
        iMoney=200;
        cout<<"汇款成功!!"<<'\n';
        cout<<"您的余额是:"<<a-iMoney<<'\n';
        break;
    case 3:
        iMoney=500;
        cout<<"汇款成功!!"<<'\n';
        cout<<"您的余额是:"<<a-iMoney<<'\n';
        break;
    case 4:
        iMoney=1000;
        cout<<"汇款成功!!"<<'\n';
        cout<<"您的余额是:"<<a-iMoney<<'\n';
        break;
        cout<<"汇款成功!"<<'\n';
        cout<<"您的余额是:"<<a-iMoney<<'\n';
        break;
    case 5:
        cout<<"请输入金额:";
        cin>>iMoney;
        if(iMoney>a)
        {
            cout<<"余额不足!无法操作!"<<'\n';
            break;
        }
        cout<<"汇款成功!"<<'\n';
        cout<<"您的余额是:"<<a-iMoney<<'\n'<<"元";
        break;
    }
    return 0;
}

运行结果:



做了一个下午终于做完了,很开森。就是把学过的嵌套在一块应用。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值