2012年末实训—银行项目(完)
来源:互联网 发布:淘宝购物最便宜的软件 编辑:程序博客网 时间:2024/05/16 06:48
#include <iostream>#include <string.h>#include <iomanip>#include <stdio.h>using namespace std;//银行中卡数#define MAXRECORDNUMBER 20000//银行卡的卡号初始值#define INITNUMBER 10001struct Account{ int accNumber;//账户 char accName[9];//户名 char accPWD[7];//密码 double balance;//余额 char flag[6];//销户标志};//银行中所有卡Account array[MAXRECORDNUMBER];//银行中银行卡的数量int size=0;//生成银行卡的卡号long autoCreament();//欢迎界面void welcome();//主界面void mainmenu();//取款void withdraw();//存款void deposit();//查询void query();//开户void openAnAccount();//销户void closeAnAcount();//输出指定卡的信息void printAccount(Account acc);//根据卡号查找卡在数组中的下标int searchAccount(long accNumber);int main(){ welcome(); char name0[]="admin"; char password0[]="admin"; int t=0; while (t<2) { cout<<"请输入用户名:"<<endl; char name[9]; cin>>name; cout<<"请输入密码:"<<endl; char password[6]; cin>>password; if(strcmp(name0,name)!=0||strcmp(password,password0)!=0) { t++; cout<<"用户名或密码输入错误,请重新输入!"<<endl; } else break; } if(t>=3) { cout<<"对不起,您已经连续输入错误3次,请您退出操作!"<<endl; } if(t<3) { mainmenu(); } return 0;}void welcome(){ cout<<"+--------------------------+"<<endl; cout<<"| |"<<endl; cout<<"| 欢迎使用储蓄综合业务平台 |"<<endl; cout<<"| |"<<endl; cout<<"+--------------------------+"<<endl;}void mainmenu(){ int c; c=-1; cout<<"+--------------------------+"<<endl; cout<<"| 0.退出 1.存款 |"<<endl; cout<<"| 2.取款 3.查询 |"<<endl; cout<<"| 4.开户 5.销户 |"<<endl; cout<<"+--------------------------+"<<endl; cout<<" 请输入选择业务的代号: "<<endl; cin>>c; switch (c) { case 0: cout<<"————————感谢使用储蓄平台系统,再见!————————"<<endl; break; case 1: cout<<"————————现在进入存款系统————————"<<endl; deposit(); break; case 2: cout<<"————————现在进入取款系统————————"<<endl; withdraw(); break; case 3: cout<<"————————现在进入查询系统————————"<<endl; query(); break; case 4: cout<<"————————现在进入开户系统————————"<<endl; openAnAccount(); break; case 5: cout<<"————————现在进入销户系统————————"<<endl; closeAnAcount(); break; case 6: break; default: cout<<"\n"<<"无效选项!"<<endl; break; }}void openAnAccount(){ cout<<"请输入户主:"<<endl; cin>>array[size].accName; cout<<"请输入密码:"<<endl; cin>>array[size].accPWD; cout<<"请输入金额:"<<endl; cin>>array[size].balance; strcpy(array[size].flag,"正常"); array[size].accNumber=autoCreament(); printAccount(array[size]); cout<<"-------------开户业务已成功!请继续其他交易---------------"<<endl; size++; cout<<"-------开户成功,按任意键返回-------"<<endl; fflush(stdin); getchar(); mainmenu();}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(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;}void deposit(){ long accNum;//存款的账号 double money;//存款的金额 int pos; cout<<"请输入存款的账号:"; cin>>accNum; pos=searchAccount(accNum); if(pos==-1) { //卡号有误 cout<<"卡号不存在,请重新输入卡号"<<endl; //... deposit(); } else { //展示下存款前卡的信息 cout<<"存款前卡的信息:"<<endl; printAccount(array[pos]); cout<<"请输入存款金额:"; cin>>money; //找到了该卡号所对应的卡 array[pos].balance+=money; //展示存款后卡的信息 cout<<"存款后卡的信息:"<<endl; printAccount(array[pos]); cout<<"存款成功,按任意键返回"<<endl; fflush(stdin); getchar(); mainmenu(); }}void withdraw(){ char pwd[10]; long accNum;//取款的账号 double money1; double money;//取款的金额 int pos; cout<<"请输入取款的账号:"<<endl; cin>>accNum; pos=searchAccount(accNum); if(pos==-1) { //卡号有误 cout<<"卡号不存在,请重新输入卡号"<<endl; //... withdraw(); } else { //展示下取款前卡的信息 cout<<"取款前卡的信息:"<<endl; printAccount(array[pos]); cout<<"请输入密码:"<<endl; cin>>pwd; if(strcmp(array[pos].accPWD,pwd)==0) { cout<<"密码正确!"<<endl; cout<<"请输入取款金额:"; cin>>money; //找到了该卡号所对应的卡 money1=array[pos].balance-money; if(money1<=0) { cout<<"您账户内的余额不足,请及时充值!"; cout<<endl; mainmenu(); } else { array[pos].balance-=money; //展示取款后卡的信息 cout<<"取款后卡的信息:"<<endl; printAccount(array[pos]); cout<<"取款成功,按任意键返回"<<endl; fflush(stdin); getchar(); mainmenu(); } } else { cout<<"对不起,密码错误!请重新输入!"<<endl; withdraw(); } }}void query(){ char pwd[10]; long accNum;//查询的账号 int pos; cout<<"请输入查询的账号:"<<endl; cin>>accNum; pos=searchAccount(accNum); if(pos==-1) { //卡号有误 cout<<"卡号不存在,请重新输入卡号"<<endl; //... query(); } else { cout<<"请输入密码:"<<endl; cin>>pwd; if(strcmp(array[pos].accPWD,pwd)==0) { cout<<"密码正确!"<<endl; cout<<"银行卡的信息:"<<endl; printAccount(array[pos]); cout<<"查询成功,按任意键返回"<<endl; fflush(stdin); getchar(); mainmenu(); } else { cout<<"对不起,密码错误!请重新输入!"<<endl; query(); } }}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(); } }}