ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:1.01MB ,
资源ID:6869146      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6869146.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ATM机系统的设计与开发.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

ATM机系统的设计与开发.docx

1、ATM机系统的设计与开发武汉理工大学华夏学院课程设计报告书课程名称: 软件工程 题 目: ATM机系统的设计与开发 系 名: 信息工程系 专业班级: 计算机1112 * * * * 学 号: *09 * * * * 2014 年 7 月 4 日课程设计任务书学生姓名: 梁海传 专业班级: 计算机1112 指导教师: 钱小红 工作单位: 信息工程系 设计题目:ATM机系统的设计与开发课程设计的目的与任务:软件工程课程设计是软件工程课程的后续实践课程,本课程设计的目的是通过一周的实践训练,开发一个学生信息管理系统,使同学们经历一个软件从问题定义、分析、设计到开发的全过程和受到一次软件系统开发的综合

2、训练,以便能熟练掌握软件开发的完整生命周期过程及较全面地理解、掌握和综合运用所学的软件工程的知识。结合具体的学生信息管理选题开发项目,理解并掌握系统分析、系统设计、系统实施的主要环节和步骤以及软件文档的制作能力,进一步提高学生分析问题、解决问题,进行一个完整系统开发的能力。课程设计的内容与主要要求:本课题是一个用JAVA和MYSQL/SQL Server实现的ATM机软件系统的设计与开发,功能包括主界面的实现、身份认证、查询余额、取款、转账、密码修改、查询交易明细。要求系统的特色是界面简单明了,使用方便,系统有较好的网络适应性。要求学生根据所学的软件工程的知识,利用所学的Java语言/Vb语言

3、/C+语言+Mysql/SQL知识实现一个ATM机系统,并对实现后的软件进行测试。系统主要实现登陆、查询、取款、存款、同行转账、密码修改等功能。课程设计的步骤及时间进度、场地安排 本课程设计将安排在第20周, 教育技术中心211。具体安排如下:6月27日下午:下发任务;6月28日:查找资料,理清整理软件工程实验课所完成的学生信息管理系统需求分析、系统设计及相关模型的建立(通过visio/rational rose/powerdesigner建立系统的需求模型、数据模型及设计模型,具体包括数据流图、软件结构图、程序流程图、ER图、用例图、类图、时序图、活动图、状态图等);6月29日-7月2日:完

4、成学生信息管理系统的开发;7月3 日7月4日完成系统测试、报告的写作及答辩验收,并将以上工作整理成为课程设计报告,于7月4日下午前提交课程设计报告。课程设计报告撰写格式要求:1设计题目与要求2 设计思想3系统结构 4 数据结构的说明和模块的算法流程图 5 使用说明书(即用户手册)、运行结果、关键界面截图6 测试计划说明书、测试用例规格说明、缺陷报告7 自我评价与总结8 附录:程序清单,注意加注释(包括关键字、方法、变量等),在每个模块前加注释;要求层次清楚、整洁规范、不得相互抄袭,凡正文内容有整段完全相同者一律以抄袭论处。设计报告正文字数不少于0.2万字(不包括附录)。第1级(章)题序和题名用

5、黑体三号字;第2级(目)题序和题名用黑体小四号字;第3级(条)题序和题名用黑体小四号字;正文内容用宋体五号字(英文用新罗马体),多倍行距1.25。报告内容一律使用A4打印纸计算机打印,页码在页下居中标明。必须使用国家公布的规范字。页面设置:上空2.5 cm,下空2.0 cm,左空2.5 cm,右空2.0cm(左装订)。插图图面要整齐、美观,插图应与正文呼应,不能脱节。每幅插图应有图序与图题,图序编号要连续,图序与图题间空一格且要放在插图下方居中处。课程设计考核及评分标准课程设计考核将综合考虑学生考勤和参与度,系统设计方案正确性,系统设计和开发效果以及课程设计报告书的质量。总分按五级记分法记载最

6、后成绩:优秀(10090分),良好(8089分),中等(7079分),及格(6069分),不及格(059分)指 导 教 师 签 字: 钱小红 2014年 6月 27日1设计题目与要求 1.1 设计题目 简单的ATM机系统的设计与开发 1.2 设计要求ATM机系统的设计要求该系统界面简单明了,使用方便,有较好的网络适应性。利用我们所学的软件工程的知识, Java语言+Mysql/SQL数据库知识实现一个简单的ATM机系统,并对实现后的ATM机系统进行测试。该系统主要实现登陆、查询、取款、存款、同行转账、密码修改等功能。2 设计思想本系统主要包括管理员登陆和普通会员登陆的两个主体板块。此需求规格说

