JAVA课程设计网吧管理系统98638.docx

上传人:李司机 文档编号:7179835 上传时间:2024-06-29 格式:DOCX 页数:21 大小:152.52KB
返回 下载 相关 举报
JAVA课程设计网吧管理系统98638.docx_第1页
第1页 / 共21页
JAVA课程设计网吧管理系统98638.docx_第2页
第2页 / 共21页
JAVA课程设计网吧管理系统98638.docx_第3页
第3页 / 共21页
JAVA课程设计网吧管理系统98638.docx_第4页
第4页 / 共21页
JAVA课程设计网吧管理系统98638.docx_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《JAVA课程设计网吧管理系统98638.docx》由会员分享,可在线阅读,更多相关《JAVA课程设计网吧管理系统98638.docx(21页珍藏版)》请在三一办公上搜索。

1、JaVa课程设计指导书(学生版初稿)第一章网吧计费管理系统目标1.1 背景介绍业务背景技术背景1.2 需求分析功能需求分析业务对象分析验收测试要求1.3 系统设计总体设计具体设计1.4 系统实现1.5 小结1.6 展望第一章网吧计费管理系统学习目标:能运用JaVa集成开发环境,运用SWing设计图形界面,运用JDBC访间数据库,驾驭事务处理编程,了解简洁两层C/S项目的开发及荷洁面对对象程序的设计过程,发展基本的团队协作开发实力。学习寄语:虽然本项目并不是一个商业项目,其产品也不能用来赚钱,但从中你可以学到实际开发中的很多阅历和技巧,获得种“学有所用”、“学有所得”的成就感,同时赢得老师和同学

2、(同事)对你的特别敬重.在此项目的学习中,你不但是个学生,还是一个职业人,将与同事一起尽全力完成你所要做的工作,并再次险证“天道酬勤”的真理。我们的信念是:“不抛弃,不放弃你的变更和收获是老师真诚的期盼。1.1 背景介绍业务胃景“海之星”网吧,是个小型网吧,以前是人工记帐,现须要开发个简洁的网吧计费管理系统.原人工管理的主要过程如下:客户在门口服务台,出示上机卡,若是新客户则先发新卡;管理员先杳询是否有空机器,若有则依据上机卡号查到该卡对应的记录(账薄),若有余额O5元),则安排一个空闲的机器号给客户,客户依据机落号对号入座,管理员登记客户卡号、上机机器号、上机时间。客户下机要到门口的服务台,

3、恳求下机,管理员依据当前时间、上机时间及费率计免出本次上机费用,并记录,同时将费用从卡余额中扣除,若费用不够则需充值。原手工系统主要有如卜缺点:1手工记帐,管理员工作量大,且易出他2超时超费运用不能刚好发觉。因此须要开发个简易计费管理软件,取代人工记帐方式,由软件统一管理记录上下机、计费、上机卡、机器状况,供应简洁统计功能,超时超费提示功能等。技术背景本系统要求运用java技术开发,运用数据库TiiACCESS,SQ1.Server)保存数据,集成开发环境可运用支持可视化GUl界面设计的主潦工具(如eclipseanibeanjbuilder).开发者应有java程序设计语言、SWING基本G

4、Ul组件、文件运用、JDBC存取数据库、运用种集成开发工具的基本学问和技能。系统采纳两届C/S体系结构,C端负责通过GUl与管理值交互、处理业务逻辑及存取数据庵,S端主要是数据库系统。系统分析设计主要采纳面对对象的分析设计方法。友情提示,对项目有了个最基本的相识后,是不是马上打算大干场?是否要何一问他不值得干?能不能干?商业项目一般可以从经济性、技术性、法律社会等方面进行可行性分析,但本项目作为一个学习型项目明显无利可图、技术也欠缺(事实上技术正是要学习的东西)、好在项目是合法的。那是否接着?当然!因为本项目的目标不是在合法的前提下获得最大利涧,而是习得学问和技能,只要你情愿,就可以接着进一步

