银行系统(完结)

来源:互联网 发布:什么是内存整型数据 编辑:程序博客网 时间:2024/05/01 06:51
#include <iostream>#include<iomanip>#include<string.h>#include<stdlib.h>#include <stdio.h>using namespace std;//银行中最大的账户数量#define MAXACCOUNTNUMBER 20000//银行卡的开号初始值#define INITNUMBER 10001void  welcome();//欢迎界面void  login();//登陆void mainmenu();//主菜单void deposit();//存款void drawmoney();// 取款void showbalance();//查询void openAccount();//开户void closeAccount(); //销户struct Account{    long accNumber;   //卡号    char accName[20]; //户主    char accPwd[10];  //密码    double balance;   //余额    char flag[6];     //卡的状态};Account array[MAXACCOUNTNUMBER];//银行中所有卡int size=0;//银行中银行卡数量long autoCreament();//生成银行中自增卡号void printAccount(Account acc);//输出指定卡的信息int searchAccount(long accNumber);//根据卡号查找卡在数组中的下标int main(){    welcome();//欢迎界面    login();//登陆 return 0;}void  welcome(){    cout<<"               "<<"+---------------------------------------------+"<<endl;    cout<<"               "<<"|                                             |"<<endl;    cout<<"               "<<"|          欢迎使用储蓄综合业务平台           |"<<endl;    cout<<"               "<<"|                                             |"<<endl;    cout<<"               "<<"+---------------------------------------------+"<<endl;}   void  login(){    char name[20];//账户    char password[20];//密码    int i;    for(i=0;i<3;i++)    {        cout<<"请输入账号:";        cin>>name;        cout<<"请输入密码:";        cin>>password;        if(strcmp(name,"liqiaoli")==0&&strcmp(password,"1103")==0)//判断账户名与密码是否一致        {            mainmenu();//载入菜单            break;        }else{            if(i==2)            {               cout<<"输入错误已达到三次,自动退出"<<endl;               break;            }            cout<<"账号或密码错误"<<endl;        }    }}void mainmenu(){    char chooser;bool bExit = false;do{    cout<<"              "<<"+-----------------------------------------------+"<<endl;    cout<<"              "<<"|          存款  请按1     开户  请按4          |"<<endl;    cout<<"              "<<"|          取款  请按2     销户  请按5          |"<<endl;    cout<<"              "<<"|          查询  请按3     退出  请按0          |"<<endl;    cout<<"              "<<"+--------------------------—-------------------+"<<endl;    cout<<"请选择服务类型代码:";    cin>>chooser;    switch(chooser){        case '1':            deposit();break;        case '2':drawmoney();            break;        case '3':showbalance();            break;        case '4':openAccount();break;        case '5':closeAccount();break;        case '0':            cout<<"谢谢使用,欢迎您下次光临!"<<endl;            exit(0);        }    }while(!bExit);    return;}bool isPassLegal(char pass[]){    bool flag=true;    int len=strlen(pass),i;    if(len<9&&len>=6){        //满足6-8位        for(i=0;i<len;i++){            if(pass[i]<48||pass[i]>57){                flag=false;                break;            }        }    }else{        //不满足6-8位        flag=false;    }    return flag;}//开户void openAccount(){    char pwd1[10],pwd2[10];    cout<<"请输入户主:";    cin>>array[size].accName;    cout<<"请输入密码:";    cin>>pwd1;    cout<<"请再次输入密码:";    cin>>pwd2;    //验证2次输入的密码是否一致    if(strcmp(pwd1,pwd2)==0){        //2次密码一致        if(isPassLegal(pwd1)){            //密码是合法     strcpy(array[size].accPwd,pwd1);     cout<<"请输入金额:";    cin>>array[size].balance;    cout<<    strcpy(array[size].flag,"正常")<<endl;    //写卡号    array[size].accNumber=autoCreament();    printAccount(array[size]);    size++;     bool isPassLegal(char pass[]);    cout<<"开户成功,按任意键返回"<<endl;    fflush(stdin);    getchar();    mainmenu();}else{            cout<<"密码必须是纯数字,并且是6-8位"<<endl;            openAccount();        }    }else{        //2次输入的密码不一致        cout<<"两次输入的密码不一致"<<endl;        openAccount();    }}long autoCreament(){    if(size==0){        return INITNUMBER;    }else{        return array[size-1].accNumber+1;    }}//输出指定卡的信息void printAccount(Account acc){    cout<<"                 |----------------------------------------|"<<endl;    cout<<"                 "<<setiosflags(ios::left)<<"|"<<setw(8)<<"卡号"<<setw(8)<<"|户主"<<setw(8)<<"|密码"<<setw(8)<<"|金额"<<setw(8)<<"|状态"<<"|"<<endl;    cout<<"                 "<<setiosflags(ios::left)<<"+----------------------------------------+"<<endl;    cout<<"                 "<<setiosflags(ios::left)<<"|"<<setw(8)<<acc.accNumber<<"|"<<setw(7)<<acc.accName<<"|"<<setw(7)<<acc.accPwd<<"|"<<setw(7)<<acc.balance<<"|"<<setw(7)<<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;}//存款void deposit(){    long accNum;//存款的账号    double money;//存款的金额    int pos;    cout<<"请输入存款的账号:";    cin>>accNum;    cout<<"请输入存款金额:";    cin>>money;    pos=searchAccount(accNum);    if(pos==-1){        //卡号有误        cout<<"卡号不存在,请重新输入卡号"<<endl;        //重新存款        deposit();    }else{        //展示下存款前卡的信息        cout<<"存款前卡的信息:"<<endl;        printAccount(array[pos]);        //找到了该卡号所对应的卡        array[pos].balance+=money;         //展示存款后卡的信息        cout<<"存款后卡的信息:"<<endl;        printAccount(array[pos]);        cout<<"存款成功,按任意键返回"<<endl;        fflush(stdin);        getchar();        mainmenu();    }    cout<<endl;}//取款void drawmoney(){    long accNum;//取款的账号    double money;//取款的金额    int pos;    cout<<"请输入取款的账号:";    cin>>accNum;    cout<<"请输入取款金额:";    cin>>money;    pos=searchAccount(accNum);    if(pos==-1){        //卡号有误        cout<<"卡号不存在,请重新输入卡号"<<endl;        //重新取款        drawmoney();    }else{        //展示下取款前卡的信息        cout<<"取款前卡的信息:"<<endl;        printAccount(array[pos]);        //找到了该卡号所对应的卡        array[pos].balance-=money;         //展示取款后卡的信息        cout<<"取款后卡的信息:"<<endl;        printAccount(array[pos]);        cout<<"取款成功,按任意键返回"<<endl;        fflush(stdin);        getchar();        mainmenu();    }    cout<<endl;}//查询void showbalance(){long accNum;//查询的账号int pos;    cout<<"请输入查询的账号:";    cin>>accNum;pos=searchAccount(accNum);if(pos==-1){        //卡号有误        cout<<"卡号不存在,请重新输入卡号"<<endl;        //重新取款showbalance();    }else{        //找到了该卡号所对应的卡         //展示查询卡的信息        cout<<"查询卡的信息:"<<endl;        printAccount(array[pos]);        cout<<"查询成功,按任意键返回"<<endl;        fflush(stdin);        getchar();        mainmenu();    }    cout<<endl;}//销户void closeAccount(){    long accNum;//销户的账号int pos;char password[20];    cout<<"请输入销户的账号:";    cin>>accNum;pos=searchAccount(accNum);if(pos==-1){        //卡号有误        cout<<"卡号不存在,请重新输入卡号"<<endl;        //重新销户        closeAccount();        }else{        //找到了该卡号所对应的卡        cout<<"请输入密码:";        cin>>password;        if(strcmp(array[pos].accPwd,password)==0){                array[pos].balance=0;//余额为零                strcpy(array[pos].flag,"销户");//状态为销户                printAccount(array[pos]);//打印                cout<<"销户成功,按任意键返回";                fflush(stdin);                getchar();                mainmenu();//返回主菜单            }            else            {                cout<<"输入密码有误,销户失败!"<<endl;            }        }        }

原创粉丝点击