软件工程_ATM柜员机系统_课程设计报告书_第1页
软件工程_ATM柜员机系统_课程设计报告书_第2页
软件工程_ATM柜员机系统_课程设计报告书_第3页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1、软件工程课程设计题目:ATM柜员机系统学院:信息科学与工程学院专业:计算机科学与技术学号:班级:学生姓名:可行性研究1编写目的1.1目的这份可行性研究报告是对 ATM!员机的可行性研究分析及指出存在的必要性。1.2预期的读者软件管理人员、开发人员、维护人员、顾客用户。2问题定义2.1 ATM柜员机介绍ATM柜员机使用与ATM机相似的图形用户界面,当用户在登录界面输入给定的 卡号和密码时,系统能登录 ATM柜员机系统,通过数据链接操作来达到独立的客户与 机器交互从而进行取款、存款、转账、查询余额、修改密码等业务办理的目的。2.2基本目标ATM柜员机主要是由各个实体窗口组成,它是由登录页面、选择服

2、务、存款、取款、 查询余额、修改密码以及查看交易记录等功能。它的各种按钮的事件和功能可以简单 的模拟ATM柜员机的要求,让用户在电脑上可以轻松体验 ATM取款机的使用流程,以 达到易学易用的效果,避免用户在真实的 ATM机上出现失误,带来不必要的损失。2.3经济目标由于本软件的主要背景(为课程设计)在经济上不注重直接的经济收益,而是注重 小组成员整体水平的提高。3可行性研究的方法及评价度3.1可行性研究所采用的方法根据调查,本小组成员多数有 JAVA编程经验,也具备MY SQL勺使用经验,因而 开发此系统采用JAVA结合MY SQL勺数据库系统开发。3.2评价尺度此软件暂时只是一个初级产品,实

3、现的功能也只能完成初步的工作。4工作产品4.1设计目标为了减少银行的业务处理压力,尽量节省人们取钱所花费的时间和价值;并且尽 可能的防止一些非法的业务操作,同时它的使用可以有效解决用户信息和资金信息的 繁杂问题。4.2设计及约束条件a. ATM面向客户十分广泛,所以界面设计要力求简单明了,只要认识汉字并具备实际 行动能力的人,就可以顺利进行操作,对于用户输入的数据,系统能进行严格的数据 检验,尽可能的排除人为地错误。b. 开发人员应具备相应的开发能力,懂C+与java编程,小组成员能够根据计划的 要求,按时完成系统的每一部分,保证后面的开发进程可以顺利进行。但根据现有条件和知识,我们还得在技术

4、方面进行学习和提高。4.3工作原理a. 先建立数据库且追建数据库的驱动程序。b. 在使用时,分为后台管理和前台操作。c. 用户输入账户基本信息进行登录,然后方能进行下一步操作。4.4系统流程图4.5数据流图4.6数据词典数据字典是关于数据的信息的集合,也就是对数据中包含的所有元素的定义的集 合,它为软件开发人员提供数据库设计的参考,并为用户了解系统时作为一个必有工 具。(1)数据项定义名字:用户别名:描述:银行账户的持有者定义:用户=账户+姓名+ 证件号码+存款余额位置:全部由账户持有者所拥有名字:信息别名:描述:银行系统用来鉴别是否有权来支配该账户存款余额的凭证定义:信息=账户+密码位置:输

5、入到ATM(2)操作说明输入账户信息,就可以登陆并在 ATM上进行一系列操作选择交易类型,就可以进行相应操作输入转账账号,就可以进行转账操作选择对应金额,就可以取得相应数量的现金选择余额查询,直接显示对应账号余额4.7产品的功能登录ATM柜员机系统,通过数据链接操作来达到独立的客户与机器交互从而进行 取款、存款、转账、查询余额、修改密码、查看交易记录等业务的目的。4.8技术可行性。根据小组成员拥有良好的JAVA编程能力及拥有MY SQL勺使用经验,再根据上述 分析情况,利用现有人力和物力是具备开发此系统能力的。对于用户来说,此系统简 单、大方、美观、易懂,顾客操作根据系统提示,容易完成。5可选