5、了解“网吧计费管理系统,1.etsgo!1.2 需求分析功能需求分析系统需求分析的主要任务是从用户角度考察系统应具有哪些功能及非功能性需求,对于网吧计费管理系统,用户主要是指系统管理员,系统的主要功能是:号术、上机、卜机、卡管理(发卡、IM卡、充值、杳询)、机器管理(添加机器、删除机器、查询状态、修改状态),统计功能(日、月协用统计),口令管理(添加用户、SH除用户、修改口令),参数设置(时段费率),运用帮助。主用运用流程是:管理员登录,依据客户恳求上机,依据客户恳求下机。主要功能的用例(USecase)描述如下:一上机1管理员输入空闲机器号,上网人输入口令、卡号,恳求上机.2系统验证卡号,检

6、杳卡中余额,卡状态3系统获得当前系统时间作为上机起先时间4系统修改该机器的运用标记为“在用”,卡标记为“在用工5系统记录上机信息卡号、机器号、上机时间)6系统提示上机胜利若1中无空闲机器又恳求上机的,系统提示“没用空闲机器”,2中卡验证未通过,提示“无此卡号”,余额不足,提示“余额不足”,卡状态为“在用”,则提示“不能一卡多用二下机1管理员选择被运用的机器号,恳求卜机2系统获得系统当前时间作为下机时间:3系统计算费用:4系统显示应缴费用5系统记录卜机时间和此次费用:6系统从卡中扣费,修改卡状态为“空闲”:7系统修改该机器的状态为“空闹”:8系统显示本次上机记录信息,提示下机胜利三登录1管理员输

7、入用户名和密码,恳求进入系统2系统验证用户名和密码3系统显示主界面若一次验证不通过,则提示再输入一次,仍不通过则系统退出。四卡维护卡有三种状态:停用、空闱、在用.发新卡:I管理员输入卡号(保证卡号唯一)2管理员输入卡初始金额3上网人输入用户名、口令4管理员恳求添加新卡5系统保存卡号、金额、用户名和密码,状态为“空闲”6系统提示添卡胜利,显示卡号及金额,以便核对。7管理员将系统生成的有卡号、用户名的纸卡给上网人。充值:1管理员输入卡号2系统显示该卡信息(卡号、用户名、余额、状态)3管理员核对后,输入充值金额4系统计葬并保存该卡总金额5系统显示充值后的卡信息(卡号、用户名、余额、状态)。查询卡信息

8、:1管理员输入卡号或恳求察看全部卡信息2系统隹询卡信息(卡号、用户名、余额)并显示删除卡:1管理员输入卡号2系统查询卡余额及状态3若余额已结清且状态为“空闲”,则将该卡信息删除4系统提示删除胜利若有余额或“在用”则不能删除五机器维护机器有三种状态:停用、空闲、在用。添加机器:1管理员输入机器号,恳求添加2系统5佥证机器号是否重包3系统添加机器记录信息(机器号、状态为“空闲”)4系统提示添加胜利删除机器:1管理珏输入机器号,恳求删除2系统删除相应机器信息3系统提示删除胜利查询机器状态:1管理员输入机器号或恳求察看全部机器信息2系统杳询并显示机器信息(机器号和状态)并显示六管理员口令管理添加用户1

9、管理用输入用户名、密码和确认密码,恳求添加2系统验证用户是否是新用户,两次输入的密码是否相同3系统添加用户、密码信息4系统提示添加胜利删除用户1管理员输入用户名、密码2系统验证用户名、密码是否正确3系统删除用户名、密码记录4系统提示删除胜利修改密码1管理员输入用户名、密码,恳求修改密码2系统验证用户名、密码是否正确3管理m输入新密码、及确认密码4系统保存新密码5系统提示修改胜利七统计管理1管理房输入起始时间(年、月、日),结束时间,息求按日、月、年汇总2系统查询上网记录,计郭、统计出时间段的总费用、人次、总上机时间等信息。3系统显示上述信息八参数管理时段费率设置:O系统显示当前设置I管理员设置

