您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > C语言程序设计报告(模拟ATM取款机)
仲恺农业工程学院工程实训报告ATM取款机课程名称C语言程序设计工程实训姓名林少烈院(系)计算机科学与工程学院专业班级计算机113班学号201110214317指导教师王成仲恺农业工程学院教务处制1目录1需求分析.....................................................................................................................................................12系统总框图和功能模块说明.....................................................................................................................12.1系统总框图......................................................................................................................................12.2功能模块说明..................................................................................................................................13系统设计.....................................................................................................................................................23.1主要结构体........................................................................................................................................23.2主要功能函数.....................................................................................................................................23.3关键函数的流程图............................................................................................................................34系统调试...................................................................................................................................................115总结...........................................................................................................................................................216源程序清单...............................................................................................................................................236.1头文件..............................................................................................................................................236.2主程序..............................................................................................................................................236.3解除被冻结用户.............................................................................................................................406.4用户注册.........................................................................................................................................4111需求分析所设计的ATM取款机应具备以下功能:插入银行卡(用账号输入的方式代替);密码的输入;用户信息查询;用户余额查询;取款;转账;修改密码;退卡。2系统总框图和功能模块说明2.1系统总框图图1系统总框图2.2功能模块说明输入用户账号模块:在运行时,完成用户账号的输入(代替插卡);输入账号密码模块:①在输入账号之后,完成用户密码的输入;②在修改密码的过程中,完成ATM取款机输入用户账号输入账号密码查询用户信息查询账号余额转账取款修改密码退卡信息读取冻结账号2用户输入旧密码的功能;信息读取功能模块:完成用户信息的读取;冻结账号功能模块:当输入密码3次错误时,冻结用户账号:查询用户信息模块:完成用户的信息查询(不包括余额查询);查询余额功能模块:完成用户余额的查询;取款功能模块:完成取款功能模块:转账功能模块:完成转职功能;修改密码功能模块:完成用户修改密码功能;退卡功能模块:完成退卡功能(即:退出程序功能)。3系统设计3.1主要结构体用户账号、姓名、密码、余额structUser//用户数据{charnum[20];//用户账号charname[10];//姓名charpassword[7];//密码floatbalance;//余额};3.2主要功能函数voidread_info();//用户信息读取voidinput_num(char*num);//输入账号voidnow_exist(char*num);//判断是否被冻结或不存在voidexisted(char*num);voidinput_password(char*p_word,char*W);//输入密码voidface();//界面显示voidbalance_refer();//余额查询3voidchoose(intc);//菜单选择voiddraw_money();//取款voidset_password();//修改密码voidinput_new_password(char*old_password);//设置新密码voidtran_account();//转账voidstamp();//打印单条voidinfo_refer();//信息查询voidout();//退出程序voidlock();//冻结账号voidsave_info();//存储信息3.3关键函数的流程图N4冻结账号exited函数流程图intl=0,i=0;打开文件!feof(fp)1printf(Itcannotopen!);读取文件信息i=0i12l==1用户不存在,重新输入判断密码是否正确i++elsel=0;l=1;break;else调用input_pssword函数s==1判断账号是否存在elses=0;i++ints=0,i;1i=0i12s=1;break;now_exited函数流程图5input_password流程图6choose函数流程图7draw_money函数流程图8i9input_new_password函数流程图inti=0;打开文件关闭文件printf(Itcannotopen!);读取文件!feof(fp)读取文件数据函数流程图10i=0iUi++fclose(fp);random[i]='\0';inti;i=0i12i++产生随机数打开文件进行写入printf(Itcannotopen!);lock函数流程图save_info函数流程图114系统调试首先运行程序,系统提示输入账号。(1)当输入错误账号,系统提示:用户不存在,请从新输入。,(2)当输入错误的密码时,系统提示:密码有误,请重新输入。(3)当输入正确账号与密码时,进入主页面。12(4)主界面(5)在主界面选择数字1,进入查询余额界面,界面显示余额。按任意键返回。(6)在主页面选择数字2,进入取款界面,系统提示输入取款的金额,当输入不是整百数是,系统提示请输入正确的金额,请重新输入。13(8)当输入负数时,系统提示:请输入正确的金额,请重新输入。(9)当输入超过卡里余额的数,系统会提示余额不足,请重新输入。142(10)当输入超过3000的数时,系统会提示:对不起,一次最多能取3000元,请重新输入。15(11)当输入正确的金额时,系统提示:交易成功,按0返回主菜单,按9继续取款。(12)在主菜单界面选择数字3,进入修改密码界面,首先系统会提示:请输入旧密码。16(13)当输入就密码正确时,系统提示:请输入新密码(6位数)。(14)当输入的新密码含有非数字时,系统提示:请输入正确的数字。(15)当输入的新密码不足六位时,系统提示:请输入六位的密码。17(16)当两次输入的新密码不相同时,系统会提示:两次输入的密码不同,请重新输入。(17)当输入两次密码都正确时,系统提示:密码修改成功,请牢记新密码。18(18)在主菜单界面选择数字4时,进入转账界面。系统提示:请输入对方的账号:(19)当输入的账号错误时,系统会提示:用户不存在,请重新输入。(20)当输入自己的账号时,系统会提示:不能给自己转账,请重新输入账号。19(21)当输入正确的账号时,界面会显示对方的信息。按0返回菜单,按9确定转账。9(22)当确定转账时,系统会提示:请输入转账金额。(23)当输入转账的金额超过3000元时,系统会提示:对不起,一次转账不能超过3000元,请重新输入。20(24)当输入正确的金额时,系统提示:交易成功。按0返回主菜单,按9继续转账。(25)在主菜单界面选择数字5,进入信息查询界面,界面将显示账号的信息。21(26)在主界面选择数字0,进去取款界面,系统提示:感谢您的使用,请拿回卡。5总结在确认了程序设计主题之后,首先第一步是画了大概的流程图,因为ATM取款机是我们经常接触的一个机器,所以相对来说话流程图比较容易。在画完流程图之后,就是进行代码的编写了,我采用自顶向下的方式来规划我的整个代码流程,首先是确定了大概需要哪些函数来实现所需的功能,在函数命名的时候,我并不是随便命名的,而是采用书上介绍的方法,用英文来命名。在命名过程中,由于英语功底不好的我遇到了小小的麻烦(有些单词不会拼),于是就用电子词典来解决这问题。刚开始我是把所有的自定义函数定义为void型函数。所有的函数申明写好之后就可以开始细化了,首先确定所需结构体,然后就是头文件的定义,最后确定了所有函数的编写顺序。由于这次程序设计是ATM取款机,所有要用到文件的知识,但又没学过,所
本文标题:C语言程序设计报告(模拟ATM取款机)
链接地址:https://www.777doc.com/doc-4067681 .html