《实验一 ATM自动柜员机业务系统数据流图与原型》实验报告
- 格式:pdf
- 大小:1.52 MB
- 文档页数:26
目录一、引言 (2)1.1编写目的 (2)1.2参考资料 (2)二、需求规约 (3)2.1业务描述 (3)2.2需求分析 (3)三、数据库环境说明 (5)四、逻辑设计 (6)五、物理设计 (7)5.2数据库表物理设计 (7)表[1]:交易信息表 (7)表[2]:用户信息表 (8)表[3]:银行卡信息表 (9)5.3视图的设计 (10)5.4存储过程及触发器的设计 (10)六、安全性设计 (18)6.1 防止用户直接操作数据库的方法设计 (18)七、数据库设计的测试说明 (19)7.1测试用例 (19)7.2设计结论 (24)八、实训总结 (25)一、引言1.1 编写目的本文档ATM自动取款机系统设计文档的组成部分,编写数据库设计文档的目的是:明确数据库的表名、字段名等数据信息,使开发人员能据此开发该系统。
1.2 参考资料二、需求规约2.1 业务描述某银行拟开发一套ATM取款机系统,实现如下功能:1、开户(到银行填写开户申请单,卡号自动生成)2、获取密码(给出卡号,获取相应密码)3 解除挂失(给出卡号,解除挂失)4、修改密码(给出卡号,将旧密码修改为新密码)5、挂失(给出卡号,登记挂失信息)6、催款提醒(帐号余额小于等于某个值(比如100)时返回客户的姓名及联系电话(业务员可以催款提醒用户)。
7、周交易(查询某卡前一周的交易信息)8、查询最高消费(查询消费最高的卡号)9、查询挂失卡号(查看所有挂失的卡号)10、统计余额盈利(统计银行的资金流通余额和盈利结算。
计算公式为:资金流通余额=总存入量-总支取量盈利结算=总支取量*0.008-总存入量*0.003)11、存款取款存取过程(实现存款取款功能。
取款要求输入密码)12、转账交易存储过程(某卡上的款转帐到另一卡上。
要求事务处理2.2 需求分析根据银行方面取得的信息资料,得出系统的信息需求和处理要求,得到设计所需的需求信息。
这些信息是选择了对数据库设计直接有用的信息。
数据流图实验报告篇一:软件工程实验报告篇二:需求分析实验报告软件工程实践报告计科12—1班杨光敏08123234(一)软件需求分析1.实验目的学习图形工具软件VISIO,掌握结构化需求分析方法,熟练绘制数据流图;学习快速原型工具的使用。
2.基本要求(1)针对银行ATM系统进行需求分析工作,了解银行ATM系统的功能、流程;(2)安装VISIOXX以上版本软件,熟练应用Visio绘制DFD图,绘制银行ATM系统数据流图,完成系统的软件逻辑模型;(3)安装Axure RP Pro 或者Balsamiq Mockups快速原型软件,学习绘制软件原型,完成银行ATM系统的软件原型。
3.系统概述(1)ATM系统为银行提供一套高效稳定可靠的终端服务平台,为储户登录,存款,取款,查询,打印凭条,转账,修改密码等操作提供便利。
图1 ATM工作流程(2).用户特点本软件的用户主要是银行的广大持卡人,大多都具有使用ATM经验。
另外,我们的系统要实现的一个重要目标就是当储户取钱出现故障时能在下笔业务进行之前自动恢复。
以此来方便用户和保障用户的利益。
本系统还为用户提供了足够的界面友好性和易操作性。
即使是一个对ATM系统完全陌生的客户,也可以在交易界面的提示下顺利完成交易。
另外一部分的用户是银行工作人员,本系统不予考虑。
4需求说明(1) 基本描述ATM终端可以接受一张可识别的银行储蓄卡,通过储户身份验证后,同储户进行各种交互,例如:查询、存款、取款、打印凭条等;处理储户相应的要求,执行对应操作,为储户服务。
该系统要求须保持一定时间内的交易记录,系统应每天自动汇总各种交易数据与服务器进行对账。
同时,在通讯失败或其他交易结果不确定的情况下,ATM要自动发起冲正交易,以保证账务的完整性。
本系统的实现需要记录一些相关信息,其中包括的信息有:用户信息和交易信息。
(2)交易信息卡信息:卡号,账号,密码,卡类型,卡金额ATM信息:ATM编号,ATM余额,交易流水信息:交易类型,交易代码,账号,交易时间(3)用例需求分析根据需求,做如下用例设计,在给出ATM系统需求用例图之后,我们将对各个用例逐一进行介绍。
柜面业务系统实验报告1. 引言柜面业务系统在现代银行营运中起着至关重要的作用。
它是银行内部与客户之间进行金融业务交流和处理的关键平台。
本次实验旨在了解柜面业务系统的基本功能和流程,并对其进行实际操作,以加深对该系统的理解。
2. 实验目的1. 了解柜面业务系统的功能和流程;2. 掌握柜面业务系统的操作方法;3. 体验柜面业务系统在实际业务中的应用。
3. 实验过程3.1 柜面业务系统介绍柜面业务系统是银行内部的核心系统之一,它包括开户、存款、取款、转账、查询等多种功能,能够为客户提供便捷、高效的金融服务。
3.2 系统登录步骤:打开柜面业务系统应用,在登录界面输入用户名和密码,成功登录系统。
3.3 开户操作步骤:选择开户功能,填写客户信息,包括姓名、id号、联系电话等,并选择开户类型。
提交后,系统生成账号,并打印开户单据。
3.4 存款操作步骤:选择存款功能,输入账号和存款金额,确认无误后,提交存款申请。
系统将完成资金划拨并生成存款单据。
3.5 取款操作步骤:选择取款功能,输入账号和取款金额,确认无误后,提交取款申请。
系统将完成资金划拨并生成取款单据。
3.6 转账操作步骤:选择转账功能,输入转出账号、转入账号和转账金额,确认无误后,提交转账申请。
系统将完成资金划拨并生成转账单据。
3.7 查询操作步骤:选择查询功能,输入账号或id号,系统将显示客户的基本信息、账户余额等。
4. 实验结果通过实验操作,成功完成柜面业务系统的开户、存款、取款、转账和查询等功能。
系统表现稳定、功能完善,能够满足日常柜面业务的需求。
5. 实验总结柜面业务系统是现代银行不可或缺的一部分。
通过本次实验,我进一步了解了柜面业务系统的功能和操作流程,并学会了如何运用该系统处理日常金融交易。
在实际操作中,我也明白了系统的重要性和便利性。
然而,柜面业务系统也存在一些潜在的问题,例如操作过程中的繁琐性和安全性的考虑等。
希望能够不断完善柜面业务系统,提升用户体验。
ATM实验报告范文实验报告:ATM系统设计与实现一、实验目的本实验旨在通过设计和实现一个简单的ATM系统,来锻炼并巩固学生对面向对象的设计和编程能力,以及数据库的操作和管理能力。
二、实验原理ATM系统是一个自动取款机系统,它主要包含四个模块:用户模块、账户模块、交易记录模块和管理员模块。
1.用户模块:处理用户的注册、登录、取款、查询余额、修改密码等功能。
2.账户模块:提供用户账户的信息管理,包括账户的开户、销户、存款、取款、转账等操作。
3.交易记录模块:记录用户的交易记录,包括交易类型、交易时间、交易金额等。
4.管理员模块:提供管理员对用户账户信息、交易记录进行管理的功能,包括查询所有用户账户、查询所有交易记录等。
三、实验设计1.数据库设计:设计一个包含两个表的关系型数据库,一个是用户账户表,包含账户号、密码、账户余额等字段;另一个是交易记录表,包括交易记录号、交易类型、交易金额等字段。
2.系统设计:根据需求分析,设计出ATM系统的类结构,将系统划分为用户类、账户类、交易记录类和管理员类,每个类包含对应的属性和方法。
3. 系统实现:根据设计结果,采用面向对象的编程语言(如Java)进行系统实现。
首先实现数据库的连接和初始化,然后分别实现用户模块、账户模块、交易记录模块和管理员模块的功能。
四、实验步骤1.数据库设计和创建:根据实验设计要求,设计并创建一个包含用户账户表和交易记录表的关系型数据库。
2.系统搭建和环境配置:安装数据库相关软件和编程环境,配置相关环境变量。
3.数据库连接和初始化:编写数据库连接代码,确保系统能够成功连接到数据库并初始化。
4.用户模块:根据设计要求,编写用户模块的代码,实现用户的注册、登录、取款、查询余额、修改密码等功能。
5.账户模块:根据设计要求,编写账户模块的代码,实现账户的开户、销户、存款、取款、转账等操作。
6.交易记录模块:根据设计要求,编写交易记录模块的代码,实现交易记录的记录和查询功能。
长沙学院程序设计基础实验/实训报告2012年11月项目实训任务书课程名称:程序设计基础实验课程编码:JX020102课程类别:专业基础必修课学分数:1.5学时数:24开课学期:3实训题目:ATM存取款系统的改进与完善一、已知技术参数和设计要求:银行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)提交可正常执行的系统,程序代码(2)撰写项目实训报告书(3)要求按照文档书写规范,严格地书写文档(4)注意:不允许使用代码、图片和表格填充报告空间。
ATM自动取款机系统的设计与分析1.1系统相关者用户,系统维护师1.2 事件表1.3 数据流分析(1)顶层DFD自动取款机数据流图如图所示(2)功能层DFD操作完成(3)细节层DFD入取择1.4 数据字典(1)数据项定义数据项名:客户别名:User数据流组成:姓名+身份证号+电话+地址+用户ID(2)数据项定义数据项名:账户别名:account数据流组成:卡号+账户余额+身份证号+密码+卡类型+交易记录+开户时间(3)数据项定义数据项名:账单别名:bill数据流组成:卡号+交易类型+交易时间+交易金额(4)数据项定义数据项名:凭条别名:ticket数据流组成:卡号+交易类型+金额+事物类型+交易时间1.5 加工逻辑登陆模块1.简要说明本例用来描述用户登陆的过程2.事件流(1)基本事件1.系统验证银行卡账号。
2.用户输入密码。
3.系统验证用户输入的密码信息。
4.用户进入系统。
(2)备选事件1.如果账号错误,给出提示,退出。
2.. 如果输入密码错误,给出提示,退出。
取款模块3.简要说明本例用来描述用户取款的过程4.事件流(1)基本事件1.用户输入取款金额。
2.系统验证输入金额是否符合输入要求。
3.系统验证用户账户余额。
4.系统显示用户取款金额。
5.用户确认取款金额。
6.系统要求点钞机出钞。
7.系统更新并保存账户信息。
(2)备选事件1.如果输入金额不符合输入数字格式要求,给出提示,退出。
2.如果输入金额超出最大取款金额,给出提示,退出。
3.如果用户没有确认,给出提示,退出修改密码5.简要说明本例用来描述用户修改密码的过程6.事件流(1)基本事件1.用户输入旧密码。
2.系统验证账户旧密码。
3.用户输入2次新密码。
4.用户确认输入的秘密。
5.系统更新用户密码为新密码。
6.用户修改密码成功。
(2)备选事件1.如果输入的旧密码错误,给出提示,退出。
2.如果两次输入输入的密码不同,给出提示,退出。
3.如果用户没有确认,给出提示,退出。
实验一ATM机自动取款机业务系统数据流图与原型实验报告姓名:学号:班级:编写:目录1 数据流图和原型界面统计 (1)2 ATM自动柜员机业务系统需求模式 (2)3 ATM自动柜员机系统数据流图 (3)3.1顶层数据流图3.2一层数据流图3.3二层数据流图3.4三层数据流图3.5四层数据流图3.6五层数据流图4自动取款机原型徐彤 (4)4.1等待界面4.2登录界面4.3吞卡界面4.4功能选择界面4.5操作界面4.6取款界面4.7存款界面4.8查询界面4.9打印凭条界面4.10转账界面4.11改密码界面4.12交易成功界面4.13取卡界面5实验体会 (23)2 ATM自动取款机系统需求分析需求分析:由于科技迅速发展,安全问题越来越重要,几乎所有银行都配置了简单的人工操作的ATM的自动取款机,人们可以随时随地的进行交易,不再受银行的服务时间所约束,但是一张银行卡,一串密码已经很难满足安全问题,新兴自动取款机会保证更高的安全问题。
ATM机系统的主要功能: 16中条件判断识别取款修改密码凭条打印转账余额查询交易明细查询等1:16种情况识别判断保证财务安全问题,余额不足时不能取款所需的现金。
ATM机可以提供指定金额的快速的取款界面,ATM机取款成功后要向银联系统写入操作,并且对客户的余额进行相应处理。
2:存款ATM机要能自动清点现金,将相应的操作信息写入银联系统,并且对相应的客户的余额进行相应的修改,之后上银联系统。
3;修改密码若新密码1和新密码相同则修改密码,要修改客户的密码表,并且将操作信息写入银联系统,否则修改密码不成功。
4 转账完成不同的银行卡之间的签约条例进行间接转账,若客户余额不足时则转账识别进行相应提示,转账成功,对客户和收账人的余额进行相应的修改,写入账户余额表,并并且向银联系统进行相应的写入操作。
ATM机工作流程插入卡->16种身份识别->选择操作类型交易流程->确定交易->写入账户信息和银联系统3 ATM自动取款机的数据流图3.1顶层数据流图客户插入银行卡后开始识别所属的银行和账户信息,并且启动摄像系统,识别后开始校验客户输入的密码,还有人脸识别信息,眼球识别信息,指纹识别信息,进行16种情况判断,若全部正确则进行ATM机自检,去掉暂时不能输入的操作,让用户选择操作,若情况不全不正确,进行15种情况判断,进行相关操作。
JA V A实习报告一、实习目的1、将所学知识进行一个系统的联系。
2、培养学生分析问题和解决问题的能力,为学生提供了独立实践的机会。
3、理论联系实际,巩固所学知识,提高学生处理处理实际问题的能力。
4、进一步培养学生面向对象程序设计的思想。
5、将所学知识与社会实际现象相联系,使学生更清楚java的用途。
二、实习地点安康学院经济与管理系7405实验室三、实习内容1、题目ATM自动柜员机模拟程序2、功能介绍ATM自动柜员机包括以下操作内容:修改账号密码、余额查询、A TM取款、ATM存款四、实习过程1、选题阶段根据自己的学习情况和个人爱好选择要设计的内容,经过反复判断抉择我最后的实习项目选择是:A TM自动柜员机模拟程序2、分析题目要求的功能阶段针对题目和现实情况列出程序的功能,然后对每一个功能进行分析,画出草图,并列出每一个功能能的要求。
账号登陆:银行账号和初始密码为“123456”修改密码:旧密码等于原密码,新密码必须不小于6位,并且新密码两次输入的一致查询余额:初始余额为10000元ATM取款:取款的金额必须为100的倍数,不大于5000元,并且不能大于余额ATM存款:存款的金额不能为负数3、制定方案阶段画出每一个功能模块的草图(1(3)略(4)略(5)略画完草图后分析如何实现各个功能,并想出如何将各个功能块组合4、编写程序和调试阶段按照第三步和第四步的分析编写程序代码,每完成一个模块运行一次,不断的更改完善直到与分析的结果一直为止,然后完成后面的模块代码,每编写一都和前面的相联系,最后完成一个完整的程序。
(程序代码见附录1)5、编写实习报告阶段根据学院规定的实习报告格式和实际完成的内容编写实习报告。
五、完成的内容1、编写了一个ATM自动柜员机系统,可以进行密码修改、余额查询、取款和存款业务操作。
2、完成了一份实习报告六、实习心得经过短短两天的实习,我第一次体会到了java的用途和乐趣。
学了一学期的java,一直都是做小小的程序实现一个小小的功能,经过这次的实习,我将java中学到的好多部分融合到了一起完成一个完整的程序,实现了很多的功能,找到了很多的乐趣。
本科实验报告课程名称:系统分析与设计实验项目:《ATM机取款系统》实验实验地点:行逸楼A103专业班级:软件1309 学号2013005661 学生姓名:蔡潇钰指导教师:杨丽凤2015年11月 1 日一、实验目的通过《系统分析与设计》实验,使学生在实际的案例中完成系统分析与系统设计中的主要步骤,并熟悉信息系统开发的有关应用软件,加深对信息系统分析与设计课程基础理论、基本知识的理解,提高分析和解决实际问题的能力,使学生在实践中熟悉信息系统分析与设计的规范,为后继的学习打下良好的基础。
二、实验要求学生以个人为单位完成,自选题目,班内题目不重复,使用UML进行系统分析与设计,并完成实验报告。
实验报告以纸质版(A4)在课程结束后提交(10周)。
三、实验主要设备:台式或笔记本计算机四、实验内容1 选题及项目背景A T M机取款系统的分析与设计2 定义ATM(AutomanticTellerMachine)自动取款机是由计算机控制的持卡人自我服务型的金融专用设备.在我国,基本上所有的银行系统都有自己的ATM系统.ATM利用磁性代码卡或智能卡实现金融交易,代替银行前台工作人员的部分工作.顾客可以在ATM机上取钱、查询余额、转账和修改密码等业务.除此之外,ATM自动取款机还具有维护、测试、事件报告、监控和管理等多种功能.3 参考资料《系统分析与设计》作者:李爱萍人民邮电出版社4 系统分析与设计4.1需求分析4.1.1识别参与者用户(使用ATM机进行存取款)ATM机管理员(维护ATM机,往ATM机里放钱等)4.1.2 对需求进行捕获与描述用例名称:ATM机取款系统执行者:用户目的:完成一次取款流程)4.1.3 用例图通过已掌握的需求,初步了解系统所要完成的功能。
下面给出用例图。
余额查询图4.1 参与者用例图4.1.4 分析与讨论1)建模用例图的步骤、方法?1.识别系统的参与者;2.确定用例;3.明确参与者与用例间的关系2)如何识别系统的参与者?应该如何划分用例,应注意哪些问题?1.谁使用系统的主要功能;2.谁改变系统的数据;3.谁从系统中获取主要信息。
附:课程设计报告格式《C++面向对象程序设计》课程设计报告题目:银行ATM自动取款机系统专业:软件工程班级: 1001学号: **********姓名:***指导教师:完成日期:2012 年 6月12日《C++面向对象程序设计》课程设计一、课程设计的目的1、培养学生面向对象编程的思想;2、使学生熟悉C++语言的使用;3、培养学生C++编程的思想和方法;4、使学生掌握C++编程调试的基本技能;5、培养学生分析、解决问题的能力。
二、课程设计内容与要求1、内容一:模拟实现银行ATM自动取款机系统。
系统至少包括以下几方面的功能:(1)修改密码功能;(2)余额查询功能;(3)取款功能;(4)转账功能。
三、系统中所使用的数据对象及说明1、用户类Consumer类属性属性名称类型描述Accnumber long 用户账号conname string 用户名字Balance double 余额password long 密码方法方法名称功能login() 登入系统Query() 查询用户信息transfer() 转账withdraw() 取款update() 修改密码2、取款机类ATM 属性属性名称类型描述无无无方法方法名称功能menu() 菜单:显示ATM的功能4、各个类之间的关系在ATM类中声明Consumer类的对象c,ATM类中再通过c调用Consumer类中的成员函数。
四、系统功能结构及相关算法描述1、系统功能结构2、相关算法流程图(1)登入系统流程(2)、转账流程图:(3)、更改密码流程图:(4)、取款流程图:三、程序源码#include<iostream>#include<string>using namespace std;class Consumer //定义用户Consumer类{private:long Accnumber;string conname;double Balance;long password;public:Consumer();//声明无参构造函数void login();//声明登入函数int Query();//声明查询函数int transfer();//声明转账函数int withdraw();//声明取款函数int update();//声明修改密码函数};Consumer::Consumer()//定义无参构造函数{Accnumber=1030070128;conname="林杰东";Balance=10000;password=123456;}void Consumer::login()//定义登入函数{long password0;int i=0;cout<<"**********欢迎登入林杰东银行**********"<<endl;cout<<endl;cout<<endl;cout<<endl;cout<<"请输入您的6位密码(错误输入不得超过3次):";cout<<endl;cout<<endl;cout<<endl;cout<<endl;cout<<"**********欢迎登入林杰东银行**********"<<endl;while(i<3){cout<<"密码:";cin>>password0;i++;if(password0!=password){cout<<"对不起,您的输入有误,请重新输入"<<endl;if(i==3){cout<<"您的错误输入已满3次,请取出您的银行卡,以免被锁住"<<endl;login();break;}}else{cout<<"登入成功"<<endl;break;}}}int Consumer::Query()//定义查询函数{cout<<"您的用户名:";cout<<conname<<endl;cout<<"您的账号:";cout<<Accnumber<<endl;cout<<"您的当前余额:";cout<<Balance<<endl;cout<<"密码:";cout<<password<<endl;return 1;}int Consumer::transfer()//定义转账函数{long Accnumber1,Accnumber2;double money;cout<<"请输入您要转入的账号:";cin>>Accnumber1;if(Accnumber1==Accnumber){cout<<"对不起,您要转入的账号是当前银行卡的账号,无法转账请重新输入其他账号"<<endl;return transfer();}else{cout<<"请重新输入您要转入的账号:";cin>>Accnumber2;if(Accnumber1==Accnumber2 ){cout<<"请输入您要转账的金额:";cin>>money;cout<<endl;if(Balance>=money){Balance=Balance-money;cout<<"转账成功"<<endl;cout<<"您的当前余额:";return Balance;}else{cout<<"对不起,您当前余额不足,请重新转账"<<endl;return transfer();}}else{cout<<"您两次输入的账号有误,请重新输入"<<endl;return transfer();}}}int Consumer::update()//定义更改密码函数{long password1;long password2;long password3;cout<<"请输入您的6位原密码:";cin>>password1;if(password1!=password){cout<<"对不起,您的输入有误,请重新输入"<<endl;return update();}else{cout<<"请输入您的6位新密码:";cin>>password2;cout<<"请重新输入您的6位新密码:";cin>>password3;if(password2==password3){password=password3;cout<<"恭喜您,您的密码修改成功"<<endl;cout<<"您的新密码:";return password;}else{cout<<"对不起,您的两次输入有误,请重新输入"<<endl;return update();}}}int Consumer::withdraw()//定义取款函数{double number;cout<<"输入要取的钱数:";cin>>number;if(Balance<number){cout<<"你的账号余额不足"<<number<<"."<<endl;cout<<"取款失败!"<<endl;return withdraw();}else{cout<<"取款成功"<<endl;Balance=Balance-number;cout<<"您的当前账号余额为:";return Balance;}}class ATM //定义取款机A TM类{public:Consumer c ;//声明用户Consumer类的对象cint menu();//声明菜单函数};int A TM::menu()//定义菜单函数{c.login();int choice=0;while(choice!=5){cout<<"**********欢迎登入林杰东银行**********"<<endl;cout<<"1.查询"<<endl;cout<<"2.转账"<<endl;cout<<"3.修改密码"<<endl;cout<<"4.取款"<<endl;cout<<"0.退出系统"<<endl;cout<<"**********欢迎登入林杰东银行**********"<<endl;cout<<"请输入您的选择:";cin>>choice;switch(choice){case 1:cout<<c.Query()<<endl;break;case 2:cout<<c.transfer()<<endl;break;case 3:cout<<c.update()<<endl;break;case 4:cout<<c.withdraw()<<endl;break;case 0:cout<<"请取出您的银行卡,欢迎下次再使用"<<endl;return 0;break;default:cout <<"输入错误!请重新输入!\n\n";break;}}return 1;}int main(){ATM atm;atm.menu();return 0;}四、系统运行结果(截图)1、登入ATM银行系统2、主菜单3、查询4、转账5、修改密码6、取款7、退出系统五、课程设计总结通过本次实验我了解了面向对象编程的思想;熟悉C++语言的使用;掌握了C++编程的思想和方法;掌握C++编程调试的基本技能;学会了分析、解决问题的能力。
课程设计报告课程类别:本科课程名称:程序设计基础(C语言)课程代号:指导教师:银行ATM自动取款机系统课程设计姓名:学号:姓名:学号:姓名:学号:学院:班级:目录1.课程设计内容..................................................2.课程设计要求.................................................. 3.可行性研究................................................... 4.需求分析.....................................................5.概要设计......................................................5.1 功能模块图...............................................5.2 功能模块描述.............................................5.3数据结构 .................................................6.详细设计......................................................6.1 功能流程图...............................................6.2 重点设计.................................................7.测试与调试....................................................8.总结..........................................................8.1 心得体会..................................................8.2 不足与改进................................................9.参考文献......................................................1.课程设计内容模拟银行的自动取款机ATM使用过程中的界面和用户交互过程2.课程设计要求(1)要求利用面向过程的方法以及C语言的编程思想来完成系统的设计;(2)在系统的设计中,要求运用菜单和文件实现系统功能。
西安科技大学《VC++语言程序设计》实验报告题目 __科学计算器的实现______ 院、系(部)计算机科学与技术学院专业及班级软件工程1102班姓名赵文杰日期 2012/11/91.题目:科学计算器2.功能需求:这是计算器,在满足用户需求方面应有以下功能:1)进行简单的加、减、乘、除;2)进行函数运算如sin、cos、tan函数;3)可进行进制转换、及弧度运算;3.总体设计4.详细设计以下是详细的分部:1>基于MFC创建一个基本对话框Calculator2>实现基本运算的代码:void CCalculatorDlg::OnNumberKey(UINT nID) {CString n;switch(nID){case IDC_NUMBER1:n="1";break;case IDC_NUMBER2:n="2";break;case IDC_NUMBER3:n="3";break;case IDC_NUMBER4:n="4";break;case IDC_NUMBER5:n="5";break;case IDC_NUMBER6:n="6";break;case IDC_NUMBER7:n="7";break;case IDC_NUMBER8:n="8";break;case IDC_NUMBER9:n="9";break;case IDC_NUMBER0:n="0";break;case IDC_NUMBER_Point:n=".";if(Point==TRUE){m_Point.ShowWindow(SW_HIDE);Point=FALSE;}break;}if(NumberState==1){m_Cnumber=m_Cnumber+n;number1=atof(m_Cnumber);UpdateData(FALSE);}else{m_Cnumber=m_Cnumber+n;number2=atof(m_Cnumber);UpdateData(FALSE);}if(Zero=FALSE){Zero=TRUE;m_Zero.ShowWindow(SW_SHOW);}}void CCalculatorDlg::OnOperationKey(UINT nID) {m_number=atof(m_Cnumber);switch(nID){case IDC_NUMBER_PlusMinus:m_number=m_number;if(NumberState==1)number1=m_number;elsenumber2=m_number;m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_BackSpace:int n;n=m_Cnumber.GetLength();m_Cnumber=m_Cnumber.Left(n-1);UpdateData(FALSE);break;case IDC_NUMBER_Divide:cal();if(Zero==TRUE){m_Zero.ShowWindow(SW_HIDE);Zero=FALSE;}OperationState=1;m_number=0;m_Cnumber="";NumberState=2;break;case IDC_NUMBER_Multiply:cal();OperationState=2;m_number=0;m_Cnumber="";NumberState=2;break;case IDC_NUMBER_Add:cal();OperationState=3;m_number=0;m_Cnumber="";NumberState=2;break;case IDC_NUMBER_Subtract:cal();OperationState=4;m_number=0;m_Cnumber="";NumberState=2;break;case IDC_NUMBER_Clear:number1=number2=m_number=0;m_Cnumber.Format("%g",m_number);UpdateData(FALSE);m_Cnumber="";NumberState=1;break;case IDC_NUMBER_Sqrt:number1=m_number=sqrt(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Sin:number1=m_number=sin(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Cos:number1=m_number=cos(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Tan:number1=m_number=tan(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Log:number1=m_number=log(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Log10:number1=m_number=log10(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Exp:number1=m_number=exp(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Derivative:number1=m_number=(double)1/number1;m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Equal:cal();break;}if(Point==FALSE){Point=TRUE;m_Point.ShowWindow(SW_SHOW);}}3>函数的实现代码:void CCalculatorDlg::OnOperationKey(UINT nID) {m_number=atof(m_Cnumber);switch(nID){case IDC_NUMBER_PlusMinus:m_number=m_number;if(NumberState==1)number1=m_number;elsenumber2=m_number;m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_BackSpace:int n;n=m_Cnumber.GetLength();m_Cnumber=m_Cnumber.Left(n-1);UpdateData(FALSE);break;case IDC_NUMBER_Divide:cal();if(Zero==TRUE){m_Zero.ShowWindow(SW_HIDE);Zero=FALSE;}OperationState=1;m_number=0;m_Cnumber="";NumberState=2;break;case IDC_NUMBER_Multiply:cal();OperationState=2;m_number=0;m_Cnumber="";NumberState=2;break;case IDC_NUMBER_Add:cal();OperationState=3;m_number=0;m_Cnumber="";NumberState=2;break;case IDC_NUMBER_Subtract:cal();OperationState=4;m_number=0;m_Cnumber="";NumberState=2;break;case IDC_NUMBER_Clear:number1=number2=m_number=0;m_Cnumber.Format("%g",m_number);UpdateData(FALSE);m_Cnumber="";NumberState=1;break;case IDC_NUMBER_Sqrt:number1=m_number=sqrt(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Sin:number1=m_number=sin(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Cos:number1=m_number=cos(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Tan:number1=m_number=tan(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Log:number1=m_number=log(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Log10:number1=m_number=log10(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);case IDC_NUMBER_Exp:number1=m_number=exp(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Derivative:number1=m_number=(double)1/number1;m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Equal:cal();break;}if(Point==FALSE){Point=TRUE;m_Point.ShowWindow(SW_SHOW);}}CCalculatorDlg::cal(){m_number=atof(m_Cnumber);switch(OperationState){case 1:m_number=(double)number1/number2;NumberState=1;m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case 2:m_number=(double)number1*number2;NumberState=1;m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case 3:m_number=(double)number1+number2;NumberState=1;m_Cnumber.Format("%g",m_number);UpdateData(FALSE);case 4:m_number=(double)number1-number2;NumberState=1;m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;}number1=m_number;OperationState=0;}4>进制转换,弧度:实现时有问题5.测试及实现6.总结这是一个科学计算器,只能实现基本运算和函数运算。
ATM自动取款机系统分析与设计实验报告摘要:本实验报告旨在分析与设计ATM自动取款机系统。
ATM自动取款机系统是一种常见的自助服务设备,能够为用户提供取款、查询余额、转账等功能。
本报告将进行系统需求分析、系统设计以及系统实施与测试等环节,最终完成ATM自动取款机系统的分析与设计。
通过本实验,我们能够更好地了解和掌握ATM自动取款机系统的工作原理和运行方式,为实际应用中的ATM系统提供指导和参考。
1.引言ATM自动取款机系统是一种常见的自助服务设备,可以方便用户进行取款、查询余额、转账等操作。
随着电子支付的普及和ATM机的使用率的提高,ATM自动取款机系统在人们的生活中扮演着重要的角色。
在本实验中,我们将对ATM自动取款机系统进行详细的分析与设计。
2.系统需求分析在系统需求分析阶段,我们将明确ATM自动取款机系统的功能需求、性能需求、安全需求等。
我们需要考虑用户需要进行的操作,如取款、查询余额、转账等,并设计相应的界面和功能。
此外,我们还需要考虑系统的可靠性、安全性和性能等方面的需求。
3.系统设计在系统设计阶段,我们将根据系统需求进行系统架构设计和详细设计。
我们需要确定系统的各个模块,如用户界面、数据库、交易处理等,并设计它们之间的交互方式和数据流动。
4.系统实施与测试在系统实施与测试阶段,我们将根据系统设计,实现ATM自动取款机系统的各个模块。
我们需要编写相应的代码,并进行系统测试,以验证系统的正确性和稳定性。
5.结论通过本次实验,我们深入了解了ATM自动取款机系统的工作原理和运行方式,并进行了系统分析与设计。
我们明确了系统的需求,并设计了相应的系统架构和功能。
此外,我们还实施了系统并进行了测试,验证了系统的正确性和稳定性。
ATM实验报告范文一、实验目的本实验主要目的是设计并实现一个简单的自动取款机(ATM)系统,通过该系统,用户可以进行账户查询、存款、取款等基本操作。
通过实验,熟悉面向对象设计的基本思想和方法,进一步理解面向对象的封装、继承和多态等特性。
二、实验设计1.类的设计本实验中设计了如下几个类:ATM、Account、SavingsAccount、CheckingAccount。
其中,ATM类代表自动取款机,Account类是表示银行账户的基类,SavingsAccount类是Account类的派生类,表示储蓄账户,CheckingAccount类也是Account类的派生类,表示支票账户。
2.类的属性和方法Account类具有属性:账户号(accountNumber)、账户余额(balance)和利率(rate),具有方法:构造方法Account(、获取账户号方法getAccountNumber(、存款方法deposit(、取款方法withdrawal(。
SavingsAccount类继承Account类,新增加了属性:利率(rate)和最低余额(minBalance),新增加了方法:构造方法SavingsAccount(、计算利息的方法calculateInterest(。
CheckingAccount类继承Account类,新增加了属性:透支额度(overdraft),新增加了方法:构造方法CheckingAccount(、透支方法overdraft(。
3.系统交互过程用户进入ATM系统后,首先输入账户号码以及密码进行验证。
验证通过后,用户可以进行以下操作:(1) 查询账户余额:调用Account类的getBalance(方法进行查询。
(2) 存款:调用Account类的deposit(方法进行存款操作。
(3) 取款:调用Account类的withdrawal(方法进行取款操作,该方法根据账户类型的不同进行判断,如果是储蓄账户则需满足最低余额要求,如果是支票账户则需满足透支额度。
atm实验报告ATM实验报告引言ATM(自动取款机)是现代社会中常见的金融设备,它为人们的生活带来了极大的便利。
然而,ATM也需要不断地进行测试和实验,以确保其正常运行和安全性。
本实验报告将介绍对ATM进行的一次实验,以验证其功能和性能。
实验目的本次实验的主要目的是测试ATM的各项功能,包括取款、存款、查询余额、转账等,并验证其在不同情况下的稳定性和安全性。
实验过程1. 取款功能测试:首先,我们进行了ATM的取款功能测试,模拟了用户输入密码、选择取款金额并取款的整个流程。
实验结果显示,ATM成功完成了取款操作,且取款金额准确无误。
2. 存款功能测试:接着,我们进行了ATM的存款功能测试,模拟了用户输入存款金额、插入存款卡并存款的整个流程。
实验结果显示,ATM成功完成了存款操作,且存款金额准确无误。
3. 查询余额功能测试:随后,我们进行了ATM的查询余额功能测试,模拟了用户输入查询指令并查看余额的整个流程。
实验结果显示,ATM成功显示了用户的余额信息。
4. 转账功能测试:最后,我们进行了ATM的转账功能测试,模拟了用户输入转账金额、选择转账对象并完成转账的整个流程。
实验结果显示,ATM成功完成了转账操作,且转账金额准确无误。
实验结论通过本次实验,我们验证了ATM的各项功能的稳定性和准确性。
ATM在取款、存款、查询余额和转账等方面表现出了良好的性能,符合金融设备的要求。
同时,我们也验证了ATM的安全性,确保用户的资金和信息不会受到损害。
总结ATM作为现代金融服务的重要组成部分,其功能和性能的稳定性和安全性至关重要。
通过本次实验,我们对ATM进行了全面的测试,验证了其良好的性能和安全性,为用户提供了更可靠的金融服务保障。
希望未来能够继续对ATM进行实验和测试,不断提升其性能和安全性,为人们的生活带来更大的便利和保障。