6、方案鉴于系统必须具有高安全性,在数据库使用上都要求具有完善的管理功能且日后 数据库升级方便,因而本次使用主要根据数据库的易用性及易升级性提供两种方案。a. 采用Oracle数据库设计,这一数据库系统现在已成为主流的数据库管理系统, 且易操作,易升级,因此提出这一方案。b. 采用MY SQL勺数据库管理系统实现。根据小组成员的技术,目前尚只有具备使用 MYSQL数据环境开发的能力,且当前 校园大多使用MYSQL乍为数据库管理系统,因而第二种方案作为本次系统开发的方案。6经济的可行性6.1市场分析按本软件开发方案,对于本系统软件投资方向,体现于软件开发、软件生产及软 件测试。6.2投资估计本系统完

7、全按开发计划进行估算,估计上网,打印需一些费用。本系统大约总体 耗费主要为时间,精力。本系统本非收益性质开发,重要是为解决用户的需要。7社会因素方面的可行性7.1技术由于用户办理银行业务时,比较拥挤,而且需要花费大量的时间,为了减少银行 的业务处理压力,尽量节省人们的时间,并且可以有效解决用户信息和资金信息的繁 杂问题。7.2使用方面的可行性此系统给银行和用户都带来了利益,同时出售此系统的技术员也获得利润,相当 于定期收取租金。有利于社会经济的发展。8产品可检测性8.1检测标准软件标准:软件规模、复杂程度、安全性、可操作性、可观察性、可控制性、冗 余的大小。8.2检测的方法通过软件测试:黑盒测

8、试法:主要在软件界面上进行的测试。 白盒测试法:在重要逻辑路径进行测试,检测重要数据结构的有效性。9产品的可生产性正确性:程序是否按程序流程图及数据字典完成程度。可靠性:安全运行时间越长越好。可用性:是否能够解决实际的存在问题。完整性:对未授权的人员访问此系统软件可控性强。 灵活性:修改一个程序的工作量。10可行性综合分析时间本工程产品开发周期为2月。要求所有数据信息的储存都由数据库来完成。 十分宽裕,对我们工程的进行非常有利。11可行性结论综上所述,本工程的技术成熟、完备,测试手段可靠,具有良好的市场拓展,因此本工程可立即开始需求分析1项目背景在市场经济的蓬勃发展和人们日益繁忙的条件下,AT

9、M应运而生,它可以减少银行的业务处理压力,尽量节省人们的时间,并且可以有效解决用户信息和资金信息的 繁杂问题。2任务概述 2.1目标本系统在设计上,尽可能使流程清晰,操作灵活。实现上应该具有如下功能:1. 米用人机对话的方式,界面美观友好。2. 为用户提供方便,快捷的业务办理功能。3. 对用户输入的数据进行检查,尽可能排除人为的错误。4. 用户可以随时查看自己的交易记录。8.系统运行稳定,数据存储安全可靠。2.2运行环境CPUPentium4 1.8G 以上内存512MB以上硬盘空间500MB以上操作系统Windows XP或 Windows 7数据库MY SQL开发环境NetBea ns+J

10、DK2.1浏览器IE6.0以上服务器2.3条件和限制性能描述实时性好、灵活性强、易于不同年龄阶段的人操作。界面要求以Windows窗 口形式显示,标题栏为ATM柜员机名称,右上角有最小化按钮、关 闭按钮,不同的窗口中有不同的按钮和选择菜单。2.3.3 输入:输入内容:账号,储户密码,取款额,转账卡号,转账金额储户密码:六位整数;存款额:50元的倍数;取款额,转账额:100元的倍数;转账卡号:18位整数;输入设备:数字键盘输出内容:余额,输入密码提示,业务选择提示,取卡提示,交易记录 设备:显示器;介质:计算机3数据库描述数据库是数据管理的最新技术,是计算机科学的重要分支。十年来,数据库管理 系

11、统已从专用的应用程序包发展成为通用系统软件。由于数据库具有数据结构化、最低冗余度、较高的程序与数据独立性、易于扩充、易于编制应用程序等优点,较大的 信息系统都是建立在数据库设计之上的。由于用到的数据表格多,另外考虑到实际情况,商品信息的更新,还有会员资料 的变化,我们选用MY SQL乍为数据库开发,而不用 Access,主要是因为Access存 放的记录,在实际运用中不适合此系统;而 MYSQL是一种常用的关系数据库,能存放 和读取大量的数据,管理众多并发的用户,故选用MY SQL数据库。4所用技术描述NetBeans由Sun公司在2000年创立,它是开放源运动以及开发人员和客户社区 的家园,

