师创年终任务-银行系统(终结版)
来源:互联网 发布:mac上数据库管理软件 编辑:程序博客网 时间:2024/05/17 09:08
#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]; //卡的状态};//银行中所有卡Account array[MAXACCOUNTNUMBER];//银行中银行卡数量int size=0;//生成银行中自增卡号long autoCreament();//欢迎界面void welcome();//登陆界面void login();//主界面void work();//存款界面void depositmoney();//取款界面void drawmoney();//查询界面void showbalance();//开户界面void openaccount();//销户界面void closeaccount();//根据卡号查询指定的账户所在的下标int searchAccount(long accNumber);//个人信息的输出void putout(Account acc);//退出界面void exit();int main(){welcome();login(); return 0;}void welcome(){ cout<<"+----------------------------------+"<<endl; cout<<"| |"<<endl; cout<<"| |"<<endl; cout<<"| 欢迎使用储蓄综合业务平台 |"<<endl; cout<<"| |"<<endl; cout<<"| |"<<endl; cout<<"+----------------------------------+"<<endl;}void login(){ int i=0; char bankname[10]="admin";char bankpassword[10]="admin";for(i=0;i<3;i++){cout<<"请输入用户名:";char name[10]={0};cin>>name;cout<<"请输入密码:";char password[10]={0};cin>>password;if (strcmp(bankname,name)!=0||strcmp(bankpassword,password)!=0){if(i==2){cout<<"您输入的错误次数太多,不允许继续操作!"<<endl;break;}cout<<"用户名或则密码错误请重新输入:" <<endl;}else{work();break;}}}void work(){int cChoice;cout<<"+----------------------------------+"<<endl;cout<<"| |"<<endl;cout<<"| 存款 请按1 开户 请按4 |"<<endl;cout<<"| 取款 请按2 销户 请按5 |"<<endl;cout<<"| 查询 请按3 退出 请按0 |"<<endl;cout<<"| |"<<endl;cout<<"+----------------------------------+"<<endl;cout<<"请输入您的选择(0-5):";cin>>cChoice;switch(cChoice){case 1:depositmoney();break;case 2:drawmoney();break;case 3:showbalance();break;case 4:openaccount();break;case 5:closeaccount();break;case 0:exit();break;}return;}void depositmoney(){cout<<"+----------------------------------+"<<endl;cout<<" "<<endl;cout<<" 欢迎进入存款系统 "<<endl;cout<<" "<<endl;cout<<"+----------------------------------+"<<endl; long accNum;//存款的账号 double money;//存款的金额 int pos; cout<<"请输入存款的账号:"; cin>>accNum;cout<<"请输入存款金额:";cin>>money; pos=searchAccount(accNum);if(pos==-1){ //卡号有误 cout<<"卡号不存在,请重新输入卡号"<<endl; depositmoney(); }else{ //展示下存款前卡的信息 cout<<"存款前卡的信息:"<<endl;putout(array[pos]); //找到了该卡号所对应的卡 array[pos].balance+=money;//展示存款后卡的信息 cout<<"存款后卡的信息:"<<endl;putout(array[pos]); cout<<"存款成功,按任意键返回"<<endl; fflush(stdin); getchar(); work();}}void drawmoney(){ cout<<"+----------------------------------+"<<endl;cout<<" "<<endl;cout<<" 欢迎进入取款系统 "<<endl;cout<<" "<<endl;cout<<"+----------------------------------+"<<endl;long accNum;//存款的账号 double money;//存款的金额 int pos;char wrd[20]={0}; cout<<"请输入取款的账号:"; cin>>accNum; cout<<"请输入账号密码:";cin>>wrd; cout<<"请输入取款金额:"; cin>>money; pos=searchAccount(accNum); if(pos==-1){ //卡号有误 cout<<"卡号不存在,请重新输入卡号"<<endl; drawmoney(); }else{if(strcmp(array[pos].accPwd,wrd)!=0){cout<<"您输入的密码有误!"<<endl;depositmoney();}else{//展示取款前卡的信息cout<<"取款前卡的信息:"<<endl;putout(array[pos]);//找到了该卡号所对应的卡array[pos].balance-=money;if(array[pos].balance<=0){cout<<"对不起,您的余额不足!"<<endl;work();}else{//展示取款后卡的信息cout<<"取款后卡的信息:"<<endl;putout(array[pos]);cout<<"取款成功,按任意键返回"<<endl;fflush(stdin);getchar();work();}}}}void showbalance(){ cout<<"+----------------------------------+"<<endl;cout<<" "<<endl;cout<<" 欢迎进入查询系统 "<<endl;cout<<" "<<endl;cout<<"+----------------------------------+"<<endl; int pos;long accNum;char wrd[20]={0}; cout<<"请输入查询的账号:"; cin>>accNum;cout<<"请输入账号密码:";cin>>wrd; pos=searchAccount(accNum);if(pos==-1){ //卡号有误 cout<<"卡号不存在,请重新输入卡号!"<<endl;showbalance(); }else{if(strcmp(array[pos].accPwd,wrd)!=0){cout<<"您输入的密码有误!"<<endl;showbalance();}else{//展示下卡的信息cout<<"您的银行卡的信息:"<<endl;putout(array[pos]);cout<<"按任意键返回"<<endl;fflush(stdin);getchar();work();}}}void openaccount(){cout<<"+----------------------------------+"<<endl;cout<<" "<<endl;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(); putout(array[size]);size++; cout<<"开户成功,按任意键返回"<<endl; fflush(stdin);//清除缓存区 getchar();//任意键返回 work();}void closeaccount(){ cout<<"+----------------------------------+"<<endl;cout<<" "<<endl;cout<<" 欢迎进入销户系统 "<<endl;cout<<" "<<endl;cout<<"+----------------------------------+"<<endl;long accNum; int pos;char wrd[20]={0};int userAnswer; cout<<"请输入您要销户的账号:"; cin>>accNum; cout<<"请输入账号密码:";cin>>wrd; pos=searchAccount(accNum); if(pos==-1){ //卡号有误 cout<<"卡号不存在,请重新输入卡号"<<endl;closeaccount(); }else{if(strcmp(array[pos].accPwd,wrd)!=0){cout<<"您输入的密码有误!"<<endl;closeaccount();}else{cout<<"确认注销此账户?"<<endl;cout<<"1.销户..其他.不销户";cin>>userAnswer;if(userAnswer==1){array[pos].balance=0;strcpy(array[pos].flag,"销户");cout<<"销户已成功,按任意键返回!"<<endl;putout(array[pos]);fflush(stdin);//清除缓存区getchar();//任意键返回work();}else{cout<<"您已取消销户,按任意键返回"<<endl;fflush(stdin);//清除缓存区getchar();//任意键返回work();}}}}long autoCreament(){if(size==0){return INITNUMBER;}else{return array[size-1].accNumber+1;}}void exit(){cout<<"欢迎您下次办理银行储蓄综合业务!"<<endl;}void putout(Account acc){ cout<<"+--------------------------------------------+"<<endl;cout<<"|"<<setiosflags(ios::left)<<setw(8)<<"账号"<<"|"<<setiosflags(ios::left)<<setw(8)<<"户名"<<"|"<<setiosflags(ios::left)<<setw(8)<<"密码"<<"|"<<setiosflags(ios::left)<<setw(8)<<"余额"<<"|"<<setiosflags(ios::left)<<setw(8)<<"状态"<<"|"<<endl;cout<<"+--------------------------------------------+"<<endl;cout<<"|"<<setiosflags(ios::left)<<setw(8)<<acc.accNumber<<"|"<<setiosflags(ios::left)<<setw(8)<<acc.accName<<"|"<<setiosflags(ios::left)<<setw(8)<<acc.accPwd<<"|"<<setiosflags(ios::left)<<setw(8)<<acc.balance<<"|"<<setiosflags(ios::left)<<setw(8)<<acc.flag<<"|"<<endl; cout<<"+--------------------------------------------+"<<endl;}int searchAccount(long accNumber){ int i,pos=-1; for(i=0;i<size;i++){ if(array[i].accNumber==accNumber){ //找到了这张卡 pos=i; break; } } return pos;//返回下标}