10、时间段(时、分)及对应的费率,恳求保存2系统保存设理3系统提示保存胜利超时报警定时器间隔设置九超时超费报警1设置定时器为周期触发方式,触发间隔由参数获得,默认为30分钟2定时器到时,系统杳询当前正在上机的记录,计算其上机时间及费用,计算其卡中余额是否低于最低数用。3系统提示已超费卡号、机罂号,及超的费用本系统除r功能性需求,还有易用性、牢靠性、平安性等耍求,可以在实现上述功能性需求的堪础上,进一步实现完善非功能性要求。友情提示,本文运用“用例”法分析功能性需求,属于面对对象分析(OOA)法,其实质就是从用户角度,通过视察、与用户交谈等方式,记录下用户希望如何运用系统,系统相应须要实现哪些功能。

11、分析用户需求-般由系统分析人员完成,其核心实力是娴熟驾驭业务领域的学问和沟通的技巧,需求分析的爆大难点在于需求的可变性,最令开发人员气馁的英过于辛苦设计实现了一个功能,用户突然说不须要这个功能了,另一个常见的问题是隐藏性的需求(行业惯例、日常规则)常被用户和分析人员忽视。不同的需求对于客户而言至要性是不同的,一般须要对需求划分优先级,优先级高的优先设计实现。你能否从上述一到九大用例描述中找出哪些用例是高优先缎的?1.2.2 业务对象分析依据上面的主要用例描述,可以分析出系统的主要业务对象,它是设计阶段核心类图的基础(不确定对应),这些对象必需实际存在,其行为和属性应与问题领域相关:1上网卡:主

12、要维护上网卡的相关信息。卡号、密码、余额、卡用户名、卡状态(在用、空闲、停用)2机器:主要维护上网吧计算机的相关信息。机器号、运用标记(在用、停用、空闲)、备注3费用记录:记录每次上机的信息。记录编号、卡号、机器号、起先上机时间,下机时间、费用4费率记录:起始时间、终止时间,费率5管理历:利用1-4完成各种业务操作。1.2.3 验收测试要求用户要求开发产品,产品开发完成后,须要交付用户验收,验收要求经常是合同中的重要组成部分,这是一个必经的环节,主要.思路是依据用户运用的过程测试系统,越频繁运用的功能越要多测试。本系统功能性需求验收测试的基本要求如下:前置条件:1除占令表有初始用户名和密码外,

13、各库表为空。2程序安装配置正确,能正常启动运行。-初始化数据1启动程序,进入“卡维护”,选“发新卡”,输入条数据记录,退出,进入“信息阅读“,查看记录是否已被正确加入:退出“信息阅读”,再进入“发新卡”,连续发3张卡,其中有张卡余额为0:再进入“信息阅读”,查看记录是否已被正确加入。2同理按1,添加机器。3进入“费率维护”,设置费率。二功能测试1上卜机测试。进入“上机”,视察上机界面,有无可用机器,按说明操作上机,连续上机3次,第次正确输入,其次次输入不存在的卡号,第三次输入错误口令:进入“下机”界面,看有无正确的上机,连续下机两次“视察输出信息界面.看内容是否正确(金额、卡号,时间,费用)。

14、已下机器是否已被同步从上机下拉表中消除。再进入“上机”,比对可选空闲机蹲是否正神,输入已上机用户的卡号,视察结果:输入卡金额不足的卡号,视察结果:不输入任何值,干脆按确认的结果.2统计测试,进入“统计”功能,按日,月,年查询统计,与库中实际数据比对,不同日、月、年分别查2次3进入“卡维护”,进入“卡充值,输入余额不足卡号,给卡充值,进入“信息阅读”,查看卡充值是否正确,并以此卡号上机:再进入“卡维护”的“信息阅读”,查看记录:然后选“删除卡”,连续制2张卡,应不能捌除在线卡,并能标识出卡余额,以便消帐:进入“信息阅读”,查看记录是否已被正确删除。正在上机的不能被删除。选修改密码,输入正确的用户

15、名、口令,修改成新口令:进入“信息阅读”,查看口令是否已更改:进入“上机”,以新口令上机。4同3测试“机器维护”中的删除机器功能,应不能删除在线机耦5测忒“纨率维护”,退出程序,重启动,进入“费率维护”,修改费率,上卜机,视察费用计算结果。6测试超时报警功能:发一张新卡,初始额刚达到最低标准,以此卡上机,为缩短超时等待时间,可设置定时耦间隔为1分钟,等待2分钟,看系统是否能正确报警。7测试帮助功能。依据帮助说明运用系统,验证帮助说明的正确性。友情提示:测试是保证程序质量的基本手段,一般可分为单元测试、集成测试、系统测试、验收测忒,其中验收测试一般由用户在真实的运行环境卜测试系统,是用户确认系统