12、旨在构建世界级的Java IDE。NetBeans当前可以在Solaris、Windows Linux 和Macintosh OSX平台上进行开发,并在 SPL(Sun公用许可)范围内使用。已经获得业界广泛认可,并支持 NetBeans扩展IDE模块目录中大约100多个模块。NetBeans 是一个全功能的开放源码Java IDE,可以帮助开发人员编写、编译、调试和部署 Java 应用,并将版本控制和XMLS辑融入其众多功能之中。NetBeans可支持Java 2平台 标准版(J2SE)应用的创建、采用JSP和Servlet的2层Wet应用的创建,以及用于2 层Web应用的API及软件的核心组

13、的创建。此外,NetBeans最新牒还预装了两个 Web 服务器,即Tomcat和GlassFish,从而免除了繁琐的配置和安装过程。所有这些都为 Java开发人员创造了一个可扩展的开放源多平台的Java IDE,以支持他们在各自所选择的环境中从事开发工作,如 Solaris、Linux、Windows或 Macintosh。5功能需求 5.1功能模块图5.2系统模块结构图6性能需求本ATM!员机的主要功能如下所述:要求使用图形用户界面。当输入给定的卡号和密码时,系统能登录ATM巨员机系统,用户可以按照以下规则进行:A、查询余额:初始余额为10000元;B、 ATM取款:取款不能出现负数,每次

14、取款金额为100的倍数,总额不超过5000 元,支取金额不允许透支(若能够提供与 ATM机一样的取款模式就更好);C、ATM存款:不能出现负存款,每次存款金额为 50的倍数;一次存款不能超过 10000 元;D修改密码:新密码长度为6位,不允许出现6位完全相同的情况,只有旧密码 正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。E、查看交易记录:根据用户输入的查询起止时间,查询该时间段的存取款交易记 录。7数据描述8静态数据描述用户:User name用户名Tel电话账户Usernu mber账号Password密码9动态数据分析鼠标对按钮的点击 受限操作所需的密码;输出数据:

15、查询余额的信息; 查询记录信息; 密码修改成功; 信息录入、删改结果(成功或失败);10系统IPO图IPO图是输入输出图,IPO是指结构化设计中变换型结构的输入(Input)、加工 (Processing)、输出(Output)。IPO图是对每个模块进行详细设计的工具,它是输入 加工输出(INPUT PROCESS OUTPUT的简称,在此可以简略的描述系统的主要算法。输入处理输出三概要设计1需求规定真正的ATM十对的用户是广大消费者,但本系统设计相对简单,数据库资料也比 较少,所以在应用上有一定的限制。但总体来说可以实现ATM的基本功能。2运行环境硬件平台:CPU Pentium 4 1.8

16、GHz内存:521MB以上软件平台:操作系统:Windows XP或 Windows 7数据库:MY SQL开发工具:JDK 2.1、NetBeans服务器:浏览器:IE 6.0及以上版本,推荐使用IE 8.03系统结构系统结构根据需求规定大致分为了以下几个模块。3.1总体层次结构图:3. 2业务流程图4人工处理过程该系统刚建立时,由于数据库的资料比较少,所以数据库管理员要输入大量的资 料信息,逐条输入到数据库表中,这是一个比较繁琐的工程,需要花费大量的人力物 力。同时还有对数据库的维护,都需要专业人士处理。5尚未解决的问题由于本系统属于小组业余制作的,所以无论在功能还是数据资料方面都远远不能

17、 同网络上的那些大型软件媲美,所以在以后的时间里我们会继续不断完善其功能。6接口设计6.1用户接口使用基于基本的用户界面,无论是前台的用户还是后台的相关操作都可以通过鼠 标点击完成操作,编辑框用于用户输入。6.2外部接口按Windows应用软件用户界面的规范来设计,使用以普通页面为主的用户界面, 简单易懂,方便用户操作。1)登陆页面模块设计与ATM员机打交道比较多的,也是大家对安全比较关心的问题:密码。所以第 一个界面就是要输入密码和卡号才能继续服务。2)主界面主界面共有取款、存款、转账、查询余额、修改密码和查看交易记录的 6项功 能,用户登陆后出现此界面,可以由用户根据自己的需要选择相应的功

