C++第13周项目5——银行系统多文件组织+包含文件(v0.32)
2012-11-23 21:48
387 查看
课程首页地址:/article/1353502.html
说明:此项目是为未学习数组的同学拟出的,目的是让他们对“工程”有所体验。一些实现并不是最佳的,请参考后续的题目
【项目5-银行系统】
(4)将程序用多文件组织
涉及密码、帐户的函数放在一个文件中,完成各项功能的函数放在另一个文件中,main函放也单独一个文件。这种结构就是实际项目要用的了。
下面的参考解答中使用了包含文件
说明:此项目是为未学习数组的同学拟出的,目的是让他们对“工程”有所体验。一些实现并不是最佳的,请参考后续的题目
【项目5-银行系统】
(4)将程序用多文件组织
涉及密码、帐户的函数放在一个文件中,完成各项功能的函数放在另一个文件中,main函放也单独一个文件。这种结构就是实际项目要用的了。
下面的参考解答中使用了包含文件
//bank1.h 用于mian函数中 #ifndef _MYHEADER #define _MYHEADER //全局变量 int account1=123; int pwd1=123456; double balance1=1000; //用全局变量保存当前登录的帐户 int currentAccount; //声明自定义函数 int checkStatus(); void work(); void showbalance(); void drawmoney(); void deposit(); void transferAccounts(); void updatePassword(); #endif /* _MYHEADER */
//bank2.h 用于其他函数中,全局变量均是extern型的 #ifndef _MYHEADER2 #define _MYHEADER2 //全局变量 extern int account1; extern int pwd1; extern double balance1; //用全局变量保存当前登录的帐户 extern int currentAccount; //声明自定义函数 int checkStatus(); void work(); void showbalance(); void drawmoney(); void deposit(); void transferAccounts(); void updatePassword(); #endif
//文件:bank.cpp #include<iostream> #include"bank1.h" using namespace std; int main() { int status; char ch; cout<<"贺家银行欢迎您光临……(本系统目前只有一个用户,帐号123,初始密码123456)"<<endl; while(1) //支持用户多次登录办理业务 { status=checkStatus(); if(1==status) work(); else if(2==status) cout<<"欢迎下次光临……"<<endl; else cout<<"吞卡,请联系就近网点解决……"<<endl; cout<<"=====要退出系统,请按键Q,其他键继续下一位用户登录======"<<endl; fflush( stdin ); //清空输入缓冲区,否则getchar()自动获得 ch=getchar(); if(ch=='q'||ch=='Q')break; } return 0; }
//文件 password.cpp,有关密码的功能 #include<iostream> #include"bank2.h" using namespace std; /*检验密码 *在很多的应用程序中,需要涉及到运行实体的“状态” *相比上一个版密码校验的函数pass(),其返回值:通过-true; 不通过-false *这个方案用checkStatus()可以返回更多的信息(状态) *返回值约定: 1 - 用户名、密码正确,可以进一步工作 2 - 用户名放弃登录正常退出 3 - 三次登录失败吞卡后退出 */ int checkStatus() { int iStatus=3; //默认吞卡的结局 int iPass; int num=1; char goOn; cout<<"请输入帐户"; cin>>currentAccount; //currentAccount是全局变量 do { if(num==1) cout<<"请输入密码"; else { cout<<"温情提示:这是您第"<<num<<"次输入密码,三次不对将吞卡。"<<endl; cout<<"还要继续尝试吗(继续输入Y,退出输入N,之后回车):"; cin>>goOn; if('Y'==goOn||'y'==goOn) cout<<"请再次输入密码"; else { iStatus=2; //用户放弃登录 break; } } cin>>iPass; num++; if(currentAccount==account1&&iPass==pwd1) //帐户 { iStatus=1; //密码对了 break; } }while(num<4); //密码不正确且次数在允许范围内循环 //如果在循环因为num==4为真而退出,iStatus的值还保持初始3,代表吞卡 return iStatus; //返回状态 } void updatePassword() { int p1,p2; if(currentAccount==account1) //确定帐户,目前只有一个帐户,真银行不这样,待改进 { cout << "请输入新密码:"; cin >> p1; cout << "请确认新密码:"; cin >> p2; if(p1==p2)//两次输入相符 { pwd1=p1; cout<<"密码修改成功!"<<endl; } else { cout<<"两次输入不一致,密码修改失败。"<<endl; } } }
//文件 money.cpp,有关存、取、转款的函数定义 #include<iostream> #include"bank2.h" using namespace std; //处理业务 void work() { char cChoice; bool bExit = false; do { cout<<endl<<"* 您可以办理下面的业务:"<<endl; cout<<"* 1.查询"<<endl; cout<<"* 2.取款"<<endl; cout<<"* 3.存款"<<endl; cout<<"* 4.转账"<<endl; cout<<"* 5.修改密码"<<endl; cout<<"* 0.退出"<<endl; cout<<"* 请输入(0-4):"; cin>>cChoice; switch(cChoice) { case '1': showbalance(); break; case '2': drawmoney(); break; case '3': deposit(); break; case '4': transferAccounts(); break; case '5': updatePassword(); break; case '0': cout<<"欢迎您下次来存款. "<<endl; bExit=true; } }while(!bExit); return; } //查询余额 void showbalance() { if(currentAccount==account1) //确定帐户,目前只有一个帐户,真银行不这样,待改进 cout<<"您的当前余额是:"<<balance1<<"元"<<endl; } //取款 void drawmoney() { double money; if(currentAccount==account1) //确定帐户,目前只有一个帐户,真银行不这样,待改进 { cout << "请输入取款金额:"; cin >> money; //下面不计利息了,从现在起,我们的银行只提供银行卡业务,是定期统一计息的 if(money<=balance1) { balance1-=money; //取款成功 cout<<"取款后,您的余额是:"<<balance1<<"元。"<<endl; } else { cout<<"您的余额不足,取款失败。"<<endl; } } } //存款 void deposit() { double money; if(currentAccount==account1) //确定帐户,目前只有一个帐户,真银行不这样,待改进 { cout << "请输入存款金额:"; cin >> money; //下面不计利息了,从现在起,我们的银行只提供银行卡业务,是定期统一计息的 balance1+=money; //取款成功 cout<<"存款后,您的余额是:"<<balance1<<"元。"<<endl; } } //转帐 void transferAccounts() { double money; int iAccount2; if(currentAccount==account1) //确定帐户,目前只有一个帐户,真银行不这样,待改进 { cout << "请输入转帐金额:"; cin >> money; cout << "请输入对方帐户:"; cin >> iAccount2; //应该判断对方帐户的有效性再转账,暂时不做,待以后改进 if(money<=balance1) { balance1-=money; //取款成功 //此处应该为对方帐户增加余额,暂时略 cout<<"转账后,您的余额是:"<<balance1<<"元。"<<endl; } else { cout<<"您的余额不足,转账失败。"<<endl; } } }
相关文章推荐
- C++第13周项目5——银行系统多文件组织(v0.31)
- C++第13周项目5——银行系统用函数组织(v0.2)
- 第十二周项目四银行系统任务三--将程序用多文件组织
- 第十二周 项目四:银行系统 任务三 将程序用多文件组织
- 第12周项目5:银行系统,任务三:将程序多文件组织
- 第十二周项目四——银行系统(任务3:将程序用多文件组织)
- C++第13周项目5——银行系统(v0.1)
- C++第13周项目5——银行系统支持多用户(v0.3)
- C++第14周项目6——银行系统,用文件永久存储
- C++第12周项目5.3——银行系统多文件版
- C++程序设计-第13周递归函数及银行系统程序设计上机实践项目
- ★C++课程实训:银行储蓄系统(多文件组织)
- C++第13周项目4——多文件组织回文、素数
- 第十二周实践——多文件组织(银行储蓄系统)
- C++第6周(春)项目3 用多文件组织多个类的程序
- 课程实训:银行储蓄系统(多文件组织)
- JAVA小项目-银行管理系统(图形界面&&文件读写+源文件)
- C++项目实训:银行储蓄系统
- C++第6周项目5 - 多文件组织三角形类
- C++第2周(春)项目3 文件+结构体实现实用系统