16、符介要求的关键环节,你开发的系统必需通过上述量基本的般收测试.并不是整个系统完成后才可以进行上述测试,完成相应模块后就可以有针对性地测试,验收测试的内容经过分解后是单元测试、集成测试、系统测试的基木依据,测试工作并不是从编码时才起先的,在需求分析阶段就已绽开(如依据用例提出验收测试要求)。有的IT公司内部的质量部门在产品正式交付用户前,也会做类似的测试,以保证用户险收时一次通过。1.3系统设计总体设计一系统体系结构一般要确定系统的体系结构,主要模块,系统运行环境(如操作系统、数据库),开发平台及语言。本系统主要运行在windows系列平台上,数据库运用ACCESS,运用eclipse开发系统。

17、采纳两层C/S体系结构。系统体系结构图如下图所示:图形界面SWING客户端业务逻辑SQ1.数据库ACCESS数据访问(JDBC)图1系统体系结构客户端分3U,图形界面U(采纳java的SWlNG设计)负费与用户交互,业务逻辑层则依据用户的恳求执行各种功能(如上、下机等),数据访问层主要依据业务逻辑层的恳求通过JDBC/SQ1.存取数据库。数据库运用ACCESS,可依据状况运用其他数据库(如SQ1.SCrVer),客户端基本不做修改,仅有的少量修改也只在数据访问乂。客户湍与服务湍在物理上可以运行在一台机器上,也可以分别运行在不同机器上。二系统功能模块及主要类系统的主要功能模块如图2所示:主模块图

18、2系统模块图可据此设计菜单,划分模块。系统主要类图如卜.:总类图的画法基本遵循视图层、业务逻辑层、数据模型及数据库访问层的臼上而卜的依次,其中视图层中的视图因为较多未画出,主要的业务逻辑限制类是BUSineSSManager,用户的上下机恳求,通过界面的事务机制,在事芬处理程序中会调用BUSineSSManagCr中的方法,然后再调用XDAo类方法,在XDAo类中一般先通过DBConnection获得连接,再通过JDBC/SQ1.访问数据库.CardComputerRecordManager类是“值对象”,主要是存放相应的属性,方法也是sctXgctX类方法,“值对象”常作为参数在各种方法中传

19、递。三阅历共享1客户端基本采纳三层结构(视图YieW、限制Controller、模型Mode),层与层间耦合性较小,提高了整体的可扩展性、可重用及抗变动实力。缺点是要求预先设计好,对设计水平要求高,不过旦形成模式,养成习惯,能“照葫声画飘”.也是提离设计水平的捷径.2运用XDM)类将业务逻辑和数据库访问陶齿,只要XDAO对上供应的接口不变,以后数据库存取代码发生变更也不会影晌上层代码(如业务逻轼层)。接口中的参数主要是“值对象”,这样即使CardCxnputerRecordManager类中的属性发生变更,由丁“值时象”的封装,对接口的影晌也不大,缺点是假如“值对象”本身很大,而又只用到其中很

20、少的屈性,则对性能和内存:奢侈较大。与此对应,比较一般的设计是在事务处理代码中就实现业务逻辑(如险证、计修、上卜机)、获得数据库连接并通过JDBC访问数据库,这样做的好处是实现较简洁、符合般过程性思维(常用于初始的或原型系统的开发中),缺点是代码一旦须要修改.则改动较多、且简洁出错,代码应用性差。3运用DBConneCtiOn类统一完成连接的获得和择放,好处是连接部分代码可重纪运用.假如连接参数(如连到不同的数据库)改动,只需更改DBCOnneCtiOn类中的相关参数属性(当然更好的做法是将这些连接参数放在配置文件中,这样可以只修改配巴文件,无需修改程序),另外还可以为了提高性能扩展成“连接池

