




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2017级本科程序设计基础课程设计报告图3-6图中显示的是取款的基本流程:主界面主界面选择需要的操作序号是否继续取款额数结束图3-6取款的基本流程开始结束6)转账功能图3-7图中显示的是转账的基本流程:主界面请输入所转账号余额不足转账成功,余额选择查询的操作序号主界面请输入所转账号余额不足转账成功,余额选择查询的操作序号请输入所转金额图3-7转账的基本流程开始3.3参数说明全局变量,重要形式参数、全局变量局部变量等等,它们的命名及用途解释boolj:全局变量。charm,t,ch:全局变量。inttimes:重要形式参数。第四章系统实现对运行及测试结果进行说明,并添加运行界面的截图。4.1、登录主界面图4-1主界面登录窗口图4-2登录主界面时,账号或密码出错时系统自动锁机图4-3成功登录后,主界面所显示的窗口4.2、挂失功能图4-4根据所选代码进行挂失,挂失后系统将退出主界面4.3、修改密码图4-5xxxx图4-6图为更改密码功能界面,更改后的密码为新密码4.4、取款功能图4-7为图为取款功能界面,图中显示为成功取款图4-8图为取款失败后的功能界面4.5、转账功能图4-9图为转账功能界面,图中显示为转账成功后的界面图4-10图为转账失败后的功能界面4.6、查询功能图4-11图中所示为用户个人信息,包括用户姓名、身份证号、银行卡号以及存款余额4.7、退出系统图4-12图为选择序号后系统退出的页面第五章总结课程设计旨在锻炼学生的实际动手能力和解决真实问题的能力。并在其中掌握和熟练所学的知识,并能够运用所学知识解决比较简单的现实模拟问题。本次课程设计在老师的帮助和自己的努力下终于能够成功运行,使我感到非常高兴以及提高了自己的编程信心,虽然这次课程设计的题目实现比较简单和不实用但毕竟是自己将近两个星期的努力地结果。在期间我对编程的理念理解又加深了一点,课程设计使我明白好的算法或者是好的逻辑思维对编程的重要性,在调试期间我自卑过、高兴过、平静过。可以说是我经历了比较大的情感波动。当费很大劲才把程序调运行的时候那种感觉实在是太好了。在本次课程设计活动中,我明显的感觉到自己知识的欠缺和实际动手能的差劲。尤其是在传值传参的函数调用时更体现的非常明显,感觉自己的书本学的不透、学的不扎实。有些地方更本就不会,不如说文件的操作,比如说系统时间的获取等以前在上课或作习题时更本就不会考虑的问题在课程设计当中完全暴露出来。通过本次试验,主要加深了对于友元函数,友元类使用的熟练程度。程序功能相对比较简单,没有设计复杂的继承和重载函数,完成的比较轻松!参考文献[1]吴敏,杨国林.C++面向对象程序设计内蒙古大学出版社.[2]康晓林,汪涛.标准C++使用教程电子工业出版社附录以下是程序的源代码,并且加上了详细的注释://====hcsdkhfsk====#include"iostream"usingnamespacestd;classconsumer;classATM//ATM取款机类{public: ATM(consumer&cn):cnsm(cn) { j=true; }voidwelcome();//登陆界面 boolcheck_passwd(charn[],charpwd[]);//核对密码boolcheck_zhang(charnum[]);//核对转入账号boolgua();//挂失 voidchange_passwd();//修改密码voidfetchmoney();//取款 voidzhuan();//转账 voidinformation();//查询信息 voidexitATM();//退出系统 voidfunctionshow();//功能界面 voidlock();//锁机 private:boolj; inttimes;//记录密码输入次数 consumer&cnsm;};classconsumer//用户类{public: friendclassATM; consumer(charName[],charNum[],charId[20],floatMoney,charPassword[]);protected: char*get_name();//取得姓名char*get_num();//取得卡号 char*get_id();//取得身份证号 char*get_passwd();//取得密码 floatget_money();//取得余额 voidset_passwd(charpwd[]);//设置密码 voidset_money(floatm);//取钱private: charpasswd[8];//用户密码 charname[20];//用户姓名 charid[20];//用户身份证号 charnum[20];// floatmoney;//};consumer::consumer(charName[],charNum[],charId[20],floatMoney,charPassword[]){ strcpy(name,Name); strcpy(num,Num); strcpy(id,Id); money=Money; strcpy(passwd,Password);}floatconsumer::get_money(){ returnmoney;}char*consumer::get_name()//对于数组的返回操作返回指针{ returnname;}char*consumer::get_num(){ returnnum;}char*consumer::get_id(){ returnid;}char*consumer::get_passwd(){ returnpasswd;}voidconsumer::set_money(floatm){ money-=m;}voidconsumer::set_passwd(charpwd[]){ strcpy(passwd,pwd);}voidATM::welcome(){ times=0; cout<<"欢迎使用银行ATM自动取款机"<<endl; charpwd[8],num1[20],ch; inti=0; do { i=0; cout<<endl<<"请输入卡号:"; do { cin.get(ch);//对于键盘字符串的接收! num1[i++]=ch; } while(ch!='\n'); num1[i-1]='\0'; i=0; cout<<"请输入密码:"; do { cin.get(ch); pwd[i++]=ch; } while(ch!='\n'); pwd[i-1]='\0'; if(!check_passwd(num1,pwd)) { cout<<"你输入的卡号或密码有误,请重新输入"<<endl; times++; } else { functionshow(); } } while(times<3); lock();}boolATM::check_passwd(charnum[],charpwd[]){ if(strcmp(num,cnsm.get_num())==0&&strcmp(pwd,cnsm.get_passwd())==0) returntrue; else returnfalse;}voidATM::functionshow(){ intn; do { cout<<"本机可办理以下业务:"<<endl; cout<<"********************"<<endl;cout<<""<<endl; cout<<"1>挂失"<<""<<"2>修改密码"<<endl;cout<<""<<endl; cout<<"3>取款"<<""<<"4>转账"<<endl;cout<<""<<endl; cout<<"5>查询余额"<<""<<"6>退出系统"<<endl;cout<<""<<endl; cout<<"********************"<<endl; cout<<endl<<"请您输入相应的操作序号进行操作:"<<endl;cin>>n; while(n<1||n>6) { cout<<"请输入正确的操作序号!"<<endl; cin>>n; } switch(n) { case1:gua();break; case2:change_passwd();break; case3:fetchmoney();break; case4:zhuan();break; case5:information();break; case6:exitATM();break; } } while(true);}boolATM::gua(){ chara; do {cout<<"是否确认挂失:(y/n)继续请按y退出请按n"<<endl;cin>>a; if(a=='y') { cout<<"您已挂失成功!"<<endl;exit(2); } else { cout<<"您已选择退出!"<<endl; } } while(a=='y'); returnj=true;}voidATM::change_passwd(){ charpwd[8],repwd[8]; times=0; do { cout<<endl<<"请输入旧密码:"; cin>>pwd; if(!check_passwd(cnsm.get_num(),pwd)) times++; else break; } while(times<3); if(times==3) lock(); intt=1; do { cout<<"请输入新密码:"; cin>>pwd; cout<<"请再输入一次新密码:"; cin>>repwd; t=strcmp(pwd,repwd);//相同返回0; if(t!=0) cout<<"你输入的两次密码不一样,请重新输入!"<<endl; } while(t!=0); cnsm.set_passwd(pwd); cout<<"密码修改成功,请牢记!"<<endl;}voidATM::fetchmoney(){ floatm; charch; do { cout<<endl<<"你要取多少钱:"<<endl;//两种情况 cin>>m; while(m<=0) { cout<<"请输入正确的数字!"<<endl; cin>>m; } if(cnsm.get_money()-m<0) { cout<<"对不起,你的余额不足!"<<endl; } else { cout<<endl<<"取款成功,请收好钱!"<<endl; cnsm.set_money(m); } cout<<"是否要继续取款:(y/n)"<<endl; cin>>ch; } while(ch=='y'||ch=='Y');}voidATM::zhuan(){charz[20];floatnum;cout<<"请输入所转账号:"<<endl;cin>>z;cout<<"请输入所转钱数:"<<endl;cin>>num;cnsm.money-=num;if(cnsm.money>0)cout<<"转账成功!"<<"您的余额:"<<cnsm.money<<endl;elsecout<<"余额不足!"<<endl;}voidATM::information(){ cout<<"**********************************"<<endl; cout<<"*用户姓名:"<<cnsm.get_name()<<endl; cout<<"*身份证号:"<<cnsm.get_id()<<endl; cout<<"*银行卡号:"<<cnsm.get_num()<<endl;//必须声明友元才能用cnsm调用其成员函数 cout<<"*存款余额:"<<cnsm.get_money()<<endl; cout<<"**********************************"<<endl;}
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 九年级语文教材使用优化计划2024-2025
- 初中物理下学期教学活动计划
- 2025北师大版六年级数学实践活动计划
- 道法知识普及活动计划
- 二年级语文阅读交流活动计划
- 职业培训机构计算机室课程计划
- 五年级上册音乐创作教学计划
- 2025年高中教务处图书馆资源利用计划
- 课题申报书:高校在继续教育中的作用和模式研究
- 课题申报书:高校课程思政评价指标体系研究
- SOR-FJ-001-01抗生素发酵工艺批生产记录(整套)
- (正式版)BB∕T 0095-2024 折叠式胶合板周转箱
- 江苏省南通部分学校2024年高二3月月考数学试卷 答案
- 高考数学解答题常考公式及答题模板
- 人教版高一下学期期末考试数学试卷与答案解析(共五套)
- 2024年辽宁石化职业技术学院单招职业适应性测试题库必考题
- 小学科学命题培训
- 中职数学上册(社会保障出版社第七版)第四章 算法初步
- MOOC 思辨式英文写作-南开大学 中国大学慕课答案
- 慢性心力衰竭患者容量管理护理专家共识2023
- 坠积性肺炎护理及预防
评论
0/150
提交评论