1、C+银行储蓄开发全部程序计算机与信息工程学院实验报告课程名称:高级语言课程设计实验项目:银行储蓄实验项目一、银行储蓄系统主菜单模块设计与实现11库函数描述(原型、功能、头部文件)及其作用Time显示当前时间类 #includeSystem()调用dos命令 _sleep()停息#includeString 字符串流#include#includemyheader.h中有调用的全部函数声明12编码(必须附加注释)#includemyheader.hvoid main() /背景颜色设置 system(COLOR 16);/*颜色属性由两个十六进制数字指定 - 第一个为背景,第二个则为前景。每个数
2、字可以为以下任何值之一: 0 = 黑色 8 = 灰色 1 = 蓝色 9 = 淡蓝色 2 = 绿色 A = 淡绿色 3 = 湖蓝色 B = 淡浅绿色 4 = 红色 C = 淡红色 5 = 紫色 D = 淡紫色 6 = 黄色 E = 淡黄色 7 = 白色 F = 亮白色*/ /输出=欢迎进入银行活期存款系统= int i; for(i=0;i13;i+) cout=; cout欢迎进入银行活期存款系统; for(i=0;i13;i+) cout=; coutendl; /列示当前时间 cout当前时间:; for(i=0;i6;i+) cout ; Time t=latesttime(); t.p
3、rint(); /列示菜单 mylist(); coutcheck; if(check.length()1) cout您的输入有误请重新输入:; continue; if(check0!=Y&check0!=N) cout您的输入有误请重新输入:; else break; int mark=1; if(check0=N) mark=0; cout友情提示:按对应业务的编号即可进行该业务!endl请继续:2) system(cls); mylist(); if(mark) coutservicenum; if(servicenum.length()1) cout您的输入有误请重新输入:; con
4、tinue; else break; coutmark; if(mark.length()1) cout您的输入有误请重新输入:; continue; if(mark0!=Y&mark0!=N) cout您的输入有误请重新输入:; else break; if(mark0=N) continue; if(servicenum0=0) break; cout 正在处理请稍等.; _sleep(1000); cout.; _sleep(1000); cout.n; _sleep(1000); switch(servicenum0) /开户 case 1: creaccount();break; /
5、存款 case 2: deposit();break; /取款 case 3: withdraw();break; /计息 case 4: computeprofit();break; /查询 case 5: checkbalance();break; /排序 case 6: order();break; /系统介绍 case 7: about(); break; default: cout对不起,您的选择超出了我们的业务范围。endl; cout交易完毕,谢谢合作!endl;13 mylist.Cpp 主函数显示菜单void mylist() int i; for(i=0;i11;i+) c
6、out ; cout*主菜单*endl; for(i=0;i12;i+) cout ; coutendl; for(i=0;i12;i+) cout ; cout0.退出 endl; for(i=0;i12;i+) cout ; cout1.开户 endl; for(i=0;i12;i+) cout ; cout2.存款 endl; for(i=0;i12;i+) cout ; cout3.取款 endl; for(i=0;i12;i+) cout ; cout4.计息 endl; for(i=0;i12;i+) cout ; cout5.查询 endl; for(i=0;i12;i+) co
7、ut ; cout6.排序 endl; for(i=0;i12;i+) cout ; cout7.关于 endl; for(i=0;i12;i+) cout ; coutendl;void about() cout银行活期存款系统 作者:张瑞endl; cout该系统严格按照国际银行活期存款规则编写,endl; cout如果您什么不懂,请在第一步操作中输入N.endl; cout注意:请按照提示进行操作.否则后果自负!endl; cout版权所有,打击盗版!endl; over(); return;14实验小结(实验遇到的问题,解决方法)1.调用外部函数时光简单声明不行 必需加个外部修饰ext
8、ern2.也可调用外部变量 同样用extern3.把定义的函数都放到myheader.H的头文件中声明实验项目二、银行储蓄系统开户模块设计与实现21库函数描述(原型、功能、头部文件)及其作用#include/c+的标准输入输出#include/c的库函数#include/字符串流#include/getch()键盘输入屏幕不输出#include/STL中的迭代器#include /messagebox()消息框#include/时间类的头文件#include/c标准输入输出和文件流using namespace std;22帐户类定义#includemyheader.h/帐号类是定义在myhe
9、ad.H头文件里class Timepublic: int year,month,day,hour,minute,second; Time(int a=0,int b=0,int c=0,int d=0,int e=0,int f=0):year(a),month(b),day(c),hour(d),minute(e),second(f) void print() coutyear年month月day日hour时minute分second秒endl; void print1() coutyear年month月day日hour时minute分secondt.year) ct=(year-t.ye
10、ar-1)*360+(month-t.month+11)*30+day+30-t.day; else ct=(month-t.month-1)*30+day+30-t.day; return ct; void copy(Time f)/时间拷贝 year=f.year; month=f.month; day=f.day; hour=f.hour; minute=f.minute; second=f.second; /判断时间是否大 bool timebig(Time t) if(yeart.year) return false; else if(yeart.month) return fals
11、e; else if(montht.day) return false; else if(dayt.hour) return false; else if(hourt.minute) return false; else if(minutet.second) return false; else if(secondt.second) return true; else return true; else return true; else return true; else return true; return true; ;/检查输入的字符产是否全是数字bool checknum(cons
12、t char*);/重载比较函数int strcmp(const char*s1,const char*s2);/钱数大些函数声明void readmoney(char*);/定义帐号类class Account public: char name20,ID20,balance15,code10; Time time; Account(const char* a=,const char* b=,const char* c=,const char* d=,Time e=Time(0,0,0,0,0,0) strcpy(name,a); strcpy(ID,b); strcpy(code,c);
13、strcpy(balance,d); time=e; void print1() int i; for(i=0;i30;i+) cout; coutendl; cout姓名: nameendl; cout身份证号: IDendl; cout余额: balanceendl; cout余额大写: ; readmoney(balance); cout开户时间: ; time.print(); void print2() int i; for(i=0;i30;i+) cout; coutendl; cout姓名: nameendl; cout身份证号: IDendl; cout余额: balancee
14、ndl; cout余额大写: ; readmoney(balance); cout上次计息时间(开户时间): ; time.print(); ;class Rempublic: char ID20,money10; int flag; Time t; Rem(char*a=,char*b=,int c=0,Time d=Time(0,0,0,0,0,0) strcpy(ID,a); strcpy(money,b); flag=c; t=d; void print() if(flag=0) t.print1(); cout 取款money元endl; if(flag=1) t.print1();
15、 cout 存款money元endl; ;/菜单void mylist();/开户void creaccount();/存款void deposit();/取款void revisecode();/计息void computeprofit();/查询void checkbalance();/排序色void creatcolor();/关于系统介绍void about();/大写读取金额void readmoney(char* s);/重载比较函数int strcmp(const char* s1,const char*s2);/结束void over();/求两字符串之和void plus(c
16、har*s1,char*s2);/求两字符串之差void minus(char* s1,char* s2);/将字符串倒置void opposition(char * s);/检查输入的金额是否合法并对其进行规范性修改bool checkmoney(char*s);/计算利息专用bool jixi(Account& a);/校验身份证号是否正确bool checkID(const char* s);/检查所输入的身份证号是否已开过户,开过户返回true,未开过返回falsebool finID(const char* s);/获取当前时间的time函数Time latesttime();/移位
17、void change(char*ch);/输出备忘录void output(const char * s);23编码(必须附加注释)#includemyheader.hvoid creaccount()/开户 cout欢迎您在此开户endl; char ID20=; /检查该身份证号是否符合中华人民共和国身份证号码的编制规则 while(1) cout请输入您的身份证号: ID; if(checkID(ID) break; else cout您的输入有误请重新输入您的身份证号:endl; /检查是否在此开过户 if(finID(ID) cout您已在次开过户。endl; over(); re
18、turn; cout请输入您的姓名:name; if(name.length()8) cout您的输入有误,请重新输入。endl; else break; const char*copyname=name.c_str();/name的首地址 且必须是const只读的 cout请输入您的密码:endl; cout注意:密码更正每人只有三次机会,密码只有六位。endl; char cod7=,flag=0;/计数 while(1) if(flag) if(flag=3) break; cout您的密码输入有误,; int i; cout请输入密码:endl; for(i=0;i6;i+) codi
19、=getch(); cout*; MessageBox(0,密码位数已足,提示,MB_OK | MB_SYSTEMMODAL ); coutendl; cout请确认一下密码:endl; char copycod7=; for(i=0;i6;i+) copycodi=getch(); cout*; MessageBox(0,密码位数已足,提示,0); coutendl; if(strcmp(cod,copycod)!=0) flag+; continue; else MessageBox(0,恭喜!密码输入成功!,提示,0); break; cout请输入您的开户金额:money; if(ch
20、eckmoney(money) break; else cout您的输入有误,请重新输入:endl; FILE *fp; fp=fopen(D:mybank,a); Time t=latesttime(); Account temp(copyname,ID,cod,money,t); fwrite(&temp,sizeof(Account),1,fp); fclose(fp); MessageBox(0,恭喜您!在次开户成功!,提示,0); int jx=MessageBox(0,您是否要查看一下您的信息?,提示,1)-2; if(jx) temp.print1(); over(); retu
21、rn;4实验小结(实验遇到的问题,解决方法)1.在getch()前有时要加入cin.get()防止上次输入被getch()获取2.对密码和帐号输入后要在数组最后加个“”防止数组错误3.对打开文件是 有时用绝对路径表示实验项目三银行储蓄系统存款模块设计与实现31库函数描述(原型、功能、头部文件)及其作用#include/c的标准输入输出和文件流#include/massagebox()消息框的头文件#include myheaer.h/全部调用函数#include/getch()从控制台读取一个字符,但不显示在屏幕上32编码(必须附加注释)#includemyheader.H/存款void deposit() FILE*fp; fp=fopen(D:mybank,r); if(fp=NULL) cout您尚未在此开户!endl; over(); return; fclose(fp); cout=欢迎进入存款模块=endl; cout请输入您的身份证号:ID; if(checkID(ID) if(finID(ID) break; else
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1