第十二周项目4-2,银行系统改善

本文介绍了一个改进的银行系统,包括密码验证、业务处理和多种账户操作功能,如查询、取款、存款、转账和密码修改。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题及代码:

任务2——引入函数改善程序结构

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

  1. bool pass()  
  2. {  
  3.   int 次数=0;  
  4.   bool 是否密码正确=false;   //先假设密码不正确,以便能进入do-while循环  
  5.   do{  
  6.     输入密码;  
  7.     次数++;  
  8.     if(相符)是否密码正确=true;  
  9.   }while(密码不正确且尝试次数不足3次);  
  10.   return 是否密码正确;  //上面密码正确为true,反之……  
  11. }  
  3、main()函数的结构将如下所示,work函数用于处理业务。
  1. main()  
  2. {  
  3.   ……  
  4.     if(pass())  
  5.         work();  
  6.     else  
  7.         输出“请到柜台办理密码查询后再来”。  
  8.     return 0;  
  9. }      
  4、办理业务的函数work的结构如下:
  1. void work()  
  2. {  
  3.   //循环显示功能菜单:1.查询、2.取款、3.存款、4.转帐、5.改密、0.退出  
  4.   //选择后办理各种业务,再显示菜单,直到选择了0。  
  5.    
  6. }  
  其中,各项业务分别编制一个函数完成。提示功能菜单(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,提示“输错了,不要急!”
  以后我们再做支持多个帐户的银行系统。

/*
*Copyright (c)2014,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:test.cpp
*作    者:陈文青
*完成日期:2014年11月16日
*版 本 号:v1.0
*
*问题描述:银行系统改善
*程序输入:
*程序输出:
*/
#include<iostream>
using namespace std;
int password = 123456;
double balance = 10000;
bool pass();
void work();
void showbalance();
void drawmoney();
void deposit();
void transferAccounts();
void updatePassword();

int main()
{
    cout<<"贺家银行欢迎您光临……"<<endl;
    if(pass())
        work();
    else
        cout<<"密码错误,请持身份证前往就近银行办理业务。"<<endl;
    return 0;
}

bool pass()                  //密码验证
{
    bool bPass=false;        //先假设不正确,直至正确后赋值为true
    int iPass;
    int num=1;
    cout<<"请输入密码:";
    do
    {
        if(num>1)
            cout<<"密码第"<<num-1<<"次输入错误,请重新输入:(提示:三次不对将吞卡)"<<endl;
        cin>>iPass;
        num++;
        if(iPass==password)
            bPass=true;    //密码正确时赋值为true
    }
    while(!bPass&&num<4);  //密码不正确且次数在三次输入范围之内
    return bPass;
}

void work()                //处理业务
{
    char cChoice;
    bool bExit = false;
    do
    {
        cout<<endl<<"*  您可以办理下面的业务:"<<endl;
        cout<<"*  1.查询   2.取款  3.存款  4.转账  5.改密  0.退出"<<endl;
        cout<<"*  请输入(0-5):";
        cin>>cChoice;
        switch(cChoice)
        {
        case '1':
            showbalance();
            break;
        case '2':
            drawmoney();
            break;
        case '3':
            deposit();
            break;
        case '4':
            transferAccounts();
            break;
        case '5':
            updatePassword();
            break;
        case '0':
            cout<<"欢迎您下次来存款. "<<endl;
            bExit=true;
        }
    }
    while(!bExit);
    return;
}

void showbalance()         //查询余额
{
    cout<<"您的当前余额是:"<<balance<<"元"<<endl;
}

void drawmoney()          //取款业务
{
    double money;

    cout << "请输入取款金额:";
    cin >> money;
    if(money<=balance)
    {
        balance-=money;
        cout<<"取款成功,您的余额是:"<<balance<<"元。"<<endl;
    }
    else
    {
        cout<<"对不起,您的余额已不足。"<<endl;
    }

}
void deposit()             //存款业务
{
    double money;
    cout << "请输入存款金额:";
    cin >> money;
    balance+=money;
    cout<<"存款成功,您的余额是:"<<balance<<"元。"<<endl;
}

void transferAccounts()   //转帐
{
    double money;
    int iAccount2;
    cout << "请输入对方帐户:";
    cin >> iAccount2;
    cout << "请输入转帐金额:";
    cin >> money;
    if(money<=balance)
    {
        balance-=money;
        cout<<"转给"<<iAccount2<<"后,您的余额为:"<<balance<<"元。"<<endl;
    }
    else
    {
        cout<<"您的余额不足,转账失败。"<<endl;
    }
}

void updatePassword()          //密码修改业务
{
    int p1,p2;
    cout << "请输入原密码:";
    cin >> p1;
    if(p1!=password)
    {
        cout<<"密码输入错误。"<<endl;
    }
    else
    {
        cout << "请输入新密码:";
        cin >> p1;
        cout << "请确认新密码:";
        cin >> p2;
        if(p1==p2)//两次输入相符
        {
            password=p1;
            cout<<"密码修改成功!"<<endl;
        }
        else
        {
            cout<<"两次输入不一致,密码修改失败。"<<endl;
        }
    }
}

运行结果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值