18、能。 3)新品上 市页面:顾名思义,该模块是一些新上架的商品。3)修改密码在修改密码模块中,首先你必须要输入你的旧密码是否正确,否则就会报错。再 一个就是要两次输入你的新密码,且两次药匹配,否则也会报错,然后再重新回到修 改密码的界面4)余额查询需要通过用户所使用的账户及密码来进行余额的查询,因为先前进行过登陆, 所以这里不用再登陆,直接点击查询余额即可显示账户的实际余额。5)取款该模块是一个相对比较重要的模块,因为ATM机就要的功能就是取款业务,因 此在算法以及界面设计上花的功夫也是最多的,要根据功能需要中的要求做到用户顺 利地取款,用户选择取款金额,然后点击确定进行取款操作,数字按钮的个数

19、设计比 较大,方便用户操作。6)转账该模块中,只需要输入对方的账户号码以及转账金额就可以了,为了防止用户出错,我们还设计了密码确认这一项。7)记录查询可以按输入的日期进行交易记录的相关查询。6.3内部接口本系统使用MY SQL数据库驱动程序及接口。7运行设计7.1运行模块组合本系统无论是前台模块还是后台模块,在程序打开后,用户单击导航按钮分别进 入不同的子模块,再在这些模块中分别调用它们的子模块完成一系列的操作。7.2运行控制本软件控制流程:主页面运行,等待用户选择导航条,根据用户的选择调用不同 的模块。7.3运行时间各模块的运行时间比较短,不至于影响软件的质量,因此不予讨论。8数据库设计本系

20、统共设计了 2个数据表,分别为Trade表格和User表格Trade表格此表是用来保存交易记录。CardNo是这个表格的唯一标识,Amount是交易数额, TradeDate用来记录交易时间,TradeNo是用来标记交易号码,Bus in ess是交易业务, Pou ndage是手续费。User表格CarOoITserffam 皂Us erl&lFassvrordBalance卩2345&7891Z345&789JKK1123456刘622讯旳 41621198911hh212345623(HULL)(HULL)(NULL)OiULL)(NULL)(Mi)此表是用来保存用户信息。CardNo是

21、这个表的唯一标识,username是用户名, usertel是用户手机号码,ID是用户身份证,password是用户账户的密码,balanee 使用户账户余额。9系统出错处理设计在运行本程序过程中难免会遇到这样那样的问题导致系统无法正常操作,例如加 载数据库驱动程序失败、连接数据库失败、更新数据库失败等,那么怎么解决这些问 题呢?在这里我们列举一些常见的问题以及解决办法。9.1加载数据库驱动程序失败对于该问题,如果用户使用的是JDBC连接数据库,首先单看通过Class.forName()方法加载的驱动程序是否正确,然后查看WEB-INF/lib目录下是否存在msutil.jarmssqlser

22、ver.jar 、mabase.jar 文件。9.2更新数据库失败更新数据库失败一般情况下是因为进行添加、删除、修改、查找的SQL语句存在错误,例如,将from写成form,或者所写的字表名与实际要操作的字表名不一致等。10维护设计除了严格按照软件工程的科学方法开发软件、认真建立文档、编码阶段写详细的 注释外,没有特殊的维护设计。四详细设计1编写目的在前面所述的基础上该阶段正式进入 ATMS统软件的实际开发,本阶段完成系统 的详细设计并明确系统的功能与编码。2背景众所周知随着信息时代科技的飞速发展和随着全球金融行业的兴起,使用ATM取款机、计算机信息技术以及计算机科学技术的发展,给人们的生活带

23、来了天翻地覆的 变化,同时这些技术在人们生活中的运用,不仅提高了银行的业务处理能力,而且大 大的节省了人们取钱所花费的时间和价值;并且在有效防止了一些非法的业务操作, 对于一些复杂的信息,就能够充分的发挥它们的优越性。说明:a. 开发的软件系统名称:ATM系统b. 本项目的提出者:课程设计小组c. 开发者:d. 指导老师:3定义什么是ATM员机? ATM!员机使用与ATM机相似的图形用户界面,当用户在登录 界面输入给定的卡号和密码时,系统能登录 ATM柜员机系统,通过数据链接操作来达到 独立的客户与机器交互从而进行取款、存款、转账、查询余额、修改密码等业务办理的 目的。4参考资料1雍俊海JAV