7、明书是系统开发者设计实现ATM机系统的依据,也是用户对最终软件系统进行功能测试和验收的依据。 本系统为Web应用的信息管理系统,目的在于可以让用户更方便、快捷的进行取款,存款,转账等操作,实现便利,人性化的信息交流平台,支持管理员的后台信息管理。各个角色的功能需求如下: 1.管理员登录在调研中了解到,用户想要使用系统,首先要有一个友好的用户注册界面。其次,用户需要经历登录验证过程,只有合法的拥有管理员身份的用户才可以使用系统中的管理功能。这样做可以防止非法用户登录并使用本系统,妨害数据安全。用户登录,通过系统登录验证,用户成功进入系统并开始使用其中功能。管理员可以进行会员注册,管理员注册,还有

8、系统的维护等。2.普通会员登陆,也是本ATM机系统的主要模块。主要是对用户的需求而设计的。用户登陆到系统后,可以进行取款,存款,转账,查看自己的账户信息(包括:账户id,账户密码,用户名,地点,银行余额),还可以查看自己的交易明细(包括:自己的ID,交易时间,转账用户的id,收入资金,支出资金)3.系统结构 3.1系统功能模块ATM的系统中总共设计了四个模块,分别是登陆模块、交易模块、查询模块、修改密码模块,总的功能模块图如下所示 图3.1 ATM系统功能结构图3.2数据流图的设计3.2.1 一级数据流图 主要体现了整个系统的一个宏观的模块,数据流的出口与入口体现。 图3.2 ATM系统一级数

9、据流图3.2.2 二级数据流图 主要体现了整个系统数据流的流向,及功能的基本模块化。 图3.3 ATM系统二级数据流图3.3系统流程图 本系统的总体逻辑结构的流程图,清晰的体现了整个系统的运行的一个流程。 图3.4 ATM系统流程图3.4 ATM机系统用例图 将上图的类图的一个实体化,将类实体化出对象,体现出对象可以做的事情,即可以实现的本系统的功能。 图3.6 ATM机系统用例图4 数据结构的说明和模块的算法流程图4.1数据库4.1.1实体联系图用户信息实体包括:用户账号、用户名、账户密码、用户电话、用户地址以及账户余额,将用户账号设置为主键。 ATM机系统的管理员信息实体包括:管理员账号、

10、管理员名称以及管理员登陆密码 ATM机系统的交易明细信息实体包括:交易时间、存款金额、取款金额、汇入账号、汇出账号。 图4.1实体联系图4.1.2数据字典 atm_user表是用来存储用户信息的,具体字段如下:表1 atm_user(uid,uname,upass,tel,addr,balance)表字段名数据类型可否为空描述uidVarcharNot null(主键)用户账号unameVarcharNull用户名upassVarcharNull账户密码telVarcharNull用户电话addrVarcharNull用户地址balanceFloatNull账户余额atm_admin该表主要是

11、用来存储管理员信息的,具体字段如下:表2 atm_admin(adid,adname,adpass)表字段名数据类型可否为空描述AdidVarcharNot null(主键)管理员账号AdnameVarcharNull管理员名称AdpassVarcharNull管理员密码atm_detail该表主要是用来存储交易信息的,具体字段如下:表3 atm_detail(euid,etime,esave,eget,uid)表字段名数据类型可否为空描述EtimeDatetimeNot null(主键)交易时间EsaveFloatNull存款金额EoutputFloatNull支出金额EuidVarchar

12、Null汇入账号UidVarcharNot null(主键)汇出账号4.1.3数据关联 图4.2数据关联4.2 模块的算法流程图 登录模块流程图 图4.3 登录模块流程图5运行结果关键界面截图5.1 登陆页面 登陆页面,有用户的输入账号密码的两个输入框,还有一个下拉框,进行不同身份的登陆 图5.1普通用户登录页面5.2 普通用户登录后的页面 用户点击登陆以后,通过数据库对比,判断用户的合法性,通过后就会进入该界面,否则继续停留在登陆页面。进入用户界面后,用户就可以看到以下不同的操作类型,通过点击不同的链接,可以实现不同的功能,以此来满足用户的不同需求。 图5.2普通用户登录后的页面5.3用户进

