银行系统

来源:互联网 发布:java交换两个字符变量 编辑:程序博客网 时间:2024/04/27 21:24
#include<iostream>#include<string.h>#include<stdio.h>#include<iomanip>   //后面使用staw()需要用的定义using namespace std;//银行中最大的账户数量#define MAXACCOUNTNUMBER 20000    //自定义变量不需要“=”和“;”//银行卡的开号初始值#define INITNUMBER 10001          //一般自定义变量规范使用大写英文字母struct account                   //定义结构体变量{    long accnumber;               //卡号    char accname[20];            //户主    char accpwd[10];            //密码    double balance;            //余额    char flag[6];             //卡的状态};//银行中所有的卡account array[MAXACCOUNTNUMBER];//银行中卡的数量int size=0;const char name[20]="admin";//字符串数组定义管理员姓名和密码const char pwd[20]="admin";void welcome();//欢迎界面void printaccount(account acc);//账号的表示long autocreament();//账号的累加void openaccount();//开户bool isPassLegal(char pass[]);int searchAccount(long accNumber);//校验密码必须是6-8位,而且是纯数字void login();//登陆界面int searchaccount(long accnum);//寻找卡号为accnum的卡是否存在void deposit();//存款void withdraw();//取款void showbalance();//查询余额void closeAnAcount();  //销户void mainmenu();//主菜单int main(){    char loginName[20];    char loginPwd[20];    int i;    //欢迎界面    welcome();    //..    for(i=0;i<3;i++)    {        cout<<"请输入用户名:";        cin>>loginName;        cout<<"请输入密码:";        cin>>loginPwd;        if(strcmp(loginName,"admin")==0&&strcmp(loginPwd,"admin")==0)        {            mainmenu();            break;        }else{            cout<<"用户名或密码输入错误"<<endl;        }    }    return 0;}void welcome(){cout<<"+-------------------------------------+"<<endl;cout<<"*                                     *"<<endl;cout<<"*                                     *"<<endl;cout<<"*     &  欢迎使用胡氏银行系统  &      *"<<endl;cout<<"*                v1.0                 *"<<endl;cout<<"*                                     *"<<endl;cout<<"*                                     *"<<endl;cout<<"*-------------------------------------*"<<endl;}void mainmenu()//主菜单{int chooser;cout<<"****************"<<endl;cout<<"* 1.开户 2.销户*"<<endl;    cout<<"* 3.存款 4.取款*"<<endl;cout<<"* 5.查询 6.退出*"<<endl;cout<<"****************"<<endl;cout<<"请输入操作类型:";cin>>chooser;switch(chooser){case 1:openaccount();break; //开户case 2:closeAnAcount();  break;//销户case 3:deposit();break;//存款case 4:  withdraw();break;//取款case 5: showbalance();break; //查询case 6:exit(0);  //退出default:cout<<"您的选择有误!\n";cout<<"按任意键继续……";break;}}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 accpwd1[10],accpwd2[10];    cout<<"请输入户主姓名:";    cin>>array[size].accname;    cout<<"请输入密码:";    cin>>accpwd1;cout<<"请再次输入密码:";    cin>>accpwd2;    if(strcmp(accpwd1,accpwd2)==0){//二次密码一致if(isPassLegal(accpwd1)){//密码是合法strcpy(array[size].accpwd,accpwd1);cout<<"请输入金额:";cin>>array[size].balance;strcpy(array[size].flag,"正常");array[size].accnumber=autocreament();printaccount(array[size]);size++;cout<<"开户成功按任意键返回"<<endl;fflush(stdin);getchar();mainmenu();}else{cout<<"密码必须是纯数字,并且是6-8位。"<<endl;openaccount();}}else{//两次密码输入不一致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(9)<<"卡号"<<setw(9)<<"户主"<<setw(9)<<"密码"<<setw(9)<<"金额"<<setw(9)<<"状态"<<"|"<<endl;cout<<setiosflags(ios::left)<<"|*-------------------------------------------------*|"<<endl;cout<<setiosflags(ios::left)<<"|"<<setw(9)<<acc.accnumber<<setw(9)<<acc.accname<<setw(9)<<acc.accpwd<<setw(9)<<acc.balance<<setw(9)<<acc.flag<<"|"<<endl;cout<<"|---------------------------------------------------|"<<endl;}/*根据卡号查找卡的下标* 若返回值>=0,卡号是正确* 若返回值=-1,卡号有误*/int searchaccount(long accnum)//寻找卡号为accnum的卡是否存在{int i,pos=-1;for(i=0;i<size;i++){if(array[i].accnumber==accnum&&strcmp(array[i].flag,"销户")!=0){pos=i;break;}}    return pos;   }void deposit()//存款{long accnum;//存款的账号double money=0;//存款的金额,初始化int pos;cout<<"*****欢迎来到存款界面*****"<<endl;cout<<"请输入账号:"<<endl;cin>>accnum;    cout<<"请输入存款金额:"<<endl;    cin>>money;    pos=searchaccount(accnum);if(pos==-1){//卡号有误cout<<"卡号有误,请重新输入:"<<endl;deposit();}else if(strcmp(array[pos].flag,"正常")==0){        //展示下存款前卡的信息        cout<<"存款前卡的信息:"<<endl;        printaccount(array[pos]);        //找到了该卡号所对应的卡        array[pos].balance+=money;//展示存款后卡的信息        cout<<"存款后卡的信息:"<<endl;        printaccount(array[pos]);        cout<<"存款成功,按任意键返回"<<endl;        fflush(stdin);        getchar();        mainmenu();    }else{        //说明此卡片已经冻结        cout<<"卡号已冻结,请联系管理人员"<<endl;        fflush(stdin);        getchar();        mainmenu();    }}void withdraw()//取款{    long accnum;//取款的账号char accpwd[20];//账号的密码double money=0;//取款的金额,初始化int pos,i;cout<<"*****欢迎来到取款界面*****"<<endl;for(i=0;i<3;i++){cout<<"请输入账号:"<<endl;cin>>accnum;cout<<"请输入密码:"<<endl;cin>>accpwd;pos=searchaccount(accnum);if(pos>=0 && strcmp(array[pos].accpwd,accpwd)==0){cout<<"请输入取款金额:"<<endl;cin>>money;if(money<=array[pos].balance){cout<<"取款前卡的信息为:"<<endl;printaccount(array[pos]);//展示取款前卡的信息array[pos].balance-=money;cout<<"取款后卡的状态为:"<<endl;printaccount(array[pos]);//展示取款前后的信息cout<<"取款成功,按任意键返回:"<<endl;}else{cout<<"对不起,您的余额不足,无法进行操作!"<<endl;cout<<"按任意键返回"<<endl;}fflush(stdin);getchar();mainmenu();}else{cout<<"用户名或密码输入错误,系统自动退出!"<<endl;}}}void showbalance()//查询{    int pos;    long accNum;cout<<"请输入你要查询的卡号:"<<endl;cin>>accNum;pos=searchaccount(accNum);if(pos==-1){        //卡号有误        cout<<"卡号不存在,请重新输入卡号:"<<endl;        showbalance();}else{cout<<"你当前卡的信息为:"<<endl;printaccount(array[pos]);}cout<<"查询成功,按任意键返回:"<<endl;fflush(stdin);getchar();mainmenu();}//销户void closeAnAcount()  {  char pwd[10];  long accNum;  int pos;  cout<<"请输入销户的账号:"<<endl;  cin>>accNum;  pos=searchaccount(accNum);  if(pos==-1)  {  //卡号有误   cout<<"卡号不存在,请重新输入卡号"<<endl;  //...   closeAnAcount();  }  else  {  cout<<"请输入密码:"<<endl;  cin>>pwd;  if(strcmp(array[pos].accpwd,pwd)==0)  {  cout<<"密码正确!"<<endl;  cout<<"销户信息如下:"<<endl;  array[pos].balance=0;  strcpy(array[pos].flag,"销户");  cout<<"销户已成功,按任意键返回!"<<endl;  printaccount(array[pos]);  fflush(stdin);//清除缓存区   getchar();//任意键返回   mainmenu();}  else  {  cout<<"对不起,密码错误!请重新输入!"<<endl;  closeAnAcount();  }  }  }  
运行结果:
原创粉丝点击