24、A程序设计M北京:清华大学出版社,20062张海潘 软件工程导论M北京:清华大学出版社,20103耿祥义JAVA面向对象程序设计M北京:清华大学出版社,20105程序系统的结构本系统的总功能可以划分为6大块,就是转账、存款、取款、查询余额、修改密 码以及查看交易记录几项大功能(子系统)。6输入输出输入内容:账号,储户密码,取款额,转账卡号,转账金额输出内容:余额,输入密码提示,业务选择提示,取卡提示,交易记录7界面设计一个系统界面的好坏直接影响到用户的操作,界面设计要求样式美观、简单明了、方便易操作。我设计的界面主要分为窗体、菜单、按钮和文本输入框几个部分,分别执行相应的操作。7.1窗体设计窗

25、体整个框架使用Frame类构造,Frame有自己的外边框和自己的标题,创建Frame 时可以指定其窗口标题,我创建的窗口标题是各个不同功能的模块的名字,比如说查 询余额,还有取款等。向Frame窗口中添加组件使用 add()。例如:button1 = new Button( 存款);p1.add(butto n1);我所设计的窗口的主要结构的特点就是每个窗口都对应着一个特定的功能。比如 说报各种各样的错,还有各种查询余额、取款、选择服务等,所以它们都是由各种按 钮和文本框,标签组成的,而联系各个窗体成为一个整体的就是各个按钮的监听事件。 所以整个设计就趋向简单化了。为了定义各个按钮所对应的命令

26、和操作,首先需要将各个按钮注册给实现了动作 事件的监听接口 ActionListener的监听者,然后为监听者定义actio nPeformed(Actio nEve nte)方法,在这个方法中调用 e.getSource() 来判断用户点击的菜单子项,并完成这个菜单子项定义的操作。7.2主要模块设计登陆页面模块设计与ATM员机打交道比较多的,也是大家对安全比较关心的问题:密码。所以第 一个界面就是要输入密码和卡号才能继续服务。文本区调用public String getText()方法,获取用户想要的字符串。用来判断输入的密码和卡号是否正确,如果不正确的话,则弹出密码或卡号错误的警告框,并用

27、 dispose()关掉窗口。主界面主界面共有取款、存款、转账、查询余额、修改密码和查看交易记录的6项功能,用户登陆后出现此界面,可以由用户根据自己的需要选择相应的功能。部分代码 如下:private void jButt on 1MouseClicked(java.awt.eve nt.MouseEve nt evt) /GEN-FIRST:eve nt_jButt on 1MouseClickednew Zhua nZha ng(this).setVisible(true); this.dispose();修改密码在修改密码模块中,首先你必须要输入你的旧密码是否正确,否则就会报错。再 一个

28、就是要两次输入你的新密码,且两次药匹配,否则也会报错,然后再重新回到修 改密码的界面。在修改密码时用到的方法为:Stri ng patternStr=0-9a-zA-Z6;Stri ng n ewPwd仁jPasswordField1.getText();8主要模块界面设计登陆界面登录模块依然采用的是用户名和密码验证的方式,首先需要用户输入用户名和密 码然后点击确认进行验证,这里涉及到一组输入位数的问题,系统规定用户需要输入 18位的用户名和6位的密码。 主界面主界面的设计主要是设计了查询余额、取款、存款、转账、密码更改及退出按钮 等ATM勺一些标准操作界面。 存款界面此模块是用户登录成功后需

29、要存款时的操作界面,在这个界面中输入存款金额, 点击确定按钮后进行存款操作。 余额查询界面在此模块中,需要通过用户所使用的账户及密码来进行余额的查询,因为先前进 行过登陆,所以这里不用再登陆,直接点击查询余额即可显示账户的实际余额。 密码修改界面因为先前已经用密码登陆,故此处不需要用户输入旧密码,直接两次输入新密码 进行确认,然后系统会给出成功的提示信息。 取款界面取款模块是一个相对比较重要的模块,因为ATM机就要的功能就是取款业务,因此在算法以及界面设计上花的功夫也是最多的,要根据功能需要中的要求做到用 户顺利地取款,用户选择取款金额,然后点击确定进行取款操作,数字按钮的个 数设计比较大,方