13、行取钱操作 点击“取款”便可以跳转到取款页面。通过数据库链接技术,用户在该页面取出的钱将会返回到数据库中去,减去相应的取款金额。 图5.4用户进行取钱操作5.4用户进行转账业务点击“转账”便可以跳转到转账业务中去。通过对自己的账号,转账方的账号,还有姓名的对比,再输入转账金额就可以转账了,转账之后,转账双方都会添加一条交易明细,记录此次交易内容。 图5.5用户进行转账业务操作 5.6查询用户自己信息 点击“查询信息”后便可转到查询页面,用户可以查看自己的信息,主要是可以看到自己的银行余额。 图5.6查询用户自己信息 5.7查询交易明细 点击“查询明细”之后便可以看到自己的交易的信息明细了,主要

14、包括交易时间,支出,收入,转账账户等。如果是取钱,则收入就会有信息,支出为0,转账为null。其他操作以此类推,如存钱,转账等操作。具体页面如下: 图5.7查询交易明细 5.8管理员登录页面 当管理员登录成功后便可以转入管理员的界面。该界面主要可以有以下可选操作:管理员注册,普通会员操作,系统维护。实现结果如下:管理员注册新用户 点击“注册新用户”便可进入注册用户的界面。开户功能只能是管理员拥有,其他成员没有此项特权。注册的用户提交后便可以在atm_user表中记录该用户的信息,而起始余额默认为0。 图.5.9管理员注册新用户6 测试计划说明书、测试用例规格说明、缺陷报告 6.1功能测试计划。

15、 由于系统是刚刚完成,存在很多内在的问题需要我们去发现,并完善。系统测试也是软件的一个生命周期。整个测试计划主要包括:登陆测试,取款与存款测试,转账测试,修改密码测试,注册用户测试,注册管理员测试,查询信息测试,查询明细测试。 通过以上先后循序完成对这个系统的测试。 6.2 测试用例规格说明 6.2.1取款测试。对取款金额进行测试,测试用例如下:-100, 取负数,系统便会报错,取款金额只能为正。0, 取款为0的话,系统就不会做任何操作。Null, 因为钱的数据类型我们设计为float类型,空的话会报错100, 这是正常的取款数额。大于余额的数, 当区的数大于余额,这是不符合该ATM系统的原则

16、的。通过以上测试用例的使用,发现,系统的实际结果与理想结果一致,系统的取款模块正常。以下是对于小数取款的用例截图: 图6.1小数取款的用例截图 6.2.2转账测试 对转账进行测试,测试用例如下: 己方账号为空,转账失败,系统通过数据库没有查到转账方的账号会报错 对方账号为空,转账失败,系统通过数据库没有查到入账方的账号会报错 转账金额为null,转账失败,数据类型不一样, 转账金额为-100,转账失败,转账金额只能为正 错误的账号(数据库中不存在),转账失败,不是本银行的账号不能转账 通过以上测试用例的使用,发现,系统的实际结果与理想结果一致,系统的转账模块正常。6.3缺陷报告通过以上的测试计

17、划说明书的测试后,系统基本上完善,但是,通过不断的运行该系统,还是发现了一个bug没有修复,时间和精力有限未能完善。该缺陷是:系统管理员在点击维护系统后,这个系统应该都是那个维护系统的页面。普通用户进入系统也会进入该维护界面,但是,我们在其他机器上普通会员还是可以正常的进行操作。预期完善思路:当管理员点击系统维护的超链接后,就会返回一个结果到相应页面的 servlet中去,然后设置有一个全局变量flag,将之放入到session中去,使每个servlet都可以访问到flag,平时flag为ture,当管理员点击系统维护后,flag便会改为false,然后当用户登陆时就通过判断该flage,通过

18、相应结果跳到相应的界面上去。7 自我评价与总结在实验的过程中,我掌握了很多JSP的编程知识,还有myeclips开发环境的熟悉,到界面设计,服务器servlet,javabean的创建等等,还有数据库mysql的创建,表格等等。并对这种成熟并广泛应用的技术进行了深入的学习。设计的过程也是一个再学习的过程,在遇到问题的时候我尽量自己想办法解决,这在很大程度上激发了我们的自学能力;在没有办法解决的情况下,我们也通过团队合作进行不断地讨论,最终将结果讨论出来。以往我们曾经有过多次设计的体会,但只是设计一个模块或一个小系统,而这一次课程设计是综合所学的jsp,java和html的知识来设计一个适合运行

