【机房管理系统的设计与实现5500字(论文)】_第1页
【机房管理系统的设计与实现5500字(论文)】_第2页
【机房管理系统的设计与实现5500字(论文)】_第3页
【机房管理系统的设计与实现5500字(论文)】_第4页
【机房管理系统的设计与实现5500字(论文)】_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

机房管理系统的设计与实现目录TOC\o"1-3"\h\u250231.引言 1125892系统相关技术 1303082.1JAVA语言的特点 1158512.2java链表的实现 1196443系统分析与设计 2121043.1系统分析概述 2238343.2系统主要功能 230573.3数据库设计 3277653.3.1数据库设计原则 45083.3.2概念结构设计 4249933.3.3逻辑结构设计 5209224系统实现 6177364.1卡片管理模块 631374.2系统管理模块 9191634.3服务端聊天管理模块 11110524.4客户端聊天服务模块 1229133总结 1429530参考文献 14机房管理系统的设计与实现1.引言随着计算机科学技术和网络通讯技术的迅猛发展,计算机性能的逐渐增强,价格的逐渐降低,使得越来越多的中、小学都拥有了自己的多媒体机房,城市中的机房更是随处可见、比比皆是。这些机房和机房中的计算机少则有几十台,多则上百台。另外随着近几年我国高等院校的大规模扩招,我国的在校大学生人数在迅速地膨胀,各大专院校的计算机实验室也在不断地扩大,一般院校的一个计算机实验室少则几百台,多则上千台计算机。这使得如何管理好这些计算机成为一个比较伤脑筋的问题。目前,绝大多数机房和机房还处于原始的人工管理阶段,而且大部分机房为了提高资源的利用率,都在业余时间对学生开放,这都为机房的管理增加了难度,此外人工管理还存在着一些不可避免的缺陷。机房管理系统是近几年来讨论比较多的一个技术专题,同时也有很多不同的、成熟的系统,包括纯软件的系统及软、硬件结合的系统(IC卡等)。实验室信息管理系统技术实际上包括两个方面内容:其一是管理思想;其二是实现这一思想的技术手段。2系统相关技术2.1JAVA语言的特点Java语言独特的运行机制使得它具有良好的二进制可移植性,利用Java,开发人员可编写出与具体平台无关,普遍适用的应用程序,大大降低了开发、维护和管理的开销,也就是一次编译,随处运行,方便存取数据库的JDBAPI,CORBA、JND1、RM1技术以及能够在Internet应用中保护数据的安全模式等功能,为用户和开发人员提供一个具有高度的可移植性、兼容性和安全性的平台。Java语言具有动态性的特点,它的动态性是面向对象设计方法的扩展,它允许程序动态的装入运行过程中所需要的类。2.2java链表的实现线型表的链式存储结构是把线型表的数据元素存放在节点中,因此,用链式存储结构实现的线性表称为链表。节点(node)由数据元素域和一个或若干个指针域组成。指针是用来指向其他节点地址的,指向链表第一个节点的指针成为链表的头指针,一个链表由头指针指向第一个节点,每个节点的链指向其后继节点,其中一个节点的链为空(null)。在C或C++里链表可以通过指针的操作来实现,在Java中是没有指针的,但是可以通过使用对象的引用等方法实现链表。链表的节点个数称为链表的长度,长度为零时称为空表。链表可以根据链的个数可以分为单向链表和双向链表,本文只讨论单向链表,一个单向链表包含一组节点,每个节点都包含了有关数据和指向下一个节点的指针。表的头就是一个指针,它指向第一个节点,而表的结束则用空指针表示。3系统分析与设计3.1系统分析概述采用自顶向下的结构化分析方法分析和表达用户需求的方法:图3-1需求分析图用结构化的方法做需求分析,可以将任何一个系统可以抽象成如下图的形式:图3-2系统抽象图将处理功能分解成若干个子功能,再将各个子功能继续分解,直到把整个系统工作流程表达清楚为止。3.2系统主要功能本系统主要功能涉及到如下部分:卡片管理、系统设置,聊天服务管理,另外还有管理员对机房进行上下机管理。以下是本系统的模块图:图3-3系统模块图1.卡片管理功能上网学生在卡中储存一定数量的金额,每次上机费用从中扣除。待卡中金额用完时可以向卡中加存,继续使用。如卡片遗失就可去该机房进行挂失。学生若不需要该机房计费卡也可注销,拿回卡片内剩余的金额。2.系统设置功能系统管理是机房管理员才具有的功能,即机房的费率设置,智能卡计费管理系统的各项功能都是根据经营中的实际作经验及长期发展策略而提炼而成,比如为了支持机房优惠政策,提供灵活机动的费率设置功能,让机房管理系统真正成为机房的管家,而不是碍手碍脚的障碍。包括机房不同卡片不同时间段的收费设置和机房所售商品的进售价设置,通过这两个设置可以根据当时的需求对价格进行管理。3.聊天服务管理功能聊天程序分为服务器端和学生端两个部分,服务器端的功能为:在特定的端口上进行侦听,等待学生端连接;学生可以配置服务端的侦听端口,默认端口为8888;向已经连接到服务端的学生发送系统消息;统计在线人数;当停止服务时断开所有的用户连接。学生端的功能为:连接到已经开启聊天服务的服务端;学生可以配置要连接服务器端的IP地址与端口号;用户可以配置连接后显示的学生名;当服务器开启的话,用户可以随时登陆和注销;用户可以向机房管理员发送消息,提出需要解决的问题或者要求。4.上下机情况功能这一功能主要是管理机房学生的上下机,学生一上机即可以对其进行计费,在上机的过程中学生可以发送消息给管理员。若学生要下机了,就可以进行结帐退出。5.退出系统功能只要点击退出按钮,就会出现提示对话框“确定要退出吗?”,点击“是”即可退出系统。3.3数据库设计数据库设计的目标是要求完全满足业务的数据存储要求。如果能够设计一个合理的数据库模型,不仅会降低程序编程和维护的难度,也会提高系统实际运行的性能,因而必须仔细的制定设计步骤方案,了解规范的设计方法和必要的规则。3.3.1数据库设计原则对于机房管理系统来说,拥有大量的上网人员需要强有力的数据库支撑,但是对于本系统来说,由于不会在实际环境中运行,所以数据库的使用可以选择容易使用,并且易于维护的、容易获取的数据库作为后台存放机房相关信息等的数据库最终选择了MYSQL作为后台支持数据库。3.3.2概念结构设计E-R模型和关系模型是两种对数据库不同的描述,在E-R模型中用实体集和联系表示现实世界中的事物及其相互之间的关系;而在关系模型中则用单一的结构来组织数据。所以,在这里就存在一个如何将E-R模型转化为关系模型的问题。下面介绍转化所需要遵守的几条准则:★E-R模型中的每一个实体都转化成一个同名的关系,实体集的属性就是关系的属性,实体集的码就是关系的码。★E-R模型中的每一个联系也用一个关系表示,与该联系相连的各实体集的码以及联系的属性转化为关系的属性。该关系的码有三种情况:●若联系为1:1,则每个实体的码均是该关系的候选码。●若联系为1:n,则关系的码为n端实体集的码。●若联系为m:n,则关系的码为各实体集码的组合。★具有相同码的关系模式可以合并(合并原则)。cardsendcardsendidentifyPNumumnamecachPledgeinMoneycardTypecardIdidentifyPNumumnamecachPledgeinMoneycardTypecardId图3-4卡片实体及其属性图feesfeesnightunitfeesnightfeesunitunitfeestimecardTypelowestnightunitfeesnightfeesunitunitfeestimecardTypelowest图3-5费率实体及其属性图updowncomputerupdowncomputermoneyIncardcomputerIdmoneyIncardcomputerIdcomputerAdresscomputerAdressplayMoneybuyMoneytotalMoneycardTypetimeplayMoneybuyMoneytotalMoneycardTypetime图3-6上下机实体及其属性图3.3.3逻辑结构设计设计逻辑结构的是和分三步进行:将概念结构(E-R图)转化为一般关系模型将转化来的关系模型向MYSQL支持下的数据模型转化对数据模型进行优化,消除冗余字段。对数据依赖进行极小化处理。对关系模式进行必要的分解合并和优化,形成以下的逻辑结构表3-1cardsend信息表字段数据类型大小允许空/主键描述cardIdint11NO/主键卡片idcardTypevarchar20NO卡片类型cachPledgefloat8NO卡片押金inMoneyfloat8NO卡内金额givePresentfloat8NO卡内赠送金额namevarchar20NO持卡人姓名identifyPNumvarchar45NO持卡人身份证表3-2卡片fees信息表字段数据类型大小允许空/主键描述cardtypevarchar10NO/主键卡片类型lowestfloat8NO最低收费timeint11NO最小收费单位unitfeesfloat8NO每单位收费nightfeesunitint11NO通宵计费单位nightunitfeesfloat8NO通宵每单位计费表3-3updowncomputer临时信息表字段数据类型大小允许空/主键描述computerIdint11NO/主键计算机idIpadressvarchar25NO计算机IpcardTypevarchar20YES卡片类型moneyIncardfloat8YES卡内金额timevarchar20YES上机时间playMoneyfloat8YES上网消费buyMoneyfloat8YES购物消费totalMoneyfloat8YES总消费yearint11YES上机年份monthint11YES上机月份dayint11YES上机时间(日)hourint11YES上机时间(时)minuteint11YES上机时间(分)secondint11YES上机时间(秒)4系统实现4.1卡片管理模块(1)系统的卡片发行对话框:图4-1卡片发行对话框管理员输入卡片信息,点击发行进行卡片发行。这里进行了非空验证:if(cardType.getText()==null||cardType.getText().trim().equals("")){messageBox.setMessage("卡片类型不能为空!"); }if(cachPledge.getText()==null||cachPledge.getText().trim().equals("")){messageBox.setMessage("押金不能为空!"); }if(inMoney.getText()==null||inMoney.getText().trim().equals("")){ messageBox.setMessage("充值金额不能为空!"); }if(name.getText()==null||name.getText().trim().equals("")){messageBox.setMessage("姓名不能为空!"); } Stringstr5=identifyPNum.getText();if(identifyPNum.getText()==null||identifyPNum.getText().trim().equals("")){messageBox.setMessage("身份证号码不能为空!");}这里将对身份证号码进行唯一性验证,单击“检查唯一性”按钮,系统将对输入的身份证号码与数据库中已经存在的身份证号码进行逐个匹配,如果已存在在数据库中则发卡失败,返回继续填写信息;在其它信息和身份证号码格式都填写正确的情况下若身份证号码不存在数据库中则发卡成功。图4-2发卡成功对话框(2)系统的卡片挂失对话框:图4-3发髂挂失对话框管理员输入来挂失学生的身份证号码,点击“查找”按钮,学生的卡片内的一切信息就会显示出来,包括卡内的剩余金额balance也会显示出来,然后点击“挂失”按钮,就会出现一个选择对话框是否返回学生balance元,点击“”就挂失成功,卡内的剩余金额就变成0元。(3)系统的卡片充值对话框:图4-4卡片充值对话框通过卡号对卡片进行充值,关键代码为:Stringsql1="selectinMoneyfromcardsendwherecardId='"+str1+"'";//查找相应要充值卡片的本来剩余金额rs=stmt.executeQuery(sql1);//执行上条SQL语句 if(rs.next()){str2=rs.getFloat("inMoney");//得到剩余金额的值} floatstr4=str2+str3;//剩余金额与刚充值的金额相加Stringsql2="updatecardsendsetinMoney="+str4+"wherecardId='"+str1+"'";//把数据库中的剩余金额改为充值之后的金额,从而充值动作完成stmt.executeUpdate(sql2);//执行上条SQL语句(4)系统的卡片注销对话框:图4-5卡片注销对话框若学生不需要此张卡片,或者卡片已经永久遗失,则可以通过该功能注销卡片,通过用户的身份证注销卡片,返还学生卡片内的剩余金额。关键代码如下:Stringsql="select*fromcardsendwhereidentifyPNum='"+str1+"'";//查找要注销卡片的相关信息,并显示在对话框中 rs=stmt.executeQuery(sql);//执行以上SQL语句 Stringsql="deletefromcardsendwhereidentifyPNum='"+str2+"'";//删除要注销卡片的所有信息stmt.executeUpdate(sql);//执行以上SQL语句4.2系统管理模块点主对话框上的菜单栏中的系统设置。收费设置类FeesSet.java调用了修改卡片费率的类ModifyFees.java,关键代码为:ModifyFeesmodify=newModifyFees();//创建实例对象modifymodify.createSShell(ctype);//引用类ModifyFees中的createSShell()方法图4-6收费设置对话框选中要修改的卡类的收费信息行,接着点击修改记录按钮,即会弹出修改收费信息页面,若没有选中数据项,则会报错。图4-7修改收费信息对话框图4-8报错对话框4.3服务端聊天管理模块该模块是和学生端进行联系的。点主页面的开启聊天服务图4-9服务端聊天主对话框管理员要启动服务,学生端的聊天程序才能连接上服务器而进行正常的聊天,点端口设置可以对要侦听的端口进行设置,默认的端口号为8888,点停止服务服务端就会被关闭。服务端聊天管理主要包括6个文件,它们的功能如下:(1)ChatServer.java包含名为ChatServer的public类,其主要功能为定义服务器端的界面,添加事件侦听与事件处理。调用ServerListen类来实现服务端用户上线与下线的侦听,调用ServerReceive类来实现服务器端的消息收发。(2)ServerListen.java该类实现服务端用户上线与下线的侦听。该类对用户上线下线的侦听是通过用户链表(UserLinkList)来实现的,当用户上线下线的情况发生变化时,该类会对主类的界面进行相应的修改。(3)ServerReceive.java该类是实现服务器消息收发的类。该类分别定义了向学生发送消息的方法,发送的消息会显示在主界面类的界面上。(4)PortConf.java该类是对服务器端侦听端口进行修改配置的类。(5)Node.java用户链表的节点类,定义了链表中的用户。该类与前面所讲的链表节点Node类的功能相当。(6)UserLinkList.java用户链表节点的具体实现类。该类通过构造函数构造用户链表,定义了添加用户、删除用户、返回用户数、根据用户名查找用户、根据索引查找用户这5个方法。点退出按钮,即会弹出是否真的要退出的选择对话框。点击是或者按回车键,就退出了界面。图4-10聊天服务退出对话框4.4客户端聊天服务模块聊天服务客户端主要包括5个文件,它们的功能如下:(1)ChatClient.java包含名为ChatClient的public类,其主要功能为定义学生端的界面,添加事件侦听与事件处理。该类定义了Connect()与DisConnect()方法实现与服务器的连接与断开连接。同时该类还定义了SendMessage()方法向网管发送消息或者与网管悄悄话聊天。(2)ClientReceive该类是实现服务器端与学生端消息收发的类。(3)ConnectConf.java该类继承自对话框,是用户对所要连接的服务器IP及侦听端口进行修改配置的类。(4)UserConf.java该类也继承自对话框,是用户对连接到服务器时所显示的用户名进行修改配置的类。图4-11聊天服务学生端界面点聊天服务客户端界面用户设置,用户可以配置连接后显示的用户名,若没有配置用户名,则显示系统默认的用户名。关键代码:userInputName=userName.getText();/*输入的用户名在非空和字符小于15个字符的情况下,保存成功*/图4-12学生端用户名配置界面点聊天服务学生端界面连接设置,用户可以配置要连接服务器的IP地址与端口号。关键代码: userInputIp=""+InetAddress.getByName(inputIp.getText());userInputIp=userInputIp.substring(1);//判断端口号是否合法savePort=Integer.parseInt(inputPort.getText());if(savePort<1||savePort>65535){DLGINFO.setText("侦听端口必须是0-65535之间的整数!");inputPort.setText("");return;}//判断端口号是否合法图4-13连接设置界面点登录,如果服务器端已经启动了服务,则用户可以正常与网管进行聊天。用户登陆后也可以随时注销和退出学生端聊天界面。如果服务器没有被启动,登录就失败。关键代码: try{ socket=newSo

温馨提示

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

最新文档

评论

0/150

提交评论