21、”,同时对运用它的XDAO类没有影响。友情提示:假如你不能理解上述描述,也不必担忧,依据你的直觉去开发系统,假如你一帆风顺,那么你确定是这方面的天才,假如遇到各种问题,上述的文字可供参考,同学之间可以相互沟通,老师也乐意为你效劳,勤思、善向、实干是快速提高水平的不二法门。具体设计具体设计主要是关注模块一级的设计,一般有界面,核心.算法及处理流程,数据库表(表、属性及表间关系)的设计。由于模块较多,下面选择几个典型模块分析设计,其中“阅历共享”,揭示难点的1可时,也介绍了相应的解决方法及设计阅历。1数据庠设计数据库设计主要是依据分析和概要设计中发觉的对象和类,确定哪些对象须要长久保存,然后将对象

22、属性及对型间关系转化成关系表。经过分析Card,Computer,RecordsMunger须要保存在数据库中,将COnfig参数配置信息保存在文件中。其中Card、ComputerReCOrd的关系如下图所示:图长久对象属性及关系图一条Record记录必有对应的一个Card及一台Computer,对于未用机器及卡,则没有对应的记录。将其转换为关系表时,关键是在ReCOrd中设汽CARDlD,COMPUTERID作为外提指向Card和Computer.共设计出四张表:1 .CRD表名称编码数据类型卡号ID(主键)VRCHR(20)用户名USERNAME(非空)VKCHR(20)密码PASSWO

23、RD(非空)VRCHR(15)卡状态STATUS(非空)INTEGER余额BA1.ANCE(非空)DOUB1.E2 .COMPUTER表名称编码数据类型机器号ID(主键)VARCHR(10)状态STATUS(非空)INTEGER备注NOTESVARCHAR(200)3 .RECORD表名称编码数据类型记录号ID(主键)VRCHR(20)CARDlD(非空)VRCHR(20)机器号Complterid(非空)VAKCHAR(10)上机时间BEGINTIME(非空)DATEF机时间ENDTIMEDATE上机费用EEEDOUB1.E4 .Manager表名称编码数据类型用户名USERNAME(非空)

24、VARCHR(20)口令PASSWORD(非空)VARCHAR(20)阅历共享:数据库设计一般相对独立,采纳的主要方法是将对象模型转化为数据库关系模型,也可以采纳传统的设计出E-R图,再定关系表的方法。即使是简洁数据库的设计若从好用角度动身也须要考虑多方面的问题.首先基本的是确定有哪儿张表,表间关系,然后是表中的字段,比较麻烦的是确定字段的约束(主键、非空等),字段数据类型,范式的调整等,因为此时会考虑到存储空间、性能、易编程、数据版量等方面的因素。如定义“用户名”字段要有多大,就须要在存储空间节约和适应性间权衡,定义的较小,遇到长名字的状况,程序不能适应:定义的过大,对于大多数状况可能又会奢

25、侈存储空间,一般宁愿定义的大些,以空间换取适应性。再比如确定哪些字段为“非空”,从编程角度看必需保证“非空”字段有值,这会增加险证“非空”字段程序的代码用,对用户的约束也加强,有些值要求用户必需输入,如口令就不能为空。但若允许字段可以为“空”,如机器状态字段,则机器的当前状态就可能难以确定,影响数据质地。一个基本的方向是“约束”多,则编程的代码量会变大,性能会下降,但数据的质量会得到提高。在Record表中“下机时间”和“上机费用”没有定义为“非空”,是因为上机时这两项不能确定,只能填写部分上机记录信息。一般数据库表结构的变动对于程序的影响较大,在程序设计上可通过xDO类尽量消减变动的影响,在

26、实现阶段网避开对数据库结构大的改动。.2上机模块设计-界面设计界面设计主要是依据功能要求构建界面,界面中的每个元素均应有其作用,以支持功能的实现,界面设计还要考虑到界面风格的一样、符合一般WindOW应用GUl的规葩。设计应简洁好用,避开在细微环节上(如字体、颜色)耗费时间。上机模块参考界面如图4所示:图4参考界面二上机流程1初始化(1)显示界面(2)获得空闲机器(3)将空闲机器号加入卜拉列表2上机处理过程:(1)验证机器号、卡号、密码是否为空(2)依据卡号、密码获得卡对象(3)若卡对象为空则说明卡号或密码错,给出提示“卡号或物码错”,要求重输(4)推断卡状态,若卡正在运用则给出提示“不能一卡