19、的ATM机系统软件。我们在设计中经常出现一些问题不知该如何解决,在此时通过团队合作的作用帮助我们解决了很多问题,我们遇到问题时,一起讨论,进行XX查找答案等,最终解决问题。而在课程设计中,我们也给每一个成员分配了不同的任务,将功能单一的模块分给一个人。当然每个人负债了几个板块的实现。这样我们在时间的过程中,不需要考虑其他功能的实现了,是要认认真真完成自己的任务就行了。在任务都完成的最后阶段,我们团队将每个认做的内容一起整合起来,最终将我们的ATM机系统实现完成。在设计的过程中增加了于实际接触的机会,不仅培养了我的自学和编程能力,让我在即将离开学校进入社会之前有了一定的资本,提高了我与人沟通的能

20、力。8 附录:程序清单 package com.atm.DAO;import java.sql.Date;import java.sql.ResultSet;import java.sql.SQLException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.List;import com.atm.modelbean.Detail;import com.atm.modelbean.User;import com.atm.toolbean.DB;public class UserDAO

21、 SimpleDateFormat myformatter=new SimpleDateFormat(yyyy-MM-dd HH:mm:ss); java.util.Date mycurrentime=new java.util.Date(); String mycurrentdate=myformatter.format(mycurrentime); DB db = new DB(); public UserDAO() db.loadDrive(); db.getCon();db.getStm(); / 管理员登录 public boolean loginadmin(String adnam

22、e, String adpass) / TODO Auto-generated method stub boolean flag = false; String sql = select * from ATM_admin where adname= + adname + and adpass= + adpass + ; ResultSet rs = db.getRs(sql);int id = 0; / 判断rs中是否有数据 try while (rs.next() / 有数据,则取出数据 id = rs.getInt(adid); catch (SQLException e) / TODO

23、Auto-generated catch block e.printStackTrace(); if (id 0) flag = true; return flag;/ 普通用户登录 public boolean login(String adname, String adpass) / TODO Auto-generated method stub boolean flag = false; String sql = select * from ATM_user where uname= + adname + and upass= + adpass + ; ResultSet rs = db

24、.getRs(sql); int id = 0; / 判断rs中是否有数据 try while (rs.next() / 有数据,则取出数据 id = rs.getInt(uid); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); if (id 0) flag = true; return flag; /查看个人信息通过用户名和密码查找 public List findselfinfo(String adname, String adpass) / TODO Auto-generated

25、 method stub List list = new ArrayList(); db.loadDrive(); db.getCon(); db.getStm(); String sql = select * from atm_user where uname= + adname + and upass= + adpass + ; ResultSet rs = db.getRs(sql); try while (rs.next() String uid = rs.getString(uid); String uname = rs.getString(uname); String upass

26、= rs.getString(upass); String tel = rs.getString(tel); String addr = rs.getString(addr); float balance = rs.getFloat(balance); User u=new User(); u.setUid(uid); u.setUname(uname); u.setUpass(upass); u.setTel(tel); u.setAddr(addr); u.setBalance(balance); list.add(u); catch (SQLException e) / TODO Aut

27、o-generated catch block e.printStackTrace(); return list; /通过用户名和密码获得用户账号 public String getUid(String uname,String upass) String uid = null ; String sql=select * from atm_user where uname= + uname + and upass= + upass + ; ResultSet rs=db.getRs(sql); try while(rs.next() uid= rs.getString(uid); catch

28、(SQLException e) / TODO Auto-generated catch block e.printStackTrace(); return uid; /修改密码 public boolean updatePassword(String id,String upass) / TODO Auto-generated method stub boolean flag=false; String sql=update atm_user set upass=+upass+ +where uid=+id; boolean rs=db.upRs(sql); if(rs) flag=true

29、; return flag; / public boolean opearateMoney(String oper,String uid,float money) String sql=null; String sql1=null; if(oper.equals(save) sql=update atm_user set balance =balance+money+ where uid=+uid+; sql1=insert into atm_detail values(+uid+,+mycurrentdate+,+money+,0,); if(oper.equals(get) sql=update atm_user set balance =balance-+money+ where uid=+uid+; sql1=insert into atm_deta

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1