30、便用户操作。 转账界面在转账模块中,只需要输入对方的账户号码以及转账金额就可以了,为了防止用 户出错,我们还设计了密码确认这一项。 记录查询界面CardNoAmountTrade DateDurnessPoundage022848341C2.23492010-12-151173522S4834I02 .34542010-12-1517 27622848 34T62.201 U-1丄让11.71622993162.12342010 12-166.17G22040341C2.12010-12-15存款0.005022S4834102.32010-12-150.01562284R341B24201

31、D-1 2-15D D26226634162.52010-12-150.03662264634162.62010 12-1 5疗款0.0362264034162.2002010-12-1 5即款1fi22R4R341fi2R990i2Q1 0-1 2-15存詁44站存款? 2?100002010-12-155062284034162.S9992010-12-16存款49 99502264834162.12342010-12-1 e6,17B22S4S341624563201 D-1 7-1672 S15622S4S3416Z,12342010-12-16铸出6.1 7622D4B34162.,

32、.200201 0-1 2-1 B取款19异常处理情况说明(1)打开、保存文件时的异常处理需要处理的异常:lOException(2)数据库访问时的异常处理需要处理的异常:SQLExcepti on(3)加载类时的异常处理需要处理的异常:ClassNotFindException ,当应用程序试图使用 Class类中的 forName方法通过字符串名加载类时,但是没有找到具有指定名称的类的定义。五代码(见附录)六测试1测试方案考虑到各种因素和条件的限制,我们决定采用黑盒测试方案(又称功能测试,其测试用例完全是根据程序的功能说明来设计的)。即我们不考滤所编写程序的具体结构,而是根据软件所需要的输

33、入数据的格式以及应该完成的功能,设计一些合法的测试用例和不合法的测试用例,特别是根据边界条件设计一些边界测试用例。以检查系统是否能正确的完成预订功能,得到希望的输出。或者是对不合法的输入和操作能够正确的识别和防御。黑盒法是最基本的测试法,主要测试软件能否满足功能要求。2测试项目应该注意到,在本系统中从总体上分为了转账、选择服务、存款、取款、查询余 额、修改密码以及查看交易记录模块设计。我们在设计测试用例的时候应该选择有代 表的,可以用最小的工作量完成对整个系统的测试。3测试方法3.1单元测试1)模块接口参数的数目、次序与变元的是否相一致;全局变量的定义和用法在各个模块中 是否也相一致。2)边界

34、条件做完第一次操作进行第二次循环操作时, 有没有出现使用上的错误;使用过大 或过小的数据值和控制量时,系统是否进行了错误提示,有没有导致软件卡死或电脑 死机情况。3.2集成测试1)模块测试第一步,对主控制模块进行测试,测试时用存根程序代替所有直接附属于主控制 模块的模块;第二步,根据选定的结合策略,每次用一个实际模块代替一个存根程序;第三步,在结合进一个模块的同时进行测试。2)回归测试主要是检测软件全部功能的代表性测试用例。3)确认测试主要用来检测软件是否与需求一致,并要通过调试和测试观察软件能否满足所 有的功能要求,能否达到每个性能要求。4测试环境与测试辅助工具测试辅助工具:Eclipse、

35、NetBeans、MYSQL JDK测试环境:Windows 7、windows xp5系统测试5.1登陆模块测试只要输入正确的用户名和密码即可完成登陆a. 没输入账号或输入数据库不存在的账号b. 密码输入错误或不输入密码测试用例期望结果实际结果不输入无法登录无法登录输入错误账号无法登录无法登录输入错误密码无法登录无法登录5.2取款模块测试因为该模块仅限于界面上的几个按钮可选,故测试范围小、简单5.3修改密码功能测试用户可修改用户的个人密码信息a. 修改密码成功b. 修改密码失败测试用例期望结果实际结果密码输入5位修改失败修改失败不输入修改失败修改失败输入6位修改成功修改成功5.4存款模块测试

