版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电子信息学院软件工程系课 程 设 计 报 告(2013 -2014 第 2学期)课程设计类型:面向对象程序设计题目:ATM自动粗取款系统电子信息学院 制目录目录11. 问题分析21.1 问题描述21.2 要求分析22. 总体设计22.1 功能分析22.2 数据抽象22.3 类的定义32.4 总体结构33.详细设计33.1 系统的停顿43.2 主页面43.3 登陆43.4 功能界面53.5 存款63.6 取款63.7 查询73.8 退出74. 功能测试74.1 本系统的主界面74.2 界面85.遇到的问题126. 课设小结12参考文献131. 问题分析1.1 问题描述本次C+课程设计题目是“AT
2、M取款机程序”。(1)软件用途:ATM取款(2)功能概述:模拟ATM取款机 登陆、取款、查询。1.2 要求分析根据题目要求,做出如下的具体分析:从需求可以发现软件只需要一个ATM类,可以主要分为主页,主页面zhuyemian();登陆denglu();功能界面djmian();查询chaxun();取款qukuan();存款cunkuan();退出tuichu();几个主要的公有类和一个存款数数目私有类zong()。其中,主页面zhuyemian()和操作界面djmian()两个函数用于接受输入用户的操作项目编号,用户输入编号后跳转到相对应的存款,查询,取款,退出4个函数模块。另外还有有一个输
3、入流存储用户数据在文本文档。2. 总体设计2.1 功能分析1. 要求分析如下:主页面zhuyemian()和功能界面djmian()两个函数用于接受输入用户的操作项目编号,用户输入编号后跳转到相对应的登陆,选择操作界面,存款,取款,查询,退出函数模块。另外还有一个输入流存储用户数据在文本文档。除此加入了一个time()函数用于操作之间停顿,是用户可以看清自己的操作免得跳转过快。其中,主页面的功能包括登陆和退出,并且要求对输入不符合要求的数做出提示,其次登陆的账号密码输入错误也要提示并且要可以重新输入。操作界面也要实现对输入不符的情况做出提示。存款选项需要把用户输入的数据加上原本的金额并输出显示
4、。取款选项需要把用户输入的数据用余额减去后输出显示。退出选项只需要做出输出感谢的话就行了。2.2 数据抽象1ATM类的信息:public= A,id,pd,x,y,z,B,cun,quA=整型,接收用户输入主页面操作编号id=整型,接收用户输入账户 pd=整型,接收用户输入密码x=整型,读取文本里的账户 y=整型,读取文本里的密码z=整型,读取文本里的余额 B=整型,接收用户输入功能页面操作编号 cun=整型,接收用户输入的存款金额qu=整型,接收用户输入的取款金额2.3 类的定义1 ATM类l ATMl IntAl int idl int pdl int xl int yl int zl i
5、nt Bl int cunl int qu输入数据账号密码读取账号读取密码读取余额输入数据输入存款输入取款l void zhuyemian();l void denglu();l void djmian();l int chaxun();l int qukuan();l int cunkuan();l void tuichu();l void get();l void time();l int zong;接收用户输入的操作代号核对登陆信息接收用户输入的操作代号查询余额取款存款退出登陆接收用户重新输入停顿总的金额2.4 总体结构zhuyemianTuichuCunkuanQukuanChaxun
6、denglu3.详细设计3.1系统的停顿因为这个操作比较简单,所以跳转比较快,因此我设计了一个系统的停顿时间。void ATM:time() cout<<"n请稍等几秒钟! 系统正在处理中.n"<<endl;/每次操作之后便会显示这几个字系统进入跳转后便调用函数time()执行停顿,即time();Sleep(3000);3.2 主页面主页面主要是执行接收用户的操作输入并跳转的登陆界面cin>>A; if(A>0&&A<3)/用户的输入是否是1或者2 switch(A) case 1:denglu();brea
7、k;/输入为1就跳转登陆界面 case 2:tuichu();break;/输入为2就退出 else cout<<"t-n" cout<<"t请输入正确的选项!按回车键继续操作. n" cout<<"t-n"cin.get(); cin.get();3.3 登陆登陆界面要先打开一个txt文本,里面存放了用户数据。int id,pd,x,y,z;ifstream shuju("ATM.txt",ios:in);/打开文本,并且只做读取操作if(! shuju)/判断是否打开成功ce
8、rr<<"读取错误"<<endl;exit(1); shuju>>x>>y>>z;/依次赋值给xyz zong=z;/z赋值给余额zong然后判断用户输入的数据是否与文本里对应的数据吻合,是就继续操作,否就重新输入。cout<<"n 请输入卡号:" cin>>id; if(id=x) cout<<" 请输入密码:" cin>>pd; time();Sleep(3000); if(pd!=y) cout<<"
9、t-n" cout<<"t您输入的密码不正确,请按回车键重新选择!n" cout<<"t-n" cin.get();cin.get();/密码错误则重新输入else cout<<"t-n" cout<<"t密码正确,请按回车键继续操作! n" cout<<"t-n" system("cls"); djmian(); /密码正确则跳转到功能界面 else cout<<"t-n"
10、 cout<<"t您输入的卡号不存在,请按回车键后重新选择!"<<endl; cout<<"t-n" cin.get(); cin.get();/卡号错误重新输入3.4 功能界面功能界面主要是接收用户的数据输入后跳转到相应的操作模块,一共有1到4个选项,分别执行跳转到存款,取款,查询和退出模块。cin>>B; if(B>0&&B<5)/判断用户输入是否为1到4 switch(B) case 1:cunkuan();break; case 2:qukuan();break; cas
11、e 3:chaxun();break; case 4:tuichu();break; /跳转到相应的模块 else cout<<"t-n" cout<<"t 请输入正确的选项! 按回车键继续操作! n" cout<<"t-n" cin.get(); cin.get(); system("cls"); djmian();/如果不是的话就继续输入 3.5 存款简单的把用户的输入数据加到从文本读取的数据并返回结果并输出到屏幕int cun; cout<<endl<&l
12、t;"n请输入您要存入的金额:" cin>>cun; time();Sleep(3000); zong=zong+cun; cout<<"t-n" cout<<"t 您目前账户的余额为:"<<zong<<"元 n" cout<<"t 继续操作请按回车键. n" cout<<"t-n" cin.get(); cin.get();3.6 取款取款也是简单的用余额减去用户输入的数据后显示int qu
13、; cout<<endl<<"n请输入取款金额:" cin>>qu; time();Sleep(3000); if(qu>zong) cout<<"t-n" cout<<"t 对不起!您的余额不足,请按回车键后重新输入. n" cout<<"t-n" qukuan(); else zong=zong-qu; cout<<"t-n" cout<<"t 您目前账户的余额为:"&l
14、t;<zong<<"元 n" cout<<"t 继续操作请按回车键. n" cout<<"t-n" cin.get(); cin.get();3.7 查询这个是最简单的部分,就是用cout输出余额即可。cout<<"t-n" cout<<"t 您目前账户的余额为:"<<zong<<"元 n" cout<<"t 继续操作请按回车键. n" cout<&
15、lt;"t-n" cin.get(); cin.get();3.8 退出这个没什么,退出即可。time();Sleep(3000); cout<<endl; cout<<"n" cout<<"n" cout<<" 温馨提示:请记得收好您的银行卡和钱!欢迎再次使用 n" cout<<"n" cout<<"n"4. 功能测试4.1 本系统的主界面1. 高校工资管理系统。本系统的主要功能有:1. 用户登陆2.
16、退出系统2. 用户可根据系统提示和用户需要输入12的操作数字。3.当用户输入的选项不符合要求时,系统将验证并报错4.选择登陆输入账号如果不正确5.输入密码不正确则提示重新输入4.2 界面1.输入正确的密码后进入功能选择界面2.如果输入的不是1或者2则提示重新输入2.输入选项1选择存款功能,并输入存款金额后显示余额3.输入选项2选择取款金额,此处如果输入的取款金额小于余额的话,系统将提示重新输入4.输入选项3选择查询功能5.输入选项4选择退出5.遇到的问题 这次设计遇到最大的问题就是输入流的读取和赋值问题,读取只有要怎么一次赋值3个数研究了好久,读取数据后后要验证是否与用户输入的数据相同也由于自
17、己经验不足老是在小问题上卡住。总的来说问题是很少的,因为程序本来就很简单的缘故也没多少复杂的要求就简单的处理了。6. 课设小结这次的设计因为也没要求是复杂的功能,所以设计相对简单,整体的都只有一个类,用不同函数构成不同的模块来实现各项功能,设计中用的最多的就是if和swith语句,嘴复杂的也就是个输入流函数。而且我意识到这个系统不会返回数据给文本,也就是说只可以单纯的用一次,数据无法保存,这让我觉得不足。经过一个学期的学习和上机实践,使我对C+语言有了更认识和和了解,要想学好它要重在实践,要通过不断的上机操作才能更好的学习它。这次课程设计让我更加了解C+。课设题目要求不仅要求对课本知识有较深刻
18、的了解,同时要求程序设计者有较强的思维和动手能力和更加了解编程思想和编程技巧。 这次课程设计让我有一个深刻的体会,那就是细节决定成败,编程最需要的是严谨,如何的严谨都不过分,往往检查了半天发现错误发生在某个括号,分号,引号,或者数据类型上。就像我在写ATM类时,写完后,忘了在大括号后加个分号,这一点小小的错误也耽误了我几十分钟,所以说细节很重要。 程序设计时,也不要怕遇到错误,在实际操作过程中犯的一些错误还会有意外的收获,感觉课程设计很有意思。在具体操作中对这学期所学的C+语言的理论知识得到巩固,达到课程设计的基本目的,也发现自己的不足之出,在以后的上机中应更加注意,同时体会到C+语言具有的语句简洁,使用灵活,执行效率高等特点。发现上机的重要作用,特别是对数组和循环有了深刻的理解。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑施工合同样本:学校建设协议
- 电力公司供水管道铺设项目合同
- 城市环保光纤布线合同
- 智能办公监控系统施工协议
- 交通运输服务招投标合同模板
- 宿舍区消防演练计划
- 社团投资管理规范
- 制造业临时工薪资发放规范
- 南宁市物业安全隐患排查
- 皮具店防火门安装协议
- 普通高中通用技术课程标准解读学习教案
- 公共场所中文标识英文译写规范 第4部分:体育
- 创业计划书小红书
- 基层税务部门税收执法风险管理研究
- 磁共振检查心理护理课件
- 铁的氢氧化物(课件)
- 冷库安全危险因素和管控与应急措施培训课件
- 2023-2024学年广东省湛江市高二(上)期中数学试卷(含解析)
- 大班-科学语言-塑料瓶到哪里去了?-课件
- 脑缺血再灌注损伤与脑复苏课件
- 电缆阻燃施工方案
评论
0/150
提交评论