实训:银行系统(销户还未作,等待更新)

来源:互联网 发布:java。 大数据 编辑:程序博客网 时间:2024/05/21 17:16
#include <iostream>#include <string.h>#include <iomanip>#include <stdio.h>using namespace std;#define MAXACCOUNTNUMBER 20000//银行中初始卡号#define INITNUMBER 10001//定义开户系统结构体struct Account{    long accNumber;   //卡号    char accName[20]; //户名    char accPwd[10];  //密码    double balance;   //余额    char flag[6];     //卡的状态};//结构体结束符(切记,别漏掉!!!)void Welcome();//欢迎函数void Denglu();//登陆函数void Mainmenu();//主界面void Chose();//选择函数void Exit();//退出函数void OpenAnAccount();//开户函数void Deposit();//存款函数void GoDeposit();//进入存款void Query();//查询函数void GoQuery();//进入查询void Withdraw();//取款函数void GoWithdraw();//进入取款void CloseAnAccount();//销户函数//输出指定卡的信息void printAccount(Account acc);//根据卡号查找卡在数组中的下标int searchAccount(long accNumber);//银行中所有卡Account array[MAXACCOUNTNUMBER];//银行中卡的数量(全局变量)int size=0;//生成银行中自增卡号long autoCreament();//定义全局变量用作密码、用户名const char Mima[10]="admin";const char Yonghuming[10]="admin";int main(){    Welcome();    Denglu();    return 0;}//欢迎界面void Welcome(){    cout<<"*********************************************"<<endl;    cout<<"**                                         **"<<endl;    cout<<"**       欢迎使用储蓄综合业务平台          **"<<endl;    cout<<"**                                         **"<<endl;    cout<<"*********************************************"<<endl;}//登陆系统void Denglu(){    int i;    char str1[10],str2[10];//用于输入用户名和密码    cout<<"请输入用户名:";    cin>>str1;//输入用户名    if(strcmp(str1,Yonghuming)==0)    {        cout<<endl;        cout<<"请输入登陆密码:";        cin>>str2;        if(strcmp(str2,Mima)==0)//判断密码是否正确        {            cout<<"*********************************************"<<endl;            cout<<"**         欢迎登陆储蓄综合业务平台        **"<<endl;            cout<<"*********************************************"<<endl;            Mainmenu();             //正确,进入系统        }        else        {            for(i=2;i>0;--i)            {                cout<<"密码错误,请重新输入:(您还有"<<i<<"次机会)";//密码不正确,三次输入机会,三次不正确,退出                cin>>str2;                cout<<endl;                if(strcmp(str2,Mima)==0)                {                    cout<<"*********************************************"<<endl;                    cout<<"**         欢迎登陆储蓄综合业务平台        **"<<endl;                    cout<<"*********************************************"<<endl;                    Mainmenu();                    break;                }                if(i==1)//三次没输正确                {                    cout<<"您连续三次输错密码,请到前台找回密码,谢谢合作!";                    break;                }            }        }    }    else    {        cout<<"该用户名不存在."<<endl;   //用户名错误        Denglu();//重新返回登陆界面    }}//主菜单void Mainmenu(){    cout<<"*********************************************"<<endl;    cout<<"**      1.开户             4.取款          **"<<endl;    cout<<"**      2.销户             5.查询          **"<<endl;    cout<<"**      3.存款             0.退出          **"<<endl;    cout<<"*********************************************"<<endl;    Chose();}//选择进入其他业务void Chose(){    int choice;    cout<<"请输入您的选择:";//输入选择    cin>>choice;    if(choice>=0&&choice<=5)    {        switch(choice)//分别进入不同业务        {            case 0:                   Exit();                   break;            case 1:                   OpenAnAccount();                   break;            case 2:                   CloseAnAccount();                   break;            case 3:                   Deposit();                   break;            case 4:                   Withdraw();                   break;            case 5:                   Query();                   break;        }    }    else    {        cout<<"输入有误,请核实后重新输入!";//输入有误        Mainmenu();        Chose();    }}void OpenAnAccount(){    cout<<"*********************************************"<<endl;    cout<<"**           欢迎进入开户系统              **"<<endl;    cout<<"*********************************************"<<endl;    cout<<"请输入户名:";    cin>>array[size].accName;    cout<<"请输入密码:";        //输入并保存数据    cin>>array[size].accPwd;    cout<<"请输入金额:";    cin>>array[size].balance;    strcpy(array[size].flag,"正常");//*******记住    array[size].accNumber=autoCreament();    printAccount(array[size]);    size++;    cout<<"开户成功,按任意键返回..."<<endl;    fflush(stdin);    getchar();    Mainmenu();//返回主菜单}//生成银行中自增卡号long autoCreament(){    if(size==0)    {        return INITNUMBER;    }    else    {        return array[size-1].accNumber+1;//以前最后一位户主的卡号加一作为新户主的卡号    }}//销户界面void CloseAnAccount(){    cout<<"*********************************************"<<endl;    cout<<"**           欢迎进入销户系统              **"<<endl;    cout<<"*********************************************"<<endl;}//存款界面void Deposit(){    cout<<"*********************************************"<<endl;    cout<<"**           欢迎进入存款系统              **"<<endl;    cout<<"*********************************************"<<endl;    GoDeposit();}//取款界面void Withdraw(){    cout<<"*********************************************"<<endl;    cout<<"**           欢迎进入取款系统              **"<<endl;    cout<<"*********************************************"<<endl;    GoWithdraw();}//查询界面void Query(){    cout<<"*********************************************"<<endl;    cout<<"**           欢迎进入查询系统              **"<<endl;    cout<<"*********************************************"<<endl;    GoQuery();}//退出界面void Exit(){    cout<<"*********************************************"<<endl;    cout<<"**谢谢您使用储蓄综合业务平台,欢迎下次光临 **"<<endl;    cout<<"*********************************************"<<endl;}void GoDeposit(){    long accNum;//存款的账号    double money;//存款的金额    int pos;    cout<<"请输入存款的账号:";    cin>>accNum;    pos=searchAccount(accNum);    if(pos==-1)    {        //卡号有误        cout<<"卡号不存在,请重新输入卡号"<<endl;        GoDeposit();    }else    {        cout<<"请输入存款金额:";        cin>>money;        //展示下存款前卡的信息        cout<<"存款前卡的信息:"<<endl;        printAccount(array[pos]);        //存款后的余额        array[pos].balance+=money;         //展示存款后卡的信息        cout<<"存款后卡的信息:"<<endl;        printAccount(array[pos]);        cout<<"存款成功,按任意键返回"<<endl;        fflush(stdin);        getchar();        Mainmenu();//返回主菜单    }}void GoWithdraw(){    long accNum;//取款的账号    char accnum[10];//密码一定要定义成char数组,注意!!!    double money;//取款的金额    int pos;    cout<<"请输入取款的账号:";    cin>>accNum;    pos=searchAccount(accNum);    if(pos==-1)    {        //卡号有误        cout<<"卡号不存在,请重新输入卡号"<<endl;        GoWithdraw();    }    else//卡号正确,进入    {        cout<<"请输入密码:";        cin>>accnum;//输入密码        if(strcmp(array[pos].accPwd,accnum)==0)        {            cout<<"请输入取款金额:";            cin>>money;            if(array[pos].balance<money)            {                cout<<"您的余额不足,无法取出!!!"<<endl;                GoWithdraw();            }            else            {                //展示下取款前卡的信息                cout<<"取款前卡的信息:"<<endl;                printAccount(array[pos]);                //取款后的余额                array[pos].balance-=money;                //展示取款后卡的信息                cout<<"取款后卡的信息:"<<endl;                printAccount(array[pos]);                cout<<"取款成功,按任意键返回"<<endl;                fflush(stdin);                getchar();                Mainmenu();//返回主菜单            }        }        else        {            cout<<"输入密码有误!"<<endl;            GoWithdraw();//返回        }    }}void GoQuery(){    long accNum;//查询的账号    char accnum[10];//密码一定要定义成char数组,注意!!!    int pos;    cout<<"请输入您要查询的账号:";    cin>>accNum;    pos=searchAccount(accNum);    if(pos==-1)    {        //卡号有误        cout<<"卡号不存在,请重新输入卡号"<<endl;        GoWithdraw();    }    else//卡号正确,进入    {        cout<<"请输入密码:";        cin>>accnum;//输入密码        if(strcmp(array[pos].accPwd,accnum)==0)        {            cout<<"您的卡的信息为:"<<endl;            printAccount(array[pos]);            cout<<"查询成功,按任意键返回"<<endl;            fflush(stdin);            getchar();            Mainmenu();//返回主菜单        }        else        {            cout<<"输入密码有误!"<<endl;            GoQuery();//返回        }    }}//输出指定卡的信息void printAccount(Account acc){    cout<<"+--------------------------------------------+"<<endl;    cout<<"|"<<setiosflags(ios::left)<<setw(8)<<"卡号"<<"|"<<setw(8)<<"户名"<<"|"<<setw(8)<<"密码"<<"|"<<setw(8)<<"金额"<<"|"<<setw(8)<<"状态"<<"|"<<endl;    cout<<"+--------------------------------------------+"<<endl;    cout<<"|"<<setiosflags(ios::left)<<setw(8)<<acc.accNumber<<"|"<<setw(8)<<acc.accName<<"|"<<setw(8)<<acc.accPwd<<"|"<<setw(8)<<acc.balance<<"|"<<setw(8)<<acc.flag<<"|"<<endl;    cout<<"+--------------------------------------------+"<<endl;}/*根据卡号查找卡的下标* 若返回值>=0,卡号是正确* 若返回值=-1,卡号有误*/int searchAccount(long accNumber){    int i,pos=-1;    for(i=0;i<size;i++){        if(array[i].accNumber==accNumber){            //找到了这张卡            pos=i;            break;        }    }    return pos;}

原创粉丝点击