C++银行储蓄开发全部程序.docx
- 文档编号:12031110
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:58
- 大小:27.71KB
C++银行储蓄开发全部程序.docx
《C++银行储蓄开发全部程序.docx》由会员分享,可在线阅读,更多相关《C++银行储蓄开发全部程序.docx(58页珍藏版)》请在冰豆网上搜索。
C++银行储蓄开发全部程序
计算机与信息工程学院实验报告
课程名称:
高级语言课程设计
实验项目:
银行储蓄
实验项目一、银行储蓄系统主菜单模块设计与实现
1.1库函数描述(原型、功能、头部文件)及其作用
Time显示当前时间类#include
System()调用dos命令_sleep()停息#include
String字符串流#include
#include"myheader.h"中有调用的全部函数声明
1.2编码(必须附加注释)
#include"myheader.h"
voidmain()
{
//背景颜色设置
system("COLOR16");
/*
颜色属性由两个十六进制数字指定--第一个为背景,第二个则为
前景。
每个数字可以为以下任何值之一:
0=黑色8=灰色
1=蓝色9=淡蓝色
2=绿色A=淡绿色
3=湖蓝色B=淡浅绿色
4=红色C=淡红色
5=紫色D=淡紫色
6=黄色E=淡黄色
7=白色F=亮白色
*/
//输出=============★欢迎进入银行活期存款系统★=============
inti;
for(i=0;i<13;i++)
cout<<'=';
cout<<"★欢迎进入银行活期存款系统★";
for(i=0;i<13;i++)
cout<<'=';
cout< //列示当前时间 cout<<"当前时间: "; for(i=0;i<6;i++) cout<<""; Timet=latesttime(); t.print(); //列示菜单 mylist(); cout<<"如果您不了解该系统请按N否则按Y: "; //核实输入是否为字符 stringcheck; while (1) { cin>>check; if(check.length()>1) { cout<<"您的输入有误请重新输入: "; continue; } if(check[0]! ='Y'&&check[0]! ='N') cout<<"您的输入有误请重新输入: "; else break; } intmark=1; if(check[0]=='N') { mark=0; cout<<"友情提示: 按对应业务的编号即可进行该业务! "< "< } intflag=1; while(flag++) { if(flag>2) { system("cls"); mylist(); } if(mark) cout<<"请选择业务: "; stringservicenum; //核实输入是否为字符 while (1) { cin>>servicenum; if(servicenum.length()>1) { cout<<"您的输入有误请重新输入: "; continue; } else break; } cout<<"确认请按Y,修改请按N,请选择: "; stringmark; //核实输入是否为字符 while (1) { cin>>mark; if(mark.length()>1) { cout<<"您的输入有误请重新输入: "; continue; } if(mark[0]! ='Y'&&mark[0]! ='N') cout<<"您的输入有误请重新输入: "; else break; } if(mark[0]=='N') continue; if(servicenum[0]=='0') break; cout<<"正在处理请稍等."; _sleep(1000); cout<<"."; _sleep(1000); cout<<".\n"; _sleep(1000); switch(servicenum[0]) { //开户 case'1': creaccount();break; //存款 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<<"对不起,您的选择超出了我们的业务范围。 "< } } cout<<"交易完毕,谢谢合作! ! ! "< } 1.3mylist.Cpp主函数显示菜单 voidmylist() { inti; for(i=0;i<11;i++) cout<<''; cout<<"*************主菜单*************"< for(i=0;i<12;i++) cout<<""; cout<<"☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"< for(i=0;i<12;i++) cout<<""; cout<<"☆0.................退出☆"< for(i=0;i<12;i++) cout<<""; cout<<"☆1.................开户☆"< for(i=0;i<12;i++) cout<<""; cout<<"☆2.................存款☆"< for(i=0;i<12;i++) cout<<""; cout<<"☆3.................取款☆"< for(i=0;i<12;i++) cout<<""; cout<<"☆4.................计息☆"< for(i=0;i<12;i++) cout<<""; cout<<"☆5.................查询☆"< for(i=0;i<12;i++) cout<<""; cout<<"☆6.................排序☆"< for(i=0;i<12;i++) cout<<""; cout<<"☆7.................关于☆"< for(i=0;i<12;i++) cout<<""; cout<<"☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"< } voidabout() { cout<<"银行活期存款系统作者: 张瑞"< cout<<"该系统严格按照国际银行活期存款规则编写,"< cout<<"如果您什么不懂,请在第一步操作中输入N."< cout<<"注意: 请按照提示进行操作.否则后果自负! ! ! "< cout<<"版权所有,打击盗版! ! ! "< over(); return; } 1.4实验小结(实验遇到的问题,解决方法) 1.调用外部函数时光简单声明不行必需加个外部修饰extern 2.也可调用外部变量同样用extern 3.把定义的函数都放到myheader.H的头文件中声明 实验项目二、银行储蓄系统开户模块设计与实现 2.1库函数描述(原型、功能、头部文件)及其作用 #include #include #include #include #include #include #include #include usingnamespacestd; 2.2帐户类定义 #include"myheader.h" //帐号类是定义在myhead.H头文件里 classTime{ public: intyear,month,day,hour,minute,second; Time(inta=0,intb=0,intc=0,intd=0,inte=0,intf=0): year(a),month(b),day(c),hour(d),minute(e),second(f){} voidprint() { cout< } voidprint1() { cout< } //两个时间段相距的天数 intisHalfYear(Timet) { intct; if(year>t.year) ct=(year-t.year-1)*360+(month-t.month+11)*30+day+30-t.day; else ct=(month-t.month-1)*30+day+30-t.day; returnct; } voidcopy(Timef)//时间拷贝 { year=f.year; month=f.month; day=f.day; hour=f.hour; minute=f.minute; second=f.second; } //判断时间是否大 booltimebig(Timet) { if(year>t.year) returnfalse; elseif(year returntrue; elseif(year==t.year) { if(month>t.month) returnfalse; elseif(month returntrue; elseif(month==t.month) { if(day>t.day) returnfalse; elseif(day returntrue; elseif(day==t.day) { if(hour>t.hour) returnfalse; elseif(hour returntrue; elseif(hour==t.hour) { if(minute>t.minute) returnfalse; elseif(minute returntrue; elseif(minute==t.minute) { if(second>t.second) returnfalse; elseif(second returntrue; } else returntrue; } else returntrue; } else returntrue; } else returntrue; } returntrue; } }; //检查输入的字符产是否全是数字 boolchecknum(constchar*); //重载比较函数 intstrcmp(constchar*s1,constchar*s2); //钱数大些函数声明 voidreadmoney(char*); //定义帐号类 classAccount { public: charname[20],ID[20],balance[15],code[10]; Timetime; Account(constchar*a="",constchar*b="",constchar*c="",constchar*d="",Timee=Time(0,0,0,0,0,0)) { strcpy(name,a); strcpy(ID,b); strcpy(code,c); strcpy(balance,d); time=e; } voidprint1() { inti; for(i=0;i<30;i++) cout<<"{}"; cout< cout<<"姓名: "< cout<<"身份证号: "< cout<<"余额: "< cout<<"余额大写: "; readmoney(balance); cout<<"开户时间: "; time.print(); } voidprint2() { inti; for(i=0;i<30;i++) cout<<"{}"; cout< cout<<"姓名: "< cout<<"身份证号: "< cout<<"余额: "< cout<<"余额大写: "; readmoney(balance); cout<<"上次计息时间(开户时间): "; time.print(); } }; classRem{ public: charID[20],money[10]; intflag; Timet; Rem(char*a="",char*b="",intc=0,Timed=Time(0,0,0,0,0,0)) { strcpy(ID,a); strcpy(money,b); flag=c; t=d; } voidprint() { if(flag==0) { t.print1(); cout<<""<<"取款"< } if(flag==1) { t.print1(); cout<<""<<"存款"< } } }; //菜单 voidmylist(); //开户 voidcreaccount(); //存款 voiddeposit(); //取款 voidrevisecode(); //计息 voidcomputeprofit(); //查询 voidcheckbalance(); //排序色 voidcreatcolor(); //关于系统介绍 voidabout(); //大写读取金额 voidreadmoney(char*s); //重载比较函数 intstrcmp(constchar*s1,constchar*s2); //结束 voidover(); //求两字符串之和 voidplus(char*s1,char*s2); //求两字符串之差 voidminus(char*s1,char*s2); //将字符串倒置 voidopposition(char*s); //检查输入的金额是否合法并对其进行规范性修改 boolcheckmoney(char*s); //计算利息专用 booljixi(Account&a); //校验身份证号是否正确 boolcheckID(constchar*s); //检查所输入的身份证号是否已开过户,开过户返回true,未开过返回false boolfinID(constchar*s); //获取当前时间的time函数 Timelatesttime(); //移位 voidchange(char*ch); //输出备忘录 voidoutput(constchar*s); 2.3编码(必须附加注释) #include"myheader.h" voidcreaccount()//开户 { cout<<"『欢迎您在此开户』"< charID[20]=""; //检查该身份证号是否符合中华人民共和国身份证号码的编制规则 while (1) { cout<<"请输入您的身份证号: "< cin>>ID; if(checkID(ID)) break; else { cout<<"您的输入有误请重新输入您的身份证号: "< } } //检查是否在此开过户 if(finID(ID)) { cout<<"您已在次开过户。 "< over(); return; } cout<<"请输入您的姓名: "< stringname; while (1) { cin>>name; if(name.length()>8) cout<<"您的输入有误,请重新输入。 "< else break; } constchar*copyname=name.c_str();//name的首地址且必须是const只读的 cout<<"请输入您的密码: "< cout<<"注意: 密码更正每人只有三次机会,密码只有六位。 "< charcod[7]="",flag=0;//计数 while (1) { if(flag) { if(flag==3) break; cout<<"您的密码输入有误,"; } inti; cout<<"请输入密码: "< for(i=0;i<6;i++) { cod[i]=getch(); cout<<"*"; } MessageBox(0,"密码位数已足","提示",MB_OK|MB_SYSTEMMODAL); cout< cout<<"请确认一下密码: "< charcopycod[7]=""; for(i=0;i<6;i++) { copycod[i]=getch(); cout<<"*"; } MessageBox(0,"密码位数已足","提示",0); cout< if(strcmp(cod,copycod)! =0) { flag++; continue; } else { MessageBox(0,"恭喜! ! ! 密码输入成功! ","提示",0); break; } } cout<<"请输入您的开户金额: "< charmoney[20]=""; while (1) { cin>>money; if(checkmoney(money)) break; else cout<<"您的输入有误,请重新输入: "< } FILE*fp; fp=fopen("D: \\mybank","a"); Timet=latesttime(); Accounttemp(copyname,ID,cod,money,t); fwrite(&temp,sizeof(Account),1,fp); fclose(fp); MessageBox(0,"恭喜您! ! ! 在次开户成功! ! ! ","提示",0); intjx=MessageBox(0,"您是否要查看一下您的信息? ","提示",1)-2; if(jx) temp.print1(); over(); return; } 4实验小结(实验遇到的问题,解决方法) 1.在getch()前有时要加入cin.get()防止上次输入被getch()获取 2.对密码和帐号输入后要在数组最后加个“ ”防止数组错误 3.对打开文件是有时用绝对路径'\\'表示\ 实验项目三银行储蓄系统存款模块设计与实现 3.1库函数描述(原型、功能、头部文件)及其作用 #include #include #include"myheaer.h"//全部调用函数 #include 3.2编码(必须附加注释) #include"myheader.H" //存款 voiddeposit() { FILE*fp; fp=fopen("D: \\mybank","r"); if(fp==NULL) { cout<<"您尚未在此开户! ! ! "< over(); return; } fclose(fp); cout<<"=====☆欢迎进入存款模块☆====="< cout<<"请输入您的身份证号: "< charID[20]=""; while (1) { cin>>ID; if(checkID(ID)) { if(finID(ID)) break; else
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 银行 储蓄 开发 全部 程序