36、用户可以进行一定数额与次数的存款。a. 存款金额一次不能多于10000b. 存款金额不能为负测试用例期望结果实际结果存入11000存款失败存款失败存入-1000存款失败存款失败5.5转账模块测试只要输入正确的用户名并进行密码确认即可完成此功能a. 没输入账号或输入数据库不存在的账号b. 密码输入错误测试用例期望结果实际结果不输入无法转账与期望相符输入错误账号无法转账与期望相符输入错误密码无法转账与期望相符5.6查询模块测试只要输入正确的日期查询区间即可完成查询a. 输入相同的日期(即查询区间为空)b. 输入错误的日期(即查询起始时间比结束时间晚)测试用例期望结果实际结果输入相同的日期提示错误无

37、记录输入错误的日期提示错误无记录6测试结果及评价功能和性能与用户要求基本一致,软件可以接受。但仍有部分功能尚未实现或进 行了更改,例如:1、原计划每天取款金额不超过5000元,但迫于代码复杂,没有实现;2、 交易记录查询模块,如果用户输入的起始时间大于结束时间(例如起始时间为2008 年,而结束时间为2004年),按照错误处理的原则,系统会自动报错,但是系统仍然会出现交易记录界面,只不过记录为空;3、原计划没有加入声音提示,但后来加以改进;附录:1、存款模块private void jButto n1MouseClicked(MouseEve nt evt) Stri ng yue = n u

