1、C+银行系统电子报告计算机与信息工程学院实验报告课程名称:高级语言课程设计实验项目:银行活期储蓄学生姓名:班级): 学生学号: _ 联系电话 所学专业: 教师姓名: 报告完成时间: 2010 年 月 日 实验报告成绩 实验项目一、银行活期储蓄系统主菜单模块设计与实现11库函数描述(原型、功能、头部文件) 功能:显示菜单选择提示并接收用户输入使用多路选择语句处理用户选择main.cpp 头文件:iostream stdlib.h vector menu.h kh.h init.h Person.h save.h px.h qk.hmenu.cpp 头文件: iostream stdlib.h12
2、编码(必须附加注释)main.cpp#include #include #include #include menu.h#include kh.h#include init.h#include Person.h#include save.h#include px.h#include qk.h#include jx.husing namespace std;vector V;int main() char n; system(color 3f);/背景颜色 init();/添加储存文件信息 while(true) menu();/输出菜单 cinn; switch(n)/选择功能 case 1:
3、kh();break;/开户 case 2:ck();break;/存款 case 3:qk();break;/取款 case 4:cx();break;/查询 case 5:jx();break;/计息 case 6:px();break;/排序 case 7:save();return 0;/退出时保存用户信息 default:cout输入错误,请重新输入n;getchar(),getchar(); menu.cpp#include #include using namespace std;void menu() system(cls); cout*银行系统主菜单*n 1:开户n 2:存款
4、n 3:取款n 4:查询n 5:计息n 6:财富排行榜n 7:退出n;13实验小结(实验遇到的问题,解决方法)如果将用于接受用户输入选择的变量定义为整型,则当输入非数字字符时候,程序将进入死循环。办法:通过switch语句当输入1-7字符以外字符时,输出“输入错误,请重新输入”实验项目二、银行活期储蓄系统开户模块设计与实现21库函数描述(原型、功能、头部文件) kh.cpp输入身份证并验证是否合法(身份证号长度、组成),合法返回假否则返回真输入和确认密码,并验证密码是否合法, 如果合法则返回假,否则返回真输入开户金额并验证金额是否合法,合法返回假,否则返回真头文件:iostream stdli
5、b.h vector Person.h conio.h time.h22帐户类定义 Person23编码(必须附加注释) #include #include #include #include Person.h#include #include using namespace std;extern vector V;bool id_ok(string& a);bool mima(char);void kh() int m,k; string t,p,q; while(true) system(cls); cout*开户菜单*n 1:开户n k; switch(k) case 1: coutt;
6、 if(id_ok(t)/验证身份证号是否合法 do system(cls); char s20; cout请输入您的密码(6-16位字母,数字):n; if(mima(s) /验证密码是否合法 p=s; system(cls); cout请再次输入您的密码:n; if(mima(s) q=s; system(cls); if(q!=p) cout您输入的密码有误,请重新输入!n; while(q!=p); while(true) system(cls); coutm; system(cls); if(m0&m100000000) Person p(t,q,m); V.push_back(p)
7、; p.print(); system(pause); break; else cout您输入的金额有误n; system(pause); else system(cls); cout你输入的身份证号码有误n; system(pause); continue; case 2:return ; default:cout您的输入有误n;system(pause);continue; bool id_ok(string& a)/验证身份证号是否合法 if(int)a.length()!=18) return false; bool k=true; for(int i=0;i9|ai0) k=fals
8、e; break; for(int j=0;j(int)V.size();+j) if(Vj.get_id()=a) k=false; cout该用户已存在endl; break; return k;bool mima(char s) /验证密码是否合法 char ch; int p=0; while(ch=getch()!=r) sp+=ch; putch(*); sp=0; if(p16) cout您输入的密码不符合要求!n; return false; return true; 24实验小结(实验遇到的问题,解决方法)在判断当前用户是否开过户时,未遍历所有记录而做出结论方法:通过两个fo
9、r循环分别比较参数a与数组V中的每个id ,若完全相等,则输出该用户已存在。实验项目三银行活期储蓄系统存款模块设计与实现31库函数描述(原型、功能、头部文件) ck.cpp功能:验证身份证是否存在验证输入存款金额是否合法头文件: iostream vector string stdlib.h Person.h32编码(必须附加注释)#include #include #include #include #include Person.husing namespace std;extern vector V;void ck() char n; while(true) system(cls); c
10、out*存款主菜单*n 1:存款n n; system(cls); switch(n) case 1: coutt; int j; for(int i=0;i(int)V.size();+i) if(Vi.get_id()=t)/验证身份证号是否一致 j=i; key=true; break; if(key) while(true) system(cls); coutn; system(cls); if(n0) Vj.in_money(n); cout操作成功n; system(pause); break; else cout您输入的金额有误n; system(pause); else sys
11、tem(cls); cout该用户不存在n; system(pause); break; case 2:return ; default:cout您的输入有误n;system(pause); 33实验小结(实验遇到的问题,解决方法)实验项目四银行活期储蓄系统取款模块设计与实现41库函数描述(原型、功能、头部文件) qk.cpp功能:同时验证身份证和密码是否完全一致验证取款金额是否合法且小于存款数头文件:iostream vector Person.h string conio.hstdlib.h42编码(必须附加注释)#include #include #include Person.h#in
12、clude #include #include using namespace std;extern vector V;inline void mima(char s)/内联函数 char ch; int p=0; while(ch=getch()!=r) sp+=ch; putch(*); sp=0;void qk() char n; int tmp,money; string t,p; while(true) system(cls); cout*取款主菜单*n 1:取款n n; system(cls);/清屏 switch(n) case 1: coutt; char s20; mima(
13、s); p=s; bool key=false; for(int i=0;i(int)V.size();+i) if(Vi.get_id()=t&Vi.get_key()=p)/验证身份证号和密码是否一致 key=true; tmp=i; break; if(key) while(true) system(cls); coutmoney; system(cls); if(money0&Vtmp.get_money()=money)/取款数小于等于存款数 Vtmp.out_money(money); cout操作成功!n; system(pause); break; else cout您输入的金
14、额有误!n; system(pause); else cout您输入的身份证号码或密码错误!n; system(pause); break; case 2:return; default:cout您输入的信息错误n;system(pause); 43实验小结(实验遇到的问题,解决方法)在查询用户时未将身份证号码和密码同时验证。方法:通过“Vi.get_id()=t&Vi.get_key()=p”语句同时验证身份证号和密码实验项目五银行活期储蓄系统计息模块设计与实现51库函数描述(原型、功能、头部文件) jx.cpp功能:获取系统时间,计算利息头文件:iostream Person.h vect
15、or time.h stdlib.h get_days.h52编码(必须附加注释) #include #include Person.h#include #include #include #include get_days.husing namespace std;extern vector V;const double Ylilv=0.01;/年利率void jx() system(cls); if(V.size() time_t t=time(NULL);/得到当前系统时间 tm* T=gmtime(&t); int tmp; for(int i=0;itm_year+1900,T-tm
16、_yday+1);/当前时间-开户时间,得到储蓄时间 Vi.myset(tmp,Ylilv);/调用类的成员函数,计算利息,修改总金 cout计息操作成功!n; system(pause);53实验小结(实验遇到的问题,解决方法)实验项目六银行活期储蓄系统查询模块设计与实现61库函数描述(原型、功能、头部文件) cx.cpp功能:实现查询用户的当前存款余额并以人民币大写的形式输出头文件:iostream string vector Person.h62编码(必须附加注释) #include #include #include #include Person.husing namespace s
17、td;extern vector V;char dx103=零,壹,贰,叁,肆,伍,陆,柒,捌,玖;char dw85=元,十,百,千,万,十万,百万,千万;char tail5=元整;int a4;void myprint(int n);void cx() char n; string t,p; while(true) system(cls); cout*查询主菜单*n 1:查询n n; system(cls); switch(n) case 1: couttp; bool key=false; system(cls); for(int i=0;i(int)V.size();+i) if(V
18、i.get_id()=t&Vi.get_key()=p) key=true; myprint(Vi.get_money();/打印存款数 system(pause); break; if(!key) cout您输入的身份证号或密码错误!n; system(pause); break; case 2:return ; default:cout0;-j) t%=ten; if(aj=0&key&t) coutdx0; key=false; else if(aj) key=true; coutdxajdwj; if(t=0) break; ten/=10; if(a0) coutdxa0;void
19、myprint(int n)/打印存款数 if(n=0) cout=100000000) cout金额过大n; return; cout=10000) t=n/10000,i=0,ten=1; set(t,i,ten); ten/=10; /ten=ten/10 print4bit(t,i,ten); coutdw4; if(n%10000=0) couttailendl; return ; t=n%10000,i=0,ten=1; set(t,i,ten); ten/=10; if(i=10000) coutdx0; print4bit(t,i,ten); couttailendl; 63实
20、验小结(实验遇到的问题,解决方法)实验项目七银行活期储蓄系统富豪排行榜模块设计与实现71库函数描述(原型、功能、头部文件) px.cpp功能: 将现有储户按照余额以为降序排序。头文件:iostream string Person.h vector algorithm72编码(必须附加注释) #include #include #include Person.h#include #include using namespace std;extern vector V;inline bool cmp(Person a,Person b) return a.get_total()b.get_total();/约定按照用户的总金额排序void px() char n; while(true) system(cls);/清屏 cout*财富排行榜*n
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1