版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
〔学生版初稿〕第一章1234网吧计费治理系统背景介绍业务背景技术背景需求分析功能需求分析业务对象分析验收测试要求系统设计总体设计具体设计系统实现小结展望第一章1234网吧计费治理系统背景介绍业务背景1234口效劳台,出示上机卡,假设是客户则先发卡;治理员先查询是否有空机器,假设有则依据上机卡号查到该卡对应的记录〔账簿,假设有余额〔>5元,则安排一个空闲的机器号给客户,客户依据机器号对号入座,治理员登记客户卡号、上机机器号、上机时间。客户下机要到门口的效劳台,恳求下机,治理员依据当前时间、上机时间及费率计算出本次上机费用,并记录,同时将费用从卡余额中扣除,假设手工记帐,治理超时超费使用不能准时觉察。因此需要开上下机、计费、上机卡、机器状况,供给简洁统计功能,超时超费提示功能等。技术背景本系统要求使用java〔如MySQL〕保存数据,集成开发环境可使用支持可视化GUI界面设计的主流工具(如eclipse)。开发者应有javaJDBC据库、使用一种集成开发工具的根本学问和技能。系统承受两层C/S体系构造,CGUIS析设计方法。需求分析功能需求分析系统需求分析的主要任务是从用户角度考察系统应具有哪些功〔刷身份证、删身份证、充值、查询、机器治理〔添加机器、删除机器、查询状〔〔添加用户、删除用户、修改口令,参数设置〔时段费率,使用帮助。主要使用流程是:治理员登录,依据客户恳求上机,依据客户恳求下机。主要功能的用例〔usecase〕描述如下:—.上机治理员输入空闲机器号,上网人输入口令、卡号,恳求上机。系统验证卡号,检查卡中余额,卡状态系统猎取当前系统时间作为上机开头时间系统修改该机器的使用标志为“在用系统记录上机信息〔卡号、机器号、上机时间〕系统提示上机成功假设1中无空闲机器又恳求上机的,系统提示“没用空闲机器中卡验证未通过,提示“无此卡号二.下机治理员选择被使用的机器号,恳求下机系统猎取系统当前时间作为下机时间;系统计算费用;系统显示应缴费用系统记录下机时间和此次费用;系统从卡中扣费,修改卡状态为“空闲系统修改该机器的状态为“空闲系统显示本次上机记录信息,提示下机成功三.登录治理员输入用户名和密码,恳求进入系统系统验证用户名和密码系统显示主界面假设一次验证不通过,则提示再输入一次,仍不通过则系统退出。四.卡维护卡有三种状态:停用、空闲、在用。发卡:治理员输入卡号〔保证卡号唯一〕治理员输入卡初始金额上网人输入用户名、口令治理员恳求添加卡系统保存卡号、金额、用户名和密码,状态为“空闲”系统提示添卡成功,显示卡号及金额,以便核对。治理员将系统生成的有卡号、用户名的纸卡给上网人。充值:治理员输入卡号系统显示该卡信息〔卡号、用户名、余额、状态〕治理员核对后,输入充值金额系统计算并保存该卡总金额系统显示充值后的卡信息〔卡号、用户名、余额、状态。查询卡信息:治理员输入卡号或恳求观看全部卡信息系统查询卡信息〔卡号、用户名、余额〕并显示删除卡:治理员输入卡号系统查询卡余额及状态假设余额已结清且状态为“空闲系统提示删除成功假设有余额或“在用”则不能删除机器有三种状态:停用、空闲、在用。添加机器:治理员输入机器号,恳求添加系统验证机器号是否重复系统添加机器记录信息〔机器号、状态为“空闲〕系统提示添加成功删除机器:治理员输入机器号,恳求删除系统删除相应机器信息系统提示删除成功查询机器状态:治理员输入机器号或恳求观看全部机器信息系统查询并显示机器信息〔机器号和状态〕并显示六.治理员口令治理添加用户治理员输入用户名、密码和确认密码,恳求添加系统验证用户是否是用户,两次输入的密码是否一样系统添加用户、密码信息系统提示添加成功删除用户治理员输入用户名、密码系统验证用户名、密码是否正确系统删除用户名、密码记录系统提示删除成功修改密码治理员输入用户名、密码,恳求修改密码系统验证用户名、密码是否正确治理员输入密码、及确认密码系统保存密码系统提示修改成功七.统计治理治理员输入起始时间〔年、月、日月、年汇总系统查询上网记录,计算、统计出时间段的总费用、人次、总上机时间等信息。系统显示上述信息八.参数治理时段费率设置:系统显示当前设置治理员设置时间段〔时、分〕及对应的费率,恳求保存系统保存设置系统提示保存成功超时报警定时器间隔设置九.超时超费报警30时间及费用,计算其卡中余额是否低于最低费用。系统提示已超费卡号、机器号,及超的费用本系统除了功能性需求,还有易用性、牢靠性、安全性等要求,可以在实现上述功能性需求的根底上,进一步实现完善非功能性要求。业务对象分析依据上面的主要用例描述,可以分析出系统的主要业务对象,它是设计阶段核心类图的根底〔不愿定一一对应,这些对象必需实际存在,其行为和属性应与问题领域相关:上网卡:主要维护上网卡的相关信息。卡号、密码、余额、卡用户名、卡状态〔在用、空闲、停用〕〔在用、停用、空闲、备注费用记录:记录每次上机的信息。记录编号、卡号、机器号、开头上机时间,下机时间、费用费率记录:起始时间、终止时间,费率1—4验收测试要求用户要求开发产品,产品开发完成后,需要交付用户验收,验路是依据用户使用的过程测试系统,越频繁使用的功能越要多测试。本系统功能性需求验收测试的根本要求如下:前置条件:除口令表有初始用户名和密码外,各库表为空。程序安装配置正确,能正常启动运行。一.初始化数据启动程序,进入“卡维护3张卡,其中有张卡余额为0;再进1,添加机器。二.功能测试明操作上机,连续上机3连续下机两次。观看输出信息界面,看内容是否正确〔金额、卡号,时间,费用。已下机器是否已被同步从上机下拉表中去除。再进入结果;输入卡金额缺乏的卡号,观看结果;不输入任何值,直接按确认的结果。统计测试,进入“统计”功能,按日,月,年查询统计,与库中实22张卡,应不能删除在线卡,并能标识出卡余额,以便清帐;进入“信35测试“费率维护率,上下机,观看费用计算结果。测试超时报警功能:发一张卡,初始额刚到达最低标准,以此卡上机,为缩短超时等待时间,可设置定时器间隔为12钟,看系统是否能正确报警。测试帮助功能。依据帮助说明使用系统,验证帮助说明的正确性。系统设计总体设计系统体系构造图形界面SWING客户端效劳端业务规律SQL数据库ACCESS数据访问〔JDBC〕一般要确定系统的体系构造,主要模块,系统运行环境〔如操作系统、数据库,开发平台及语言。本系统主要运行在windows图形界面SWING客户端效劳端业务规律SQL数据库ACCESS数据访问〔JDBC〕1系统体系构造3〔javaSWING〕负责与用户交互,业务规律层则依据用户的恳求执行各种功能(如上、下机等),JDBC/SQL数据库使用ACCESS,可依据状况使用其他数据库〔如SQLServer〕,上。二.系统功能模块及主要类系统的主要功能模块如图 2 所示:主模块主模块登录上机下机帮助卡维护统计机器维护参数维护口令维护发卡充值查询删除卡添加机器删除机器查询添加用户更改口令删除用户可据此设计菜单,划分模块。系 统 主 要 类 图 如 下 :图3总类图的画法根本遵循视图层、业务规律层、数据模型及数据库要的业务规律把握类是BusinessManager,用户的上下机恳求,通过BusinessManagerxDAOxDAODBConnection获取连接,再通过JDBC/SQL访问数据库。Card\Computer\Record\ManagersetX\getX法中传递。三.阅历共享1客户端根本承受三层构造〔视图View、把握Controller、模型Mode,层与层间耦合性较小,提高了整体的可扩展性、可重用及抗变动力气。缺点是要求预先设计好,对设计水平要求高,不过一旦形成模式,养成习惯,能“照葫芦画瓢2使用xDAOxDAO〔如业务规律层。接口中的参数主要是“值对象”,这样即使Card\Computer\Record\Manager类中的属性发生转变,由于“值对而又只用到其中很少的属性,则对性能和内存铺张较大。与此对应,〔上下机、JDBC、符合一般过程性思维〔常用于初始的或原型系统的开发中,缺点是代码一旦需要修改,则改动较多、且简洁出错,代码重用性差。3DBConnection代码可重复使用,假设连接参数〔如连到不同的数据库〕改动,只DBConnection〔固然更好的做法是将这序xDAO具体设计〔时,也介绍了相应的解决方法及设计阅历。数据库设计哪些对象需要长期保存,然后将对象属性及对象间关系转化成关系Card、Computer、Record、Manger中,将ConfigCard、Computer、Record图长期对象属性及关系图RecordCardComputer,对于未用Record中设置CARDID,COMPUTERIDCard和Computer。共设计出四张表:名称编码数据类型名称编码数据类型卡号ID〔〕VARCHAR卡状态STATUS〔〕INTEGER余额BALANCE〔〕DOUBLE〔20〕用户名USERNAME〔非VARCHAR空〕〔20〕密码PASSWORD空〕〔非VARCHAR〔15〕COMPUTER名称编码数据类型机器号ID〔〕状态STATUS〔〕INTEGER备注NOTESVARCHAR〔200〕RECORD名称编码数据类型记录号ID〔〕VARCHAR〔20〕卡号CARDID〔〕VARCHAR〔20〕机器号COMPUTERID〔VARCHAR〔10〕空〕上机时间BEGINTIME〔非空〕DATE下机时间ENDTIMEDATE上机费用FEEDOUBLEManager名称编码数据类型用户名USERNAME空〕〔非VARCHAR〔20〕口令PASSWORD空〕〔非VARCHAR〔20〕E-R方面的问题。首先根本的是确定有哪几张表,表间关系,然后是表中的字段,比较麻烦的是确定字段的约束〔主键、非空等,字段数据类型,范式的调整等,由于此时会考虑到存储空间、性能、易编程、数据质量等方面的因素。如定义“用户名”字段要有多大,就需要在存储空间节约和适应性间权衡,定义的较小,遇到长名字的状况,程序不能适应;定义的以空间换取适应性。再比方确定哪些字段为“非空字段有值,这会增加验证“非空”字段程序的代码量,对用户的约束也加强,有些值要求用户必需输入,如口令就不能为空。但假设允许字定,影响数据质量。一个根本的方向是“约束”多,则编程的代码量Record机时间”和“上机费用”没有定义为“非空两项不能确定,只能填写局部上机记录信息。xDAO大的改动。一界面设计windowGUI〔如字体、颜色〕44参考界面1初始化显示界面猎取空闲机器将空闲机器号参与下拉列表2上机处理过程:验证机器号、卡号、密码是否为空依据卡号、密码猎取卡对象假设卡对象为空则说明卡号或密码错,给出提示“卡号或密推断卡状态,假设卡正在使用则给出提示“不能一卡多用”计算卡中余额,假设低于设定值,则提示“余额缺乏”修改卡状态为在用,修改机器状态为在用,猎取上机时间,将上机时间、机器号、卡号保存到记录对象,再通过RecordDAO提示上网成功三阅历共享6证数据的全都性。了降低简洁性,可规定时段只能为三段,时间准确到分,费用准确到角。记录ID如何保证唯一且自动增长。根本有两种:一是编程把握,插入记录前猎取当前最大记录号 ,通过selectmax(id)fromrecord,加1后,将ID及其它信息写入,假设有多用户访问该表,则上述过程要放在一个“事务”中。二是利用关系数据库供给的“自增字段”特性,将ID设置成“自增字段,由数据库负责每添加一条记录就将ID加1。一界面设计下机模块主要依据用户恳求〔报出卡号/机器号,治理员依据卡号/5机的全部记录信息,选中其中一条执行下机操作。5下机模块界面二下机流程治理员输入机器号或卡号,恳求下机误的状况系统依据记录对象猎取该记录对应的卡对象系统计算费用,并比较卡对象余额,假设不够则提示“余额缺乏并显示余额系统从卡中扣费,修改卡状态为“空闲〔下机时间、费用。下机成功4一界面设计发卡需要输入卡号用户名密码金额参考界面如以以下图所示。界面设计布局应简洁全都,从用户友好性动身,供给了输入提示,增加了“确认密码,以提示用户记住密码,输入的密码号显示以提高安全性虽然有了提示但在代码中仍需对输入进展验证如金额不能为负值,以避开误输及恶意输入。固然从口令强度考虑,要求密码只输入数字和字母又是不妥的相反可提示用户输入特别字符及输入的最小字符数。所以此界面虽简洁,但已涉及到界面的视觉风格、用户 友 好 性 、 安 全 性 考 虑 。图发卡界面二发卡流程系统从界面猎取全部信息,依次推断是否为空0推断密码和确认密码是否全都,推断密码和用户名是否在最小及最大长度之间推断卡号是否有效〔唯一〕生成CardCardDaoCard提示卡添加成功,并显示卡号和金额三阅历共享的长度,验证是否为空、数字数据是否在范围内等,有些输入控件供给了限定输入长度等功能,应当充分利用以削减编码量。一般验证可遵循如下策略:输入前提示如何输入,输入后验证,验证不通过则再提示〔如通过对话框。输入验证的时机:可以在输入一项后马上验证该项输入是否合法,也可以全部输完后再逐项验证,某项假设验证不通过,除给出提示,从用户友好性角度,还可以将焦点定位到出错项〔缺点是代码简洁性增加。验证通过后的数据在程序内部传递时,一般无需重复验证。卡号的猎取。最根本的方式由治理员手工编号并保证卡号的唯一性,但卡一旦多了,这会成为治理员的负担,因此,可以由系统自动编号,如规定卡号从1ID,1也可以猎取当前时间转化成字符串作为ID,一般时间不会重复,可保证IDID一界面设计删除卡参考界面如以以下图所示:图删除卡界面二删除卡流程治理员输入卡号系统依据卡号,恳求CardDAO假设返回的卡对象存在,则执行下一步,否则提示“卡号错误要求重输。系统从Card查询余额,假设有则对话框提示“请结清余额”假设余额已结清且状态为“空闲系统提示删除成功三阅历共享1如何删除卡:一种是真删,卡记录信息从数据库中永久删除,承受deletefromwhere语句,此时还要留意,由于RecordCardRecordRecord中记录是统计费用的根本依据,删除后会使统计数据失真。update更改其状态即可,这样做好处是:一是可以完整保存已发卡信息,二是易于重恢复已删卡。害处是:假设有大量卡〔数以十万计〕长期不用,会占用数据库空间,影响访问卡表的性能。2一般数据库中数据删除后难以恢复,同时难以避开由于意外导致备份〔手动或定期自动备份〕功能也是必要的。系统实现系统实现主要运用集成开发环境、Java、数据库工具依据设计制做出实际的界面,编写代码,生成数据库表,进展测试,这也是初级程序员所要完成的主要任务,在此列出局部典型代码,仅供参考。数据库访问对数据库的根本操作是:增、删、改、查,数据库连接的建立、关闭,其中的难点是访问数据库的特别处理和参数化SQL,现举例如下:猎取连接的代码:privatestaticfinalStringDRIVER_CLASS=“sun.jdbc.odbc.JdbcOdbcDriver“;//定义驱动类private static final String DATASOURCE “jdbc:odbc:NetBarDataSource“;//定义ODBCpublicstaticConnectiongetConnction{ConnectiondbConnection=null;try{Class.forName(DRIVER_CLASS);dbConnection =DriverManager.getConnection(DATASOURCE);}catch(Exceptione){e.printStackTrace;}returndbConnection;}该代码针对JdbcOdbcDriver驱动,ODBC源名为NetBarDataSource,未支持口令验证。查询代码:/**judgecardisvalidornot.@paramcardCard@returnboolean*/publicbooleanisValid(Cardcard){booleanisValid=false;ConnectiondbConnection=null;PreparedStatementpStatement=null;ResultSetres=null;try{dbConnection=ConnectionManager.getConnction;//构建查询SQLStringstrSql=“select*fromcardwhereid=”“+card.getId+“”andpassword=”“+card.getPassword+“”“;if(dbConnection!=null){System.out.println(dbConnection!=null);}//查询操作pStatement=dbConnection.prepareStatement(strSql);respStatement.executeQuery;//执行SQL结果if(res.next){ //假设resisValid=true;}}catch(SQLExceptionsqlE){sqlE.printStackTrace;}finally{ConnectionManager.closeResultSet(res);//关闭结果集ConnectionManager.closeStatement(pStatement);ConnectionManager.closeConnection(dbConnection);//闭连接}returnisValid;}更代码下面是更机器状态的代码,其中SQL“id数,具体值设置在pStatement.setString(1,computer.getId)/**recordthecomputerhaveused.@paramcomputerComputer*/publicvoidupdateOnUse(Computercomputer){ConnectiondbConnection=null;PreparedStatementpStatement=null;try{StringstrSql=“updatecomputersetStatus=1whereid=(?);“;pStatement=dbConnection.prepareStatement(strSql);pStatement.setString(1,computer.getId);//设置机器号idpStatement.executeUpdate;}catch(SQLExceptionsqlE){sqlE.printStackTrace;}finally{ConnectionManager.closeStatement(pStatement);ConnectionManager.closeConnection(dbConnection);}}下机模块在BusinessManagerdoCheckOut〔〕方法是实现下机过程的关键。/**docheckoutbusiness.@paramrecRecord,已有机器号值@returnComsumeDisplayInfo*/publicstaticComsumeDisplayInfodoCheckOut(Recordrec){RecordDAOdao=newRecordDAO;//猎取包含了下机记录及对应卡信息的ComsumeDisplayInfoComsumeDisplayInfo result dao.getStopCompouterRelationInfo(rec);Recordrecord=result.getRecord;Cardcard=result.getCard;//计算本次上机的费用int fee = calFee(record.getBeginTime,record.getEndTime);record.setFee(fee);//计算余额intbalance=card.getBalance-fee;card.setId(record.getCardId);card.setBalance(balance);//将数据写入数据库RecordDAOdao2=newRecordDAO;dao2.doCheckOutDB(record,card);CARDComsumeDisplayInfo,供界面显示下机结果result.setRecord(record);result.setCard(card);returnresult;}上机模块处理恳求上机的局部代码如下,主要有界面数据〔机器号、密码、卡用户号〕验证代码;卡有效性、余额可用性验证。/**dealbusinessaboutclickconfirmbutton.@parameActionEvent*/voidconfirmButton_actionPerformed(ActionEvente){StringcardId=““;Stringpasswordtemp=““;StringcomputerId=““;//猎取机器号,并去掉空格cardId=cardIdTextField.getText.trim;//猎取密码for(inti=0;i<passwordFiled.getPassword.length;i++){passwordtemp+=passwordFiled.getPassword[i];}//猎取机器号computerId =computerIdCombox.getSelectedItem.toString;//推断机器号是否为空,未填或只有空格if(computerId==null||computerId.trim.length==0){JOptionPane.showMessageDialog(this,“请选择机器号!“,“警告“,JOptionPane.WARNING_MES
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 创新艺术素质测评
- 2024年度租赁物购买合同范本2篇
- 2024年度影视制作合同:电视剧制作及版权销售协议3篇
- 基于二零二四年度销售目标的特许经营合同
- 复配定制纤维素酶实现浓醪底物的低酶高效水解糖化
- 2024城市步行街雕塑工程设计与施工合同3篇
- 土方工程居间的合同范本
- 合同书模板下载3篇
- 楼盘销售代理合同2024年度
- 基于二零二四年度的软件开发合同
- 二年级上册科学课件 - 《4.神奇的纸》教科版 (共16张PPT)
- 针刀治疗扳机指的解剖学基础
- 苏教版四年级上册数学第七单元整数四则混合运算试卷【含答案】
- 气体灭火系统验收表1
- 生产准备三查四定检查表
- 计算机数据备份记录表格
- DB11T 2000-2022 建筑工程消防施工质量验收规范
- 人教版数学三年级上册《分数的初步认识》课件 (共7张PPT)
- 2021小学语文《习作例文-风向袋的制作》说课稿及教学反思
- 外科学教学课件:周围神经损伤
- 杆塔分解组立
评论
0/150
提交评论