38、ll;String patternStr=0-9*;try GetBala nee bala nce=new GetBala nce(); yue=bala nce.getyue();String numOfMoney=jTextField1.getText().trim(); if(num OfMo ney.equals()/金额为空请输入您需要存入的金额,错JOptio nPan e.showMessageDialog(this, 误,JOptio nPa ne.ERROR_MESSAGE);return;if(!numOfMon ey.matches(patter nStr)JOptio

39、nPane.showMessageDialog(this,请您输入数字,错误,JOpti onPan e.ERROR_MESSAGE);return;doublenum=Double.parseDouble( numOfMon ey)+Double.parseDouble(yue)-Double.parseDouble( numOfMo ney)*0.005;if(n um10000.0)JOptio nPan e.showMessageDialog(this,尊敬的客户您好,您的金额已超过我们公司可以受理的最大值,我们不能受理 ,错误,JOptionPane.ERROR_MESSAGE);

40、jTextField1.setText();return;String sql1=update user set Bala nce=+nu m+ whereCardNo=+Login.num+;int i=c on. stat.executeUpdate(sql1);if(i=0)/更改失败提示信息JOptio nPan e.showMessageDialog(this,系统更新失败,请检查您的输入是否正确,错误JOptionPane.ERROR_MESSAGE);jTextField1.setText();Date now=new Date();String date=new SimpleD

41、ateFormat(yyyy年 M月 d 日 ).format(now);String sql2=insert intotrade(CardNo,Amou nt,TradeDate,Busi ness,Po un dage)values(+Logi n.nu m+,+Double.parseDouble( num OfMo ney)+,+date.toStri ng()+,+存款+,+Double.parseDouble(numOfMoney)*0.005+);int f=con. stat.executeUpdate(sql2);if(f=0)/更改失败提示信息JOptio nPan e.s

42、howMessageDialog(this,系统更新失败,请检查您的输入是否正确,错误JOptionPane.ERROR_MESSAGE);jTextField1.setText(); catch (SQLExceptio n e) e. pr in tStackTrace();new SuccessfulTrade(log);this.dispose();private void jButt on 2MouseClicked(java.awt.eve nt.MouseEve nt evt) log.i nitComp onen ts();this.dispose();2、取款模块privat

43、e void jButto n1MouseClicked(MouseEve nt evt) num=100;Stri ng yue = n ull;double nu m2;try GetBala nee bala nce=new GetBala nce();yue=bala nce.getyue();nu m2=Double.parseDouble(yue)-num-nu m*0.005; if(n um20)JOptionPane.showMessageDialog(this,余额不足!,错误,JOpti onPan e.ERROR_MESSAGE);return;String sql1=

44、update user set Bala nce=+nu m2+ where CardNo=+Login.num+;int i=c on. stat.executeUpdate(sqll);if(i=0)JOptio nPan e.showMessageDialog(this,系统更新失败,请您原谅,错误JOptionPane.ERROR_MESSAGE);Date now=new Date();String date=new SimpleDateFormat(yyyy年M月 d 日).format (no w);String sql2=insert intotrade(CardNo,Amou

45、 nt,TradeDate,Busi ness,Po un dage)values(+Logi n.nu m+T+nu m+T+date.toStri ng()+,+取款+,+num*0.005+);int f=con. stat.executeUpdate(sql2);if(f=0)/更改失败提示信息JOptio nPa ne.showMessageDialog(this,系统更新失败,请检查您的输入是否正确,错误JOptionPane.ERROR_MESSAGE); catch (SQLException e) e.pri ntStackTrace();new SuccessfulTrad

46、e(log); this.dispose();private void jButt on 2MouseClicked(MouseEve nt evt) num=200;Stri ng yue = n ull; double nu m2;try GetBala nee bala nce=new GetBala nce(); yue=bala nce.getyue();nu m2=Double.parseDouble(yue)-num-nu m*0.005;if(n um20)JOptionPane.showMessageDialog(this,余额不足!,错误,JOpti onPan e.ERR

47、OR_MESSAGE);return;String sql1=update user set Bala nce=+nu m2+ where CardNo=+Login.num+;int i=c on. stat.executeUpdate(sqll);if(i=0)系统更新失败,请您原谅年M月 d日 ).format(now);JOptio nPan e.showMessageDialog(this, ,错误,JOptionPane.ERROR_MESSAGE);Date now=new Date();Stri ng date=new SimpleDateFormat(yyyyString s

48、ql2=insert into trade(CardNo,Amou nt,TradeDate,Busi ness,Po un dage) values(+Logi n.nu m+T+nu m+T+date.toStri ng()+,+取款+,+num*0.005+);int f=con. stat.executeUpdate(sql2);if(f=0)/更改失败提示信息JOptio nPa ne.showMessageDialog(this,系统更新失败,请检查您的输入是否正确,错误,JOptionPane.ERROR_MESSAGE); catch (SQLExceptio n e) e.p

49、r in tStackTrace();new SuccessfulTrade(log);this.dispose();private void jButt on 3MouseClicked(MouseEve nt evt) num=500;Stri ng yue = n ull;double nu m2;try GetBala nee bala nce=new GetBala nce(); yue=bala nce.getyue();nu m2=Double.parseDouble(yue)-num-nu m*0.005;if(n um20)JOptionPane.showMessageDia

50、log(this,余额不足!,错误,JOpti onPan e.ERROR_MESSAGE);return;String sql1=update user set Bala nce=+nu m2+ where CardNo=+Login.num+;int i=c on. stat.executeUpdate(sqll);if(i=0)JOptio nPan e.showMessageDialog(this,系统更新失败,请您原谅,错误,JOptionPane.ERROR_MESSAGE);Date now=new Date();String date=new SimpleDateFormat(

51、yyyy年M月 d 日).format (no w);String sql2=insert intotrade(CardNo,Amou nt,TradeDate,Busi ness,Po un dage)values(+Logi n.nu m+T+nu m+T+date.toStri ng()+,+取款+,+num*0.005+);int f=con. stat.executeUpdate(sql2);if(f=0)/更改失败提示信息JOptio nPa ne.showMessageDialog(this,系统更新失败,请检查您的输入是否正确,错误,JOptionPane.ERROR_MESS

52、AGE); catch (SQLException e) e.pri ntStackTrace();new SuccessfulTrade(log);this.dispose();private void jButto n4 MouseClicked(MouseEve nt evt) num=5000;Stri ng yue = n ull; double nu m2;try GetBala nee bala nce=new GetBala nce();yue=bala nce.getyue();nu m2=Double.parseDouble(yue)-num-nu m*0.005;if(n um20)JOptionPane.showMessageDialog(this,余额不足!,错误,JOpti onPan e.ERROR_MESSAGE);return;String sql1=update user set Bala nce=+nu m2+ where CardNo=+Login.num+;int i=c on. stat.executeUpdate(sqll);if(i=0)JOptio nPan e.sh

温馨提示

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

评论

0/150

提交评论