#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 GoCloseAnAccount(); //输出指定卡的信息 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: Deposit(); break; case 3: Withdraw(); break; case 4: Query(); break; case 5: CloseAnAccount(); 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();//返回主菜单 } //存款界面 void Deposit() { cout<<"*********************************************"<<endl; cout<<"** 欢迎进入存款系统 **"<<endl; cout<<"*********************************************"<<endl; GoDeposit(); } //取款界面 void Withdraw() { cout<<"*********************************************"<<endl; cout<<"** 欢迎进入取款系统 **"<<endl; cout<<"*********************************************"<<endl; GoWithdraw(); } //销户界面 void CloseAnAccount() { cout<<"*********************************************"<<endl; cout<<"** 欢迎进入销户系统 **"<<endl; cout<<"*********************************************"<<endl; GoCloseAnAccount(); } //查询界面 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<<"存款成功,按任意键返回..."; 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<<"取款成功,按任意键返回..."; fflush(stdin); getchar(); Mainmenu();//返回主菜单 } } else { cout<<"输入密码有误!"<<endl; GoWithdraw();//返回 } } } //进入销户 void GoCloseAnAccount() { int j; int pos; long CloseAccount;//销户的卡号 char accnum[10];//密码一定要定义成char数组,注意!!! cout<<"请输入您要销户的卡号:"; cin>>CloseAccount; pos=searchAccount(CloseAccount);//查找卡号 if(pos==-1) { //卡号有误 cout<<"该卡号不存在,请重新输入卡号!"<<endl; GoCloseAnAccount(); } else//卡号正确,进入 { cout<<"请输入密码:"; cin>>accnum;//输入密码 if(strcmp(array[pos].accPwd,accnum)==0) { cout<<"是否确认要进行销户?(确认请按1 返回主菜单请按2)"; cin>>j; if(j==1)//确认销户 { array[pos].balance=0;//余额为零 strcpy(array[pos].flag,"销户");//状态为销户 printAccount(array[pos]);//打印 cout<<"销户成功,按任意键返回..."; fflush(stdin); getchar(); Mainmenu();//返回主菜单 } else { Mainmenu();//返回主菜单 } } else { cout<<"密码输入错误!"; GoCloseAnAccount(); } } } //进入查询 void GoQuery() { long accNum;//查询的账号 char accnum[10];//密码一定要定义成char数组,注意!!! int pos; cout<<"请输入您要查询的账号:"; cin>>accNum; pos=searchAccount(accNum);