C++面向对象方法课程设计报告案例ATM柜员机程序_第1页
C++面向对象方法课程设计报告案例ATM柜员机程序_第2页
C++面向对象方法课程设计报告案例ATM柜员机程序_第3页
C++面向对象方法课程设计报告案例ATM柜员机程序_第4页
C++面向对象方法课程设计报告案例ATM柜员机程序_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计说明书_2011_2012_学年第_1_学期题目: 模拟atm柜员机程序 学 院: 计算机学院 专业班级: 学 号: 学生姓名: 陈xx 曾xx 胡xx 指导教师: 成 绩: 时 间: 9:5511:30 2012年 5月 31日课程设计任务书 2010 2011 学年第 1 学期学生姓名: xxxxx xxxxxx 专业班级: 指导教师: 工作部门: 计算机学院 一、课程设计题目模拟atm柜员机程序二、课程设计内容使用文本命令行界面,墨绿色背景,黄色字体。当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录atm柜员机系统,进行自助操作,包括支取,查询,修改密码,存款

2、,打印凭条,交易情况查询,退出。三、进度安排(1)1-2学时,选定题目、分析需求、理解需求;(2)3-4学时,程序设计,定义数据类型、数据处理方式;(3)5-10学时,编写程序、调试、测试;(4)11-12学时,编写设计报告;(5)13-16学时,答辩。四、基本要求(1)只能使用c+语言,源程序要有适当的注释,使程序容易阅读(2)至少采用文本菜单界面(如果能采用图形菜单界面更好)(3)学生可自动增加新功能模块(视情况可另外加分)(4)建立银行账户类、文件读写类、界面显示类等以及各相关接口类。(5)写出课程设计报告,应不少于3000字(不含附录),同一组学生只需提交1份,但必须在报告中列明分工。

3、 课程负责人签名: 年 月 日课程设计分工安排姓名课程设计负责工作备注axxx账户类,具体实现bxxx界面类,测试cxxx课程设计成绩评定表姓 名成绩评定权重总分总成绩(五分制)平时成绩20报告成绩50答辩成绩30axxxbxxxcxxx模拟atm柜员机程序摘 要 针对什么样的问题, 运用什么样的技术,做了什么工作,综合测试什么样的效果。关键词: c+;atm柜员机目 录第一章设计内容1第二章总体设计22.1模块化设计22.2程序运行示意图3第三章详细设计43.1数据结构设计43.2程序模块设计93.3流程图10第四章调试与测试134.1调试过程中的主要问题134.2 测试结果13参考文献18

4、心得体会19第一章 设计内容设计一个文本命令行界面的atm柜员机程序,输入给定的卡号和密码(初始卡号和密码为123456)登录atm柜员机系统,进行自助操作。程序具体功能有:(1) 查询:实现查询用户账号的余额信息。(2) 修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。(3) 取款:按以100的倍数取出,总额不超过5000元,支取金额不允许透支,取款成功后打印凭条。(4) 存款:不能负存款,存款成功后可以打印凭条。(5) 交易情况:查询用户帐号的存取情况,包括以前的,现在的,均可以查询。第二章总体设计2.

5、1模块化设计为实现系统功能,本程序主要分为五个模块。它们分别为:登陆页面、查询账号余额、取款和存款、打印凭条、保存并且退出该程序。这六个函数再通过主函数调用分别得以实现。主函数,首先提供了程序运行时的友好界面,提供客户登陆,登陆后有让客户选择的菜单。然后,通过执行多分支选择语句switch语句,分别实现其它各个函数的调用功能。其它各个函数的功能分别如下:filetext文件类中:checklogin方法用于对登陆用户和密码与文本文件所给的账号密码匹配;modifypassword方法用于客户修改密码并写到给定的文本文件;printinfo方法用于客户交易情况从文本文件中读出。 account账

6、户类中:comparable方法用于对客户密码匹配;editaccount方法用于对修改用户密码;query方法用于查询账号余额;getmoney方法用于客户取款功能;savemoney方法用于客户存款功能;printbill方法用于客户打印交易情况。jie_mian界面类中:mainmenu方法显示主界面;querymenu方法显示查询界面;getmoneybefore方法显示点钞界面;getmoneysuccess方法显示取款成功界面;getmoneyfail方法显示取款失败界面;savemoneymenu方法显示存款界面;savemoneysuccess方法显示存款成功界面;editac

7、countsuccess方法显示密码修改成功界面;editaccountfail方法显示密码修改失败界面;exitmenu方法显示退出见面。2.2程序运行示意图 用户登陆主菜单选择操作序号1,查询余额3,存款,存款2,修改密码5,交易情况4,取款返回主菜单退出atm图2-1 程序运行示意图第三章详细设计3.1数据结构设计本程序中,运用了多种数据结构。首先对于客户账号和密码记录用在password文本文件中。再进行匹配时调用checklogin()方法来和password文本文件中密码和账号进行对比。存款取款时将交易情况写进bill文本文件中。在界面显示方面,在取款时利用delay方法将点钞界面

8、进行了延迟。达到真实atm的效果。对于主要数据结构的举例如下:/账户类class accountprivate:char *name; /账户名char *password; /密码double currentmoney; /当前余额float currentbill; /此次操作的金额 int transtype; /交易类型public:account();/初始化帐号bool comparable();/对比密码bool editaccount();/编辑账户,修改密码void query();/查询余额bool getmoney(float wmoney); /取款bool savem