27、多用”(5)计算卡中余额,若低于设定值,则提示“余额不足”(6)修改卡状态为在用,修改机器状态为在用,获得上机时间,将上机时间、机版号、卡号保存到记录对象,再通过RoCOrdDAo在库中添加条新上网记录.(7)提示上网胜利三阅历共享I上机处中的第6步要在个完整的“事务”中完成,对卡、记录、机器数据的更改添加要保证要么全部更改胜利,耍么都不更改,以保证数据的一样性。2费用计算是按时段计卯的,须要考虑跨时段费用如何计算,另外为了降低困难性,可规定时段只能为三段,时间精确到分,费用精确到角。3记录ID如何保证唯口.自动增长。基本有两种:是编程限制,插入新记录前获得当前的大记录号,通过selectma

28、x(id)fromrecord,加1后,将ID及其它信息写入,若有多用户访问该表,则上述过程要放在一个“事务”中,二是利用关系数据库供应的“自增字段”特性,将ID设置成“自增字段”,由数据库负成每添加条记录就将ID加1.3下机模块设计-界面设计下机模块主要依据用户恳求(报出卡号/机器号),管理员依据卡号/机器号执行下机操作,参考界面如图5所示,大的文本空白文本框用于显示下机记录信息.当然还有其它的设计方式,如显示当前上机的全部记录信息,选中其中一条执行卜机操作。图5下机模块界面二下机流程1管理协输入机器号或卡号,恳求下机2系统获得机器号,据机器号获得相应记录对象,要处理机器号错误的状况3系统依

29、据记录对象获得该记录对应的卡对象4系统计算费用,并比较卡对象余额,若不够则提示“余额不足并显示余额5系统从卡中扣费,修改卡状态为“空闲”:系统修改该机器的状态为“空闲”;系统更新记录信息(卜机时间、附用)。6系统显示本次上网完整的记录(Record)信息及卡余额,并提示下机胜利注:下机处理4中修改三表的操作应作为一个“事务”完成.4发新卡模块设计一界面设计发卡须要输入卡号、用户名、密码,金额,参考界面如下图所示.界面设计布局应简洁一样,从用户友好性动身,供应了输入提示,增加了“确认密码”,以提示用户记住密码,输入的密码用*号显示以提高平安性。虽然有了提示但在代码中仍需对输入进行脸证,如金额不能

30、为负值,以避开误输及恶意输入。当然从口令强度考虑,要求密码只输入数字和字母又是不妥的,相反可提示用户输入特别字符及输入的最小字符数。所以此界面虽简洁,但已涉及到界面的视觉风格、用户友好性、平安性考虑。图发卡界面二发卡流程1系统从界面获得全部信息,依次推断是否为空2推断金额是否大于O3推断密码和确认密码是否一样,4推断密码和用户名是否在最小及最大长度之间5推断卡号是否有效(唯一)6生成Card对/,恳求CardDaO向Card表中添加一条新记录7提示卡添加胜利,并显示卡号和金额三阅历共享1输入数据的5佥证是难点,5佥证输入数据是保证程序车兼性的重要措施,例如:若不限制用户或口令长度在相应数据库表

31、字段设定的葩围内,一旦将超长的用户名写入数据库则会产生数据被截断或数据库异样,而这完全可以在用户输入时予以限制.验证输入数据的难点之在于在验证的代码量和限制大多数常见错误间取得平衡,过多地验证代科无疑会增加编码盘和难度,但没有验证或很少验证又使程序牢靠性太差而难以好用。但也有一些常规阅历可循,如是否限定字符数据的长度,验证是否为空、数字数据是否在范围内等,有些输入控件供应了限定输入长度等功能,应当充分利用以削诚编码量。一般险证可遵循如下策略:输入前提示如何输入,输入后脸证,5佥证不通过则再提示(如通过对话框)。输入验证的时机:可以在输入一项后马上验证该项输入是否合法,也可以全部输完后再逐项验证

