有无奈有快乐的银行系统----My Love.
来源:互联网 发布:linux ssh修改文件内容 编辑:程序博客网 时间:2024/05/07 09:54
/*134--4班纪丽娜。银行系统。包括1.开户 2.存款3.取款 4.销户5.查询 6.改密7.转账 8.退出9.挂失 0.解挂功能!用户名jilina密码 123456!*/#include <iostream>#include <fstream>#include <string.h>#include <stdio.h>#include <stdlib.h>#include <iomanip>using namespace std;//银行中最大的账户数量#define MAXACCOUNTNUMBER 20000//银行卡的开号初始值#define INITNUMBER 10001struct Account{ long accNumber; //卡号 char accName[20]; //户主 char accPwd[10]; //密码 double balance; //余额 char flag[6]; //卡的状态};//银行中所有卡Account array[MAXACCOUNTNUMBER];int size=0;void welcome();//主界面void mainFrame();//生成银行中自增卡号long autoCreament();//开户void openAccount();//存款void deposit();//鉴定密码void chaxunmima(char Pwd[]);//输出指定卡的信息void printAccount(Account acc);//查询当前的余额void bid();//相应的取款void withdrawal();//改密void gai();//销户void closed();//根据卡号查找卡在数组中的下标int searchAccount(long accNumber);//转账void move();//保存数据:void Save();//登入文件void login();void read(); //读文件void missing(); //挂失void finding(); //解挂int panjine(double money);//不能存负的或取负的int main(){ //欢迎界面welcome();login(); return 0;}//欢迎界面void welcome(){ read();//读入文件!! //移动到屏幕中间 cout<<'\t'<<'\t'<<'\t'<<"+----------------------------------+"<<endl; cout<<'\t'<<'\t'<<'\t'<<"| |"<<endl; cout<<'\t'<<'\t'<<'\t'<<"| 欢迎登陆银行系统 |"<<endl; cout<<'\t'<<'\t'<<'\t'<<"| |"<<endl; cout<<'\t'<<'\t'<<'\t'<<"+----------------------------------+"<<endl;}//主菜单void mainFrame(){ int order;cout<<endl; cout<<'\t'<<"*-----------------------------*"<<endl; cout<<'\t'<<"* 1.开户 2.存款 *"<<endl; cout<<'\t'<<"* 3.取款 4.销户 *"<<endl; cout<<'\t'<<"* 5.查询 6.改密 *"<<endl; cout<<'\t'<<"* 7.转账 8.退出 *"<<endl; cout<<'\t'<<"* 9.挂失 0.解挂 *"<<endl; cout<<'\t'<<"*-----------------------------*"<<endl;cout<<endl<<"请输入操作指令: ";cin>>order;switch(order){case 1:openAccount();break;case 2:deposit();break;case 3:withdrawal();break;case 4:closed();break;case 5:bid();break;case 6:gai(); break;case 7:move(); break;case 8:cout<<endl<<"祝您心情愉快!"<<endl;cout<<endl<<"欢迎您下次使用!"<<endl;cout<<endl;exit(1);break; case 9: missing();break; case 0: finding(); //解挂();break;default:cout<<endl;cout<<"您输入的指令有误! 系统退出!"<<endl;cout<<endl;exit(1);break;}}//创建账户void openAccount(){ int pan; cout<<endl<<"请输入户主:"; cin>>array[size].accName;fflush(stdin); cout<<endl<<"请输入六位数字密码:"; cin>>array[size].accPwd; fflush(stdin); chaxunmima(array[size].accPwd); cout<<endl<<"请输入开户金额:"; cin>>array[size].balance; pan=panjine(array[size].balance); if(pan==0) { cout<<"金额错误!"; mainFrame(); } else { fflush(stdin); // strcpy(array[size].flag,"正常"); //写卡号 array[size].accNumber=autoCreament(); printAccount(array[size]); Save(); size++; cout<<endl<<"开户成功,按任意键返回"<<endl; fflush(stdin); getchar(); mainFrame(); }}//密码的鉴定void chaxunmima(char Pwd[]){ int i; char a[7];if(strlen(Pwd)!=6){cout<<endl<<"不是六位数字密码!请重新输入!"<<endl;cout<<endl<<"密码错误,按任意键返回"<<endl;fflush(stdin);getchar();mainFrame();}else{cout<<endl<<"请您再次输入:";for(i=0;i<6;i++){cin>>a[i];}a[6]='\0';for(i=0;i<6;i++){if(a[i]<48||a[i]>57){cout<<endl<<"不是六位数字密码!请重新输入!"<<endl;cout<<endl<<"密码错误,按任意键返回"<<endl;fflush(stdin);getchar();mainFrame();}}if(strcmp(a,Pwd)==0){cout<<endl<<"创建密码完成!"<<endl;}else{cout<<endl<<"前后密码输入不一致,请重新操作!"<<endl;cout<<endl<<"密码错误,按任意键返回"<<endl;fflush(stdin);getchar();mainFrame();}}}//实现卡号的涨long autoCreament(){ if(size==0) { return INITNUMBER; } else { return array[size-1].accNumber+1; }}//输出指定卡的信息void printAccount(Account acc){ cout<<endl; 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)<<"正常"<<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&&strcmp(array[i].flag,"销户")!=0){ //找到了这张卡 pos=i; break; } } return pos;}//存款void deposit(){ long accNum;//存款的账号 double money;//存款的金额 int pos,pan; cin.sync(); cout<<endl<<"请输入存款的账号:"; cin>>accNum; pos=searchAccount(accNum); if(pos==-1) { //卡号有误 cout<<"卡号不存在,请重新操作"<<endl; //... deposit(); }else{ cout<<endl<<"请输入存款金额:"; cin>>money; pan=panjine(money); if(pan==0) { cout<<"存款金额错误!"; mainFrame(); } else { //展示下存款前卡的信息 cout<<endl<<"存款前卡的信息:"<<endl; printAccount(array[pos]); //找到了该卡号所对应的卡 array[pos].balance+=money;//展示存款后卡的信息Save(); cout<<endl<<"存款后卡的信息:"<<endl; printAccount(array[pos]); cout<<endl<<"存款成功,按任意键返回"<<endl; fflush(stdin); getchar(); mainFrame(); } }}//查询余额void bid(){int i; char a[7]; int size,accNumber; cout<<endl<<"请输入您要查询的卡号:"; cin>>accNumber;size=searchAccount(accNumber);if(size==-1){ cout<<"查无此卡!"; mainFrame(); }else{ cout<<endl<<"请输入您的密码:";for(i=0;i<6;i++){cin>>a[i];}a[6]='\0';if(strcmp(a,array[size].accPwd)==0){printAccount(array[size]);cout<<endl<<"查询成功,按任意键返回"<<endl;fflush(stdin);getchar();mainFrame();}}}//取款void withdrawal(){char key[7];int money,size,accNumber,pan1,i;cout<<endl<<"请输入您的卡号:";cin>>accNumber; //寻找该卡号size=searchAccount(accNumber);if(size==-1){ cout<<"查无此卡!"; mainFrame(); }else{ if(strcmp(array[size].flag,"挂失")==0){ cout<<"此卡已挂失,不允许取款!"; mainFrame();}else{ cout<<endl<<"请输入您的密码:"; fflush(stdin);for(i=0;i<6;i++){cin>>key[i];}key[6]='\0'; if(strcmp(key,array[size].accPwd)==0){ cout<<endl<<"请输入您要取款的金额:";cin>>money;pan1=panjine(money);if(pan1==0){ cout<<"取款金额错误!";mainFrame();}else{ //展示下存款前卡的信息cout<<endl<<"取款前卡的信息:"<<endl;printAccount(array[size]);//找到了该卡号所对应的卡if(array[size].balance<money){cout<<endl<<"您的账户余额不足,无法取款!"<<endl;cout<<endl<<"取款失败,按任意键返回!"<<endl;fflush(stdin);getchar();mainFrame();}else{array[size].balance-=money;Save();//展示存款后卡的信息cout<<endl<<"取款后卡的信息:"<<endl;printAccount(array[size]);cout<<endl<<"取款成功,按任意键返回"<<endl;fflush(stdin);getchar();mainFrame();} }}else{cout<<endl<<"密码有误,请重新操作!"<<endl;withdrawal(); } } }}//销户void closed(){char key[7];int i,size,accNumber;cout<<endl<<"请输入您要销户的卡号:";cin>>accNumber; //寻找该卡号size=searchAccount(accNumber);if(size==-1){ cout<<"查无此卡!"; mainFrame(); }else{if(strcmp(array[size].flag,"挂失")==0){ cout<<"此卡已挂失不允许销户!"; mainFrame(); }else{ cout<<endl<<"请输入您的密码:"; fflush(stdin);for(i=0;i<6;i++){cin>>key[i];}key[6]='\0';if(strcmp(key,array[size].accPwd)==0){cout<<endl<<"销户前卡的信息:"<<endl;printAccount(array[size]);strcpy(array[size].flag,"销户");Save();cout<<endl<<"销户成功!"<<endl;printAccount(array[size]);cout<<"按任意键返回";fflush(stdin);getchar();mainFrame(); }else{cout<<endl<<"密码错误,请您慎重销户!"<<endl;cout<<endl<<"按任意键返回"<<endl;fflush(stdin);getchar();mainFrame(); }}}}void gai(){char key[7],pass[7];int i,shu,accNumber;cout<<endl<<"请输入您要改密的卡号:";cin>>accNumber;//寻找该卡号shu=searchAccount(accNumber);if(shu==-1){ cout<<"查无此卡!"; mainFrame(); }else{if(strcmp(array[shu].flag,"挂失")==0){cout<<"此卡已挂失不允许改密!";}else{ cout<<endl<<"请输入您的密码:";for(i=0;i<6;i++){cin>>key[i];}key[6]='\0';if(strcmp(key,array[shu].accPwd)==0){cout<<endl<<"请输入六位新密码:";for(i=0;i<6;i++){cin>>pass[i];}pass[6]='\0';cout<<endl<<"请再次输入六位新密码:";cin>>array[shu].accPwd;if(strcmp(pass,array[shu].accPwd)==0){ cout<<endl<<"修改密码成功!"<<endl; Save();cout<<endl<<"按任意键返回"<<endl;fflush(stdin);getchar();mainFrame();}else{cout<<endl<<"前后密码不一致!请重新操作!"<<endl; cout<<endl<<"按任意键返回"<<endl;fflush(stdin);getchar();mainFrame();}}else{cout<<endl<<"密码错误!请重新操作!"<<endl;cout<<endl<<"按任意键返回"<<endl;fflush(stdin);getchar();mainFrame();}}}}void move(){double money;char a, key[7];int i,shu1,shu2,ren,accNumber,pan;cout<<endl<<"本银行不支持跨行转账!"<<endl;cout<<endl<<"确认要转账吗?Y or N ?"<<endl;fflush(stdin);a=getchar();if(a=='y'||a=='Y'){cout<<endl<<"请输入您的卡号:";cin>>accNumber;//寻找该卡号shu1=searchAccount(accNumber);if(shu1==-1){ cout<<"查无此卡!"; mainFrame(); }else{if(strcmp(array[shu1].flag,"挂失")==0){cout<<"此卡已挂失,不允许转账!!!";}else {cout<<endl<<"请输入您的密码:";for(i=0;i<6;i++){cin>>key[i];}key[6]='\0';if(strcmp(key,array[shu1].accPwd)==0){cout<<endl<<"请输入您要转账的卡号:";cin>>ren;shu2=searchAccount(ren);if(shu2==-1){//卡号有误cout<<endl<<"卡号不存在,请重新操作"<<endl;//...cout<<endl<<"转账失败,按任意键返回!"<<endl;fflush(stdin);getchar();mainFrame();}else{cout<<endl<<"请输入转账的金额:";cin>>money;if(array[shu1].balance<money){cout<<endl<<"您的账户余额不足!无法转账!"<<endl;cout<<endl<<"转账失败,按任意键返回!"<<endl;fflush(stdin);getchar();mainFrame();}else{ pan=panjine(money); if(pan==0) { cout<<"金额输入错误"; mainFrame(); } else { array[shu1].balance-=money;array[shu2].balance+=money;Save();cout<<endl<<"转账完成!谢谢使用!"<<endl;cout<<endl<<"您当前的账户为:"<<endl;printAccount(array[shu1]);cout<<endl<<"按任意键返回"<<endl;fflush(stdin);getchar();mainFrame(); }} }}else{cout<<endl<<"密码不正确!请重新操作!"<<endl;cout<<endl<<"按任意键返回"<<endl;fflush(stdin);getchar();mainFrame();} }}}else{cout<<endl<<"谢谢!请按任意键返回!"<<endl;fflush(stdin);getchar();mainFrame(); }}//保存文件void Save(){ofstream outfile("银行数据.txt",ios::out);if(!outfile){cout<<endl<<"open error!"<<endl;exit(1);}else{for(int i=0;i<=size;i++) //依次写入文件{ outfile<<array[i].accNumber<<" "<<array[i].accName<<" "<<array[i].accPwd<<" "<<array[i].balance<<" "<<array[i].flag<<endl;}}outfile.close();}void login(){ char bankname[10]="jilina";char bankpassword[10]="123456"; int i;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{mainFrame();break;}}}void read(){ //读文件ifstream infile("银行数据.txt",ios::in); //文件目标if(!infile){cerr<<endl<<"open error!"<<endl<<endl;exit(1);} while(infile>>array[size].accNumber>>array[size].accName>>array[size].accPwd>>array[size].balance>>array[size].flag) //依次检索文件{size++;}infile.close();}void missing(){char key[7];int i,size,accNumber;cout<<endl<<"请输入您要挂失的卡号:";cin>>accNumber; //寻找该卡号size=searchAccount(accNumber);if(strcmp(array[size].flag,"挂失")==0){ cout<<"您已经挂失,不能再执行此操作!"<<endl; mainFrame();}else{ cout<<endl<<"请输入您的密码:"; fflush(stdin);for(i=0;i<6;i++){cin>>key[i];}key[6]='\0';if(strcmp(key,array[size].accPwd)==0){cout<<endl<<"挂失前卡的信息:"<<endl;printAccount(array[size]);strcpy(array[size].flag,"挂失");Save();cout<<"挂失成功!"<<endl;//Save();cout<<endl<<"挂失后卡的信息:"<<endl;printAccount(array[size]);cout<<"按任意键返回";fflush(stdin);getchar();mainFrame(); }else{cout<<endl<<"密码错误!"<<endl;cout<<endl<<"按任意键返回"<<endl;fflush(stdin);getchar();mainFrame(); }}}void finding(){char key[7];int i,size,accNumber;cout<<endl<<"请输入您要解挂的卡号:";cin>>accNumber; //寻找该卡号size=searchAccount(accNumber);if(size==-1){ cout<<"查无此卡!"; mainFrame(); }else{if(strcmp(array[size].flag,"挂失")==0){ cout<<endl<<"请输入您的密码:"; fflush(stdin);for(i=0;i<6;i++){cin>>key[i];}key[6]='\0';if(strcmp(key,array[size].accPwd)==0){cout<<endl<<"解挂前卡的信息:"<<endl;printAccount(array[size]);strcpy(array[size].flag,"正常");Save();cout<<"解挂成功!"<<endl;printAccount(array[size]);cout<<"按任意键返回";fflush(stdin);getchar();mainFrame(); }else{cout<<endl<<"密码错误!"<<endl;cout<<endl<<"按任意键返回"<<endl;fflush(stdin);getchar();mainFrame(); } }else { cout<<"您的卡未挂失!"; cout<<"按任意键返回"; fflush(stdin); getchar(); mainFrame(); } }}int panjine(double money)//不能存负的或取负的{ int pan; if(money<0) {pan=0;} else {pan=1;} return pan;}
0 0
- 有无奈有快乐的银行系统----My Love.
- 有无奈有快乐的银行系统----My Love.————娜猫
- 家乡的快乐声音是有味道有感觉的
- 快乐有许多敌人——快乐是自找的
- 人生有太的无奈,才会充满期待
- 人生总有太多的无奈和遗憾,
- 因为有太多的无奈,我选择了逞强
- 坚持就有快乐
- 各有,新年快乐、
- 统计调查:目前国内银行有哪些;哪些银行开设网络银行服务。目前进驻中国的国外银行有哪些,哪些银行开设网络银行服务
- My Emacs 的配置文件--有待续写
- 小项目:银行系统1(有瑕疵)
- 银行市场风险管理系统实施中,几个知名的厂商的系统各有什么特色?
- HDU - 3033 I love sneakers!(有限制的背包)
- 无奈,空虚,但我有目标!
- my love
- My Love
- my love
- 【C#】AviFile使用
- JPQL语法总结
- Network Component Analysis(NCA)
- OCP-1Z0-新051-61题版本-55
- OCP-1Z0-新051-61题版本-56
- 有无奈有快乐的银行系统----My Love.
- JDK 压力测试工具——jps、jinfo、jstat、jmap、jconsole
- Sql Server 获取、增加、修改、删除 字段描述
- SQL 中exists的用法
- OCP-1Z0-新051-61题版本-57
- 用QTP调用VB6生成的DLL实例
- OCP-1Z0-新051-61题版本-58
- 图像处理-线性滤波-1 基础(相关算子、卷积算子、边缘效应)
- 解决Android中Can't create handle inside thread问题 时间:2012-03-13 12:09 来源:未知 收藏 复制分享