9、oney(float money); /存款void printbill(); /打印凭条;class sceen /界面类public:static void mainmenu();/主界面 staticvoid querymenu();/查询界面staticvoid getmoneybefore();/点钞界面static void getmoneysuccess();/取款成功界面static void getmoneyfail();/取款失败界面static void savemoneymenu();/存款界面static void savemoneysuccess();/存款成功界面

10、static void savemoneyfail();/存款失败界面static void editaccountsuccess();/密码修改成功界面static void editaccountfail();/密码修改失败界面static void exitmenu();/退出界面static void delay();/时间延迟/文件类class filetextpublic: static bool checklogin(char *name,char *password); /匹配密码static bool modifypassword();/修改密码static void pri

11、ntinfo();数据文件: static bool checklogin(char *name,char *password) /账号密码匹配ifstream fin(password.txt);char n20;char pwd20;finnpwd; /读出用户名和密码进行登录匹配if(strcmp(name,n)!=0 | strcmp(password,pwd)!=0)system(color 3e); int line = 6; system(cls);while(line-)cout endl;coutttt输出密码或者账号错误!endl endl;fin.close();retu

12、rn false;fin.close();return true;/修改密码static bool modifypassword()int time = 1; char password110;char password210;system(cls);system(color 3e);cout nnnnnn;cout ttt匹配成功! endl;while(time)cout password1;/密码不可以小于6位if(strlen(password1)6)system(cls);system(color 3e);cout nnnnnn;cout ttt密码必须大于6位! endl endl

13、; continue;int j = 0; /计算重复的个数/密码每个不可以全一样for(int i=0;i strlen(password1)+1; i+)if(password10 = password1i)j+;if(j = strlen(password1)system(cls);system(color 3e);cout nnnnnn;cout ttt不可以全为: password10 endl;continue;cout password2;if(strlen(password1)6)cout ttt密码必须大于6位! endlendl;continue;if(strcmp(pas

14、sword1,password2)!=0)cout ttt输入的两次密码不相同!;sceen:delay();if(strcmp(password1,password2)=0)time = 0;/打开文件,将新密码写入文件fstream fout;fout.open(password.txt,ios:in | ios:out);if(fout.fail()cout打开文件错误!;fout.close();return false;char array20;strcpy(array,password1);char name7;fout.get(name,7);fout.clear();fout

15、array;fout.close();return true;3.2程序模块设计本程序执行的入口是main函数,然后在main函数中首先调用了账户类中的构造方法,在构造方法中打开读取用户名和密码文件,将客户用户和密码初始化,利用方法checklogin()再进行与文本文件的账号和密码匹配。接下来在switch语句进行界面显示。被调用的方法大多返回值为bool型,以便进行判定是否成功执行该方法,在界面类和文件类的方法编写时,考虑到生成对象的不必要,于是我们将其设计成静态方法。 其中涉及到被调用的方法有:void query();/查询余额void printbill(); /打印凭条bool c

16、omparable();/对比密码bool editaccount();/编辑账户bool getmoney(float wmoney);/取款bool savemoney(float money);/存款static bool checklogin() /与password文本文件匹配密码和账户static void mainmenu() /主界面static void editaccountsuccess() /修改密码成功方法static void savemoneymenu() /存款界面static void savemoneysuccess()/存款成功方法static void

17、printbill()/在界面打印凭条static void getmoneybefore()/点钞界面static void getmoneysuccess()/取款成功方法static void exitmenu()/退出界面static void printinfo()/将打印凭条写到规定的txt,打印信息3.3流程图查询流程图:输入操作号1进入查询主菜单程序调用query();显示查询界面查询结束返回主菜单修改密码流程图:主菜单输入操作号2进入修改密码输入当前密码匹配成功输入新密码修改成功主菜单是否大于6位或者全为一样ynyn存款流程图:主菜单输入操作号3进入存款输入存款ii为正数或者

18、为100的倍数交易成功打印凭条打印交易信息按0返回主菜单主菜单请输入正确的金额nyyn 取款流程图:主菜单输入操作号3进入取款输入存款ii%100=0&i=5000点钞界面交易成功打印凭条打印交易信息按0返回主菜单主菜单输入金额格式不对yynn第四章调试与测试4.1调试过程中的主要问题由于本程序是分界面设计的,所以运行时选择完操作并且执行完操作后,又会继续回到主菜单,供用户继续选择操作并执行操作。对于本程序的调试运行,总体上情况良好。但是,其中也出现了一些小问题。我发现的主要问题有:登陆时,在错误输入密码三次后却能进入主界面;在修改密码中,密码匹配时输入错误密码却能成功修改密码及密码修改后不能

19、保存!成功操作后退出,再次登录账号,发现账号余额又回到了初始值10000!以上问题在不断探究与测试中均已解决。4.2 测试结果 用户登录(如图4-2-1) 图4-2-1 登录成功,进入主界面(如图4-2-2) 图4-2-2 进行操作查询(如图4-2-3): 图4-2-3修改密码(如图4-2-4): 图4-2-4存款(如图4-2-5): 图4-2-5打印凭条(如图4-2-6): 图4-2-6取款(如图4-2-7): 图4-2-7打印凭条(如图4-2-8): 图4-2-8交易情况(如图4-2-9): 图4-2-9退出(如图4-2-10): 图4-2-10参考文献1陈维兴 林小茶,c+面向对象程序设计教程(第2版)。北京:清华大学出版社,2004心得体会刘xx通过这次课程设计,我对c+面向对象的含义有了深刻的了解,c+是一种将生活中的事

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论