1 / 29
文档名称:

ATM实验报告.pdf

格式:pdf   大小:2,437KB   页数:29页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

ATM实验报告.pdf

上传人:1781111**** 2024/5/11 文件大小:2.38 MB

下载得到文件列表

ATM实验报告.pdf

相关文档

文档介绍

文档介绍:该【ATM实验报告 】是由【1781111****】上传分享,文档一共【29】页,该文档可以免费在线阅读,需要了解更多关于【ATM实验报告 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..沙学院实训报告训题目:ATM存取款系统的改进与完善系部:计算机科学与技术系专业/年级:计算机科学技术专业2011级学生姓名:戴潇博班级:二班学号2011021218最终评定成绩201211月:..课程名称:程序设计基础实验课程编码:课程类别:专业基础必修课学分数::24开课学期:3ATM存取款系统的改进与完善一、已知技术参数和设计要求:银行ATM存取款系统业务描述如下:银行ATM存取款系统能为用户提供存款、取款、查询、转账和修改密码的功能。为了模拟真实的ATM业务环境,本系统必须实现存款、取款、查询、转账、修改密码以及开户的功能。用户通过开户业务在本系统开立银行账户,之后可以通过该银行账户登陆ATM系统,在系统中实现存款、取款、查询账户信息、修改密码的操作。本系统各个业务有如下注意点:(1)登陆系统用户登陆之前,必须在登陆界面输入其银行账户,通过其正确输入的银行账户登陆系统。(2)开户业务要使用本系统必须首先执行开户业务开立新的银行账户,并且将此新开的银行存储于文件当中。同时,系统以身份证号码作为开户的充分条件,即一个身份证号码只能开立一次银行账户。(3)存款业务客户登陆系统后,选择存款业务,即可以将输入的存款金额存入相应的账户。(4)取款业务客户登陆系统后,选择取款业务,即可以将输入的取款金额从相应的银行账户取出,但是取款金额必须大于目前的账户余额。(5)查询业务客户登陆系统后,可以选择查询业务,查询账户余额。:..6)转账业务客户登陆系统后,可以选择转账业务,进行转账。注意的是转账的目的账户必须是本系统已经存在的银行账户。(7)修改密码客户登陆系统后,可以选择修改密码业务,进行密码修改。二、各阶段具体要求:1、系统总体设计阶段(1)根据需求分析划分功能模块(2)分析并设计各个功能模块之间的关系(3)对于各个功能模块,设计相应的数据结构(必须使用链表完成全部功能)(4)设计相应的算法(必须包括排序和检索功能,且基于链表进行排序和检索)2、详细设计阶段(1)对于每个功能模块,应划分成操作层和数据层(2)对于每个操作层,应尽量考虑用户操作的简单,便捷(3)对于每个数据层,必须使用链表进行管理(4)在用链表进行管理时,必须用到链表检索和排序(5)对于数据层的操作完的数据必须保存到文件中(包括文件读、写操作)3、编码实现阶段(1)完成代码编写(2)要求代码编写规范(不得使用全局变量、所有功能模块必须使用函数封装主函数main()的行数不得超过代码总长度的25%)(3)代码必须有相应的注释(注释行数不得少于代码的10%,函数功能、变量名、算法、重要的循环、分支都必须用注释说明)4、系统测试阶段(1)完成功能调试(2)要求完成必要的测试工作5、交付实施阶段(1)提交可正常执行的系统,程序代码:..)撰写项目实训报告书(3)要求按照文档书写规范,严格地书写文档(4)注意:不允许使用代码、图片和表格填充报告空间。代码、图片和表格在报告中的空间比重不得超过1/3。要求使用文字清晰描述代码思想和逻辑,文字描述不得少于3000字(不包含注释文字)。三、设计工作量:(1)软件设计:严格按照具体设计要求,完成问题陈述中所提到的所有需求功能。(未使用链表实现的、代码少于300行的不及格,未使用链表排序的成绩不可以为优)(2)设计报告:要求撰写不少于3000个文字的文档,详细说明各阶段具体要求。四、工作计划:安排12周时间进行实训(每周2课时),软件开发步骤如下,在课程结束时必须完成所有任务,报告撰写同步进行;实践项目名实践考察方式与分序号内容提要主要考察内容称时数数比重考察方式:考查知识点在最终实验1:程序1、数据与逻辑分离1、数据与逻辑分离项目中的应用14架构的描述2、程序架构的描述2、程序架构的描述情况分数比重:约20%考察方式:考查1、使用链表来构造ATM1、使用链表来构造ATM知识点在最终实验2:链表机的后台数据管理机的后台数据管理项目中的应用2在工程中的2、实现常见的链表操62、实现常见的链表操作情况应用作——插入、删除、修——插入、删除、修改、分数比重:约改、遍历以及创建链表遍历以及创建链表20%1、在使用链表的基础1、在使用链表的基础上考察方式:考查上引导学生完成1~2种引导学生完成1~2种主知识点在最终实验3:查找主要查找——如条件要查找——如条件查找项目中的应用3在项目中的2查找和顺序查找和顺序查找情况应用2、将这些算法结合到2、将这些算法结合到学分数比重:约学生的工程应用题中生的工程应用题中15%实验4:排序1、在使用链表的基础1、在使用链表的基础上考察方式:考查46在项目中的上引导学生完成2~3种引导学生完成2~3种主知识点在最终:..主要排序——冒泡、选要排序——冒泡、选择和项目中的应用择和插入插入情况2、将这些算法结合到2、将这些算法结合到学分数比重:约学生的工程应用题中生的工程应用题中20%1、讨论不同结构的设1、讨论不同结构的设计考察方式:考查计技巧,考虑在同一项技巧,考虑在同一项目中知识点在最终目中使用自定义结构使用自定义结构的必要项目中的应用实验5:结构的必要性性情况5在文件中的22、考虑将复杂结构—2、考虑将复杂结构——分数比重:约应用—双向链表、循环链表双向链表、循环链表作为10%作为解决问题的一种解决问题的一种途径与途径与手段手段1、加强学生对文件操1、加强学生对文件操作考察方式:考查作的认识的认识知识点在最终2、考虑将复杂结构中2、考虑将复杂结构中的项目中的应用实验6:文件的相关数据通过写入相关数据通过写入文件情况64操作技巧文件的方法作为长期的方法作为长期记录保分数比重:约记录保存的工具存的工具15%3、并将此作为改进项3、并将此作为改进项目目的手段的手段五、注意事项1)提交文档课程实训任务书(每学生1份)课程实验/实训报告(每学生1份)2)成绩评定学生成绩由指导老师负责考察评定,分为:优、良、中、及格和不及格五档。以下情况可以判断成绩为不及格:a、抄袭b、代码量少于300行c、未使用链表d、报告不符合规范?以下情况不可以判断成绩为优:a、未使用链表排序b、使用全局变量c、大量代码集中在主函数main()中,而不是使用函数进行合理封装d、功能不完善,有残缺e、代码缺乏必要的注释:..缺课其他情况由指导老师综合考虑给予成绩评定?主要考察知识点与要求:a、链表组织数据b、排序(基于链表)c、链表检索d、文件保存和读取数据e、函数封装及调用f、代码缩进和注释等软件工程原则基本要求g、文档:..序设计基础实验报告现在的社会,是一个高技术时代,在科技的快速发展下,大部分系统都趋向于自动化,同时节约了人力物力,给人们带来了很大的方便。这个程序设计主题是一个银行自动存取款机系统,目的是运用C语言中文件、结构体与指针等相关知识,以DEVC++作为开发环境来设计银行自动存取款机系统。实现了ATM机存取款,转账,开户,登陆界面,查询,修改密码等功能。经过测试,一般情况下,各个功能均能使用。关键词:登陆界面;开户;存取款;修改密码;转账;查询I:..序设计基础实验报告录第1章需求分析...................................................................................................................................................................................................................................................................................++相关知识..........................................................................................................................................................................................................................................................................................................、取款....................................................................................................................................................................................................................................................................................................................................................................................................................................................2第2章概要设计........................................................................................:ATM机基本结构图..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................7结论.........................................................................................................11参考文献.............................................................................................................12附录.........................................................................................................13致谢.........................................................................................................21II:..,切实做到知知识到能力的转换。、C++软件开发平台,本次课程设计就是用其完成。用其实现文件的建立,各个控件的使用,以及界面设计。++相关知识目前我们所学****的编程语言主要以C、C++为主,这次的ATM提款机程序的编写就是对一些相关理论知识的巩固,通过实际操作来达到提高分析和解决实际问题的能力。而不是将学****停留在书本上。,从而使得该程序能满足实际应用的需求。,客户可以再ATM提款机上进行新账户的建立,新建立的账户可登陆该系统,而后再进行例如:存款、取款、汇款的操作。、取款存取款操作是该程序的核心,用户通过该系统实现对账户中“钱”最基本的管理。“钱”的转移,满足客户“理1:..序设计基础实验报告财”的基本功能需求。改善和增加了“资金”流动的渠道。为保证用户信息安全而设置的“密码”可以通过该系统由用户自行更改。本系统就是为了实现该功能而存在的,,对当前用户账户的状况进行查询。2:..:ATM机基本结构图结构图形象直观的描述了ATM提款机程序是怎么运作、实现所有功能的。,在这里用户可以按照提示实现登陆、注册等功能。3:..序设计基础实验报告A输入金额N核对余额Y扣除金额登出返回主菜主页E该界面主要是从已经登陆的账户中扣除小于当前余额的金额的“钱”。4:..序设计基础实验报告B输入金额存入金额登出返回主菜单主页E该处是存款系统,能实现向已经登陆账号里添加任意用户想要添加金额的“钱”。,也就是生成一个新的结构体用以储存用户信息。5:..序设计基础实验报告D登陆N核对YE用户主菜单主页登出密码修改取款存款转账查询输入新密码显示信息ABC登出再次输入新密码返回主页N是否一致EY密码修改成功E该处为登陆界面的结构图,由于此处是各个系统的选择界面,所以略为繁琐了些。该程序的主要框架也是由此展开,因此放到了最后。6:..序设计基础实验报告以下是程序详细的语法结构说明,详细阐述本程序中各个功能的实现和运作方法。信息的存储程序以TXT文件形式存储于电脑上,用的是自定义的结构体的单项链表。在主程序(也就是main函数)中就读取以TXT形式存储于“”文本中的用户信息,方便以后的操作。在程序结束时将整个缓存区的新的链表写入“”文本中进行储存。:登陆、注册两个选项()。其中成功登陆后进入功能界面,提供6个功能:存款,取款,查询,转账,修改密码,退出登陆()。首先是登陆:while循环检索信息,如果用户输入的账号、密码都存在于链表里,而且都正确则登陆成功。反之失败。注册:()新建一个结构体,用户键入“ID、name、password”等用于存储信息。如果ID没有与之前所有的ID信息重合,则系统会自行分配空间对其进行存储,并且标记指针。完成新用户建立。转账功能:()首先是判断转入账号是否存在于用户信息中,若不存在则返回。若存在就输出该转入账户的姓名信息。并让客户确认,确认之后便可以输入转入金额,在判断转出金额是否小于当前余额,若小于则转账成功。如果输入的账号不存在于数组,或者输出转入账号的姓名之后用户发现不对,或者转出金额大于当前余额都会报错,并询问是否重新输入账号,金额。存取款功能:()结构体中用float定义的“money”保证了增减其直的时候较为准确的保存数值。就是在核对相应的金额之后对已经登陆的用户中“money”的直进行修改。密码修改:()密码修改其本质和存取款功能是差不多的,一个是对结构体中的“money”进行修改,一个是对结构体中的“password”进行修改。只不过前者的验证信息较为复杂,包括了重复输入新密码是否相同。查询余额:()这个功能查询你账户的余额。7:..:..:..序设计基础实验报告论通过这次C语言的课程设计,我明白了很多也知道了很多,更收获了很多。在程序设计的过程中出现过困难,回想学****C语言的过程中,既有快乐又有烦恼。回顾这次课程设计,至今我仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整一个学年的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论和知识是远远不够的,只有把所学的理论知识与实际相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考能力。在设计的过程中遇到的问题,这毕竟独立做的,难免会遇到各种各样的问题,同时在设计的过程中发现自己的不足之处,对以前所学的知识理解得不够深刻,掌握得不够牢固,比如说结构体通过这次课程设计之后,一定把以前所学过的知识从新温故。这次课设终于顺利完成了,在设计中遇到了很多编程问题。做完这个课程设计,我们的自信一下子提高了,我们也会写程序了;尽管对于有些人这种程序会很简单,可对于我们C语言初学者来说,已经很不容易了。这次体验为以后的学****计算机的我们增强了信心。享受劳动成果的滋味实在美妙啊!10:..序设计基础实验报告参考文献[1](第三版).北京:清华大学出版社,1999:184-185,294-305,331-346.[2](第三版).北京:清华大学出版社,1999:139-155,161-180。11:..序设计基础实验报告附录以下为本次试验的所有源代码:#include<>#include<iostream>#include<>#include<>#include<>#include<>structbank{charID[20];charpassword[6];charname[20];doublemoney;structbank*next;};charID[20];charID2[20];charpassword[6];charpassword2[6];charxpassword[6];charXpassword[6];charname[20];doublemoney;doublemoney2;structbank*p;structbank*s;structbank*q;structbank*head;inta;intb;intc;//////////////////////////读入/////////////////////////////////structbank*duru(){structbank*tail;FILE*fp;head=(structbank*)malloc(sizeof(structbank));head->next=NULL;12:..序设计基础实验报告{exit(0);}tail=head;while(fp){p=(structbank*)malloc(sizeof(structbank));if(!fread(p,sizeof(structbank),1,fp)){break;}p->next=NULL;tail->next=p;tail=p;}fclose(fp);free(fp);return(head);}////////////////////////////////////////////保存////////////////////////////////////////////voidbaocun(structbank*head){FILE*fp1;structbank*p0;{exit(0);}p0=head->next;while(p0){if(fwrite(p0,sizeof(structbank),1,fp1)!=1){break;}p0=p0->next;}fclose(fp1);13:..序设计基础实验报告free(fp1);}/////////////////////////////////////////////////////////intdl(){登陆页面请输入您的账号请输入您的密码p=head;while(1){if(p->next==NULL){if(strcmp(p->ID,ID2)==0&&strcmp(p->password,password2)==0){登录成功b=1;return1;}else{账号或密码有误return0;}}else{if(strcmp(p->ID,ID2)==0&&strcmp(p->password,password2)==0){登录成功b=1;return1;}}p=p->next;if(p->next==NULL){if(strcmp(p->ID,ID2)==0&&strcmp(p->password,password2)==0){登录成功b=1;return1;}else{账号或密码有误return0;}}}14:..序设计基础实验报告}intzc(){注册页面p=head;while(1){s=(structbank*)malloc(sizeof(structbank));请输入账号:请输入密码:确认密码if(strcmp(s->password,password2)==0){while(1){if(p->next==NULL){if(strcmp(s->ID,p->ID)==0){账号重复,注册失败!return0;}else{注册成功!s->money=0;p->next=s;s->next=NULL;baocun(head);return1;}}else{if(strcmp(s->ID,p->ID)==0){账号重复,注册失败!return0;}p=p->next;if(p->next==NULL){if(strcmp(s->ID,p->ID)==0){账号重复,注册失败!15:..序设计基础实验报告return0;}else{注册成功!s->money=0;p->next=s;s->next=NULL;baocun(head);return1;}}}}}确认密码输入有误,请再次注册!}}intck(){存款页面请输入存款金额p->money+=money2;baocun(head);return1;}intqk(){取款页面请输入取款金额if(money2>p->money){卡上余额不足return0;}else{p->money-=money2;baocun(head);16:..序设计基础实验报告}return1;}intcx(){卡上余额为%lf元return1;}intzz(){转账页面请输入转账金额if(p->money<money2){卡上余额不足return0;}else{请输入转账账号q=head;while(1){if(strcmp(q->ID,ID2)==0){p->money-=money2;q->money+=money2;转账成功baocun(head);return1;}q=q->next;if(q->next==NULL){if(strcmp(q->ID,ID2)==0){p->money-=money2;q->money+=money2;转账成功baocun(head);return1;}else{该账号不存在return0;}}}return1;}17:..序设计基础实验报告}intxg(){修改密码页面请输入新密码请确认新密码if(strcmp(xpassword,Xpassword)==0){strcpy(p->password,xpassword);修改密码成功baocun(head);return1;}else{修改密码失败}}//////////////////////////////////////////////////////////////////////////////////////////////////////intmain(){head=duru();b=0;while(1){if(b==0){主页面登录 (a==1)dl();if(a==2)zc();}else{存款 (c==1)ck();if(c==2)qk();if(c==3)cx();if(c==4)zz();18:ThedocumentwascreatedwithSpir