1、int main() char n; system(color 3f);/背景颜色 init();/添加储存文件信息 while(true) menu();/输出菜单 cinn; switch(n)/选择功能 case 1:kh();break;/开户2ck();/存款3qk();/取款4cx();/查询5jx();/计息6px();/排序7save();return 0;/退出时保存用户信息 default:cout输入错误,请重新输入n;getchar(),getchar(); menu.cppvoid menu()cls cout*银行系统主菜单*n 1:开户n2:存款n3:取款n4:查
2、询n5:计息n6:财富排行榜n7:退出n13实验小结(实验遇到的问题,解决方法)如果将用于接受用户输入选择的变量定义为整型,则当输入非数字字符时候,程序将进入死循环。办法:通过switch语句当输入1-7字符以外字符时,输出“输入错误,请重新输入”实验项目二、银行活期储蓄系统开户模块设计与实现21库函数描述(原型、功能、头部文件) kh.cpp输入身份证并验证是否合法(身份证号长度、组成),合法返回假否则返回真输入和确认密码,并验证密码是否合法, 如果合法则返回假,否则返回真输入开户金额并验证金额是否合法,合法返回假,否则返回真头文件:iostream stdlib.h vector Pers
3、on.h conio.h time.h22帐户类定义 Person23编码(必须附加注释) #include time.hextern vectorbool id_ok(string& a);bool mima(char);void kh() int m,k; string t,p,q; system( cout*开户菜单*n k; switch(k) case 1: coutt; if(id_ok(t)/验证身份证号是否合法 do system( char s20; cout请输入您的密码(6-16位字母,数字): if(mima(s) /验证密码是否合法 p=s;请再次输入您的密码: if
4、(mima(s) q=s; if(q!=p) coutm; if(m0&m100000000) Person p(t,q,m); V.push_back(p); p.print(); system(pause break; else 您输入的金额有误n else system( cout你输入的身份证号码有误n continue; case 2:return ;您的输入有误nsystem(continue; a)/验证身份证号是否合法 if(int)a.length()!=18) return false; bool k=true; for(int i=0;i9|ai0) k=false; b
5、reak; for(int j=0;j(int)V.size();+j) if(Vj.get_id()=a) k=false;该用户已存在endl; break; return k;bool mima(char s) /验证密码是否合法 char ch; int p=0; while(ch=getch()!=r sp+=ch; putch(* sp=0 if(p16)您输入的密码不符合要求! return true; 24实验小结(实验遇到的问题,解决方法)在判断当前用户是否开过户时,未遍历所有记录而做出结论方法:通过两个for循环分别比较参数a与数组V中的每个id ,若完全相等,则输出。实验
6、项目三银行活期储蓄系统存款模块设计与实现31库函数描述(原型、功能、头部文件) ck.cpp功能:验证身份证是否存在验证输入存款金额是否合法 iostream vector string stdlib.h Person.h32编码(必须附加注释)stringvoid ck()*存款主菜单*n switch(n)请输入您的身份证号n string t; bool key=false; int j; for(int i=0; if(Vi.get_id()=t)/验证身份证号是否一致 j=i; key=true; break; if(key)请输入您的存款金额(1-10000000元): int n
7、; if(n0) Vj.in_money(n);操作成功n该用户不存在n break;33实验小结(实验遇到的问题,解决方法)实验项目四银行活期储蓄系统取款模块设计与实现41库函数描述(原型、功能、头部文件) qk.cpp功能:同时验证身份证和密码是否完全一致验证取款金额是否合法且小于存款数iostream vector Person.h string conio.hstdlib.h42编码(必须附加注释)inline void mima(char s)/内联函数void qk() int tmp,money; string t,p;*取款主菜单*n/清屏请输入您的身份证号码及密码: cin
8、char s20; mima(s); p=s; bool key=false; for(int i=0; if(Vi.get_id()=t&Vi.get_key()=p)/验证身份证号和密码是否一致 key=true; tmp=i; if(key) while(true)请输入您的取款金额: cinmoney; if(moneyVtmp.get_money()=money)/取款数小于等于存款数 Vtmp.out_money(money); cout操作成功! system( break; else您输入的金额有误! else您输入的身份证号码或密码错误!return;您输入的信息错误n43实
9、验小结(实验遇到的问题,解决方法)在查询用户时未将身份证号码和密码同时验证。通过“Vi.get_id()=t&Vi.get_key()=p”语句同时验证身份证号和密码实验项目五银行活期储蓄系统计息模块设计与实现51库函数描述(原型、功能、头部文件) jx.cpp获取系统时间,计算利息iostream Person.h vector time.h stdlib.h get_days.h52编码(必须附加注释) #include tm_year+1900,T-tm_yday+1);/当前时间-开户时间,得到储蓄时间 Vi.myset(tmp,Ylilv);/调用类的成员函数,计算利息,修改总金计息
10、操作成功!53实验小结(实验遇到的问题,解决方法)实验项目六银行活期储蓄系统查询模块设计与实现61库函数描述(原型、功能、头部文件) cx.cpp实现查询用户的当前存款余额并以人民币大写的形式输出iostream string vector Person.h62编码(必须附加注释)char dx103=零,壹贰叁肆伍陆柒捌玖;char dw85=元十百千万十万百万千万char tail5=元整int a4;void myprint(int n);void cx()*查询主菜单*n请输入您的身份证号及密码:tp;Vi.get_key()=p) myprint(Vi.get_money();/打印
11、存款数 if(!key)您输入的身份证号或密码错误!您输入的信息有误!void set(int t,int& i,int& ten) memset(a,0,sizeof(a); while(t) /将组成金额的数值分离出来 ai+=t%10; t/=10; ten*=10;void print4bit(int& t,int& bool key=true; for(int j=i-1;j0;-j) t%=ten; if(aj=0&key&t)dx0; key=false; else if(aj) key=true;dxaj=100000000)金额过大n您账户上的金额为: int t,i,ten;=10000) t=n/10000,i=0,ten=1; set(t,i,ten); /ten=ten/10 print4bit(t,i,ten);dw4; if(n%10000=0)tail return ; t=n%10000,i=0,ten=1; set(t,i,ten); ten/=10; if(iinline bool cmp(Person a,Person b) return a.get_total()b.get_total();/约定按照用户的总金额排序void px()*财富排行榜*n
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1