32、,某项若验证不通过,除给出提示,从用户友好性角度,还可以将焦点定位到出错项(碇点是代码困难性增加)。验证通过后的数据在程序内部传递时,一般无需重复验证.2卡号的获得。最基本的方式由管理员手工编号并保证卡号的唯一性,但卡一旦多了,这会成为管理员的负担,因此,可以由系统自动编号,如规定卡号从1依次递增编号,这样卡号就无需输入。可在每次增加新卡时,从卡表中获得最大ID,加1后作为新增卡的卡号.也可以获得当前时间转化成字符串作为II),一般时间不会重复,可保证H)唯一,优点是生成ID无需访问数据库,还可以代表发卡时间。1.2.3.5副除卡模块设计一界面设计删除卡参考界面如卜图所示:图删除k界面二删除卡

33、流程1管理员输入卡号2系统依据卡号,恳求CardDAO查询有无该卡3若返I可的卡时象存在,则执行下一步,否则提示“卡号错误”,要求重输.4系统从Card杳询卡状态5若为“在用”,则提示“不能删除在用卡”6查询余额,若有则对话框提示“请结清余额”7若余额己结清且状态为“空闲二则将该卡信息删除8系统提示删除胜利三阅历共享1如何删除卡:一种是直捌.卡记录信息从数据库中永久删除,采纳deletefromwhere语句,此时还要留意,由于Record中有指向Card表的外键,删除涉及到“级连删除”这一概念,即在ReCord中包含该卡号的记录是否要一起甜除。般不允许“级连删除”,因为Record中记录是统

34、计费用的基本依据,删除后会使统计数据失真。还有一种是假删,即标注卡状态信息为“停用”,只需用update语句更改其状态即可,这样做好处是:一是可以完整保留已发卡信息,二是易于重新红原已删卡。坏处是:若有大量卡(数以十万计)长期不用,会占用数据库空间,影响访问卡表的性能。2一般数据库中数据删除后难以复原,同时难以避开因为意外导致的数据损坏,因此盎要数据的保存备份必不行少,本系统没有要求做数据备份功能,因为数据库管理工具一般会供应相应功能,只是要求用户会运用数据库管理工具,所以从便利用户运用考虑,程序本身供应备份(手动或定期自动备份)功能也是必要的。1.4系统实现系统实现主要运用集成开发环境、Ja

35、va、数据库工具依据设计制做Hl实际的界面,编写代码,生成数据库表,进行测试,这也是初级程序员所要完成的主要任务,在此列出部分典型代码,仅供参考。数据摩访问对数据库的基本操作是:增、删、改、查,数据库连接的建立、关团.其中的难点是访问数据库的异样处理和参数化SQ1.,现举例如下:I获得连接的代码:privatestaticfinalStringDRlVER_C1.ASS=sun.jdbc.odbc.JdbcOdbcDriver”;定义驱动类privatestaticfinalStringDATASOURCEjdbc:odbc:NelBarDalaSource”;/定义ODBC数据源public

36、staticConnectiongetConnctio11()ConnectiondbConnection=null;try(Class.orN三e(DRIVERC1.ASS);dbConnection-DriverManager.getConnecIion(DATASOURCE);)catch(Exceptione)o.printStackTraco();)returndbConnection:该代科针对JdbcOdbcDriver驱动,ODBC源名为NetBarDataSource,未支持口令验证。2 查询代码:下面是依据用户名和口令验证卡是否有效的代码,须要留意的是查询参数值须耍加单引号

37、:/* judgecardisvalidornot.* QParamcardCard*Qreturnboolean*/publicbooleanisValid(Cardcard)booleanisValid=false;ConnectiondbConnection=null;PreparedStatementpStatement-nul1:ResultSetres=nul1;try(dbConnection=ConnectionManager.KelConnctionO;/构建查询SQ1.语句StringStrSql=select*fromcardwhereid=+card,getId()+*

38、andpassword=+card,getPassword()+if(dbConnection!=null)fSystem,out.print!n(dbConnection!=null);查询操作pStatement=dbConnection.prepareStatement(stSql);res=PStateInent.executeQuery0;执行SQ1.语句,并返回结果if(res.next()/若res有记录说明卡存在isValid=true;)catch(SQ1.ExceptionSqIE)sqlE.printStackTrace():)finallyConnectionManag

39、er.c1oseResuItSet(res);关闭结果集ConncctionManager.CIOSeStatemCnt(pStatement):ConnectionManager.cIoseConnection(Connection):关闭连接)returnisValid:3 更新代码下面是更新机器状态的代码,其中SQ1.语句中,id=(?)”是动态参数,具体值设置在pStatement.setString(l,computer.getIdO)* recordthecomputerhaveused.* ParUmcomputerComputer*/publicvoidUpdateOnlIse

40、(Computercomputer)ConnectiondbConnection=null;PreparedStatementpStatement-null:tryStringStrSql=,updatecomputersetStatus=1whereid=(?):*;PSlUtemenl=dbConnection.prepareSlutemenl(strSl);pStatement.setString(l1computer,getId():/设置机器号id变数pStatement.executcUpdate();)catch(SQ1.ExceptionSqIE)sqlE.PrintStack

41、TraceO;)finallyConnectionManager.CloseStatement(pStatement);ConnoctionManagor.cIoseConnection(ll)Connection):)下机模块在BusinessManager类中有一doCheckOul()方法是实现下机过程的关键。/* docheckoutbusiness.* paramrecRecord,己有机器号值* relurnCoinsumeDisplayInfo含有上机记录、对应卡记录*/publicstaticComsumeDisp1ayInfodoChcckOut(Recordrec)Reco

42、rdDAOdao=newRecordDAOO;获得包含了下机记录及对应卡信息的COmSUmeDisplayinfoComsumeDisp1ayInforesult-dao.getStopConpouterRelationInfo(rec);Recordrecord=result.getRccord();Cardcard=result.getCard();计算本次上机的费用intfee-calFee(record.getBeginTime(),record.getEndTime();record.setFee(fce):计算余额intbalance=card,gelBalanceOfee:car

43、d,setId(record.getCardldO);card.SctBalance(ba1ancc):将数据写入数据库RecordDAOdao2=newRecordDAO0;dao2.doCheckOutDB(record,card);/返回含有上机记录、CARD记录的COinSUmeDiSPlayInfo,供界面显示下机结果result.SetRecord(record):result.SelCard(card);returnresult;上机模块处理恳求上机的部分代码如卜主要有界面数据(机器号、密码、卡用户号)验证代码:卡有效性、余额可用性验证。/* dealbusinessaboutc

44、lickconfinnbutton.* parameActionEvent* /voidconfimButton_actionPerfomed(ActionEventC)StringCardId=;Stringpasswordtemp=StringCofnPUterld=”:获得机器号,并去掉空格cardId=CardIdTextField.etText().tri();获得密码for(inti=0:iCpasswordFiled.getPassword().length:i+)PaSSWOrdtemp+=passwordFiled.getPasswordOi;获得机涔号ComputerId=

45、ComputerIdCombox.getSclectedltemO.toString():推断机器号是否为空,未填或只有空格if(computerId=nul1|CoiiipulerId.trim().IengthO=O)JOptionPane.ShOWHeSSageDiaIOg(this,”请选择机器号!,警告,JOptionPane.WARNINGMESSAGE,null);return;)/推断卡号是否为空,未填或只有空格if(cardll-nul1CardId.IengthO=O)JOptionPane.ShOWMeSSHgeDialog(IhiS,”请输入卡号!,警告,JOption

46、Panc.WARNlNG_MESSAGE,null):return;)if(passwordtemp=nulIpasswordtemp.IengthO=O)JOptionPane.ShOWM?SSageDiaIog(this,”请输入密码!,警告,JOptionPane.W八RNlNG.MESSAGE,null):return;)生成卡对象,并设置卡用户名、口令、上机时间Cardcard=newCardO;card,setId(cardId);card,setpassword(passworltenp):Recordrecord=newRecord();record.setCardId(carlId);record,setComputerId(conputerId):record,seiBeginTime(dispaIyNowTime):生成机涔对软,更新机器状态时用Computer

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号