毕业设计大学设备管理系统.docx
《毕业设计大学设备管理系统.docx》由会员分享,可在线阅读,更多相关《毕业设计大学设备管理系统.docx(78页珍藏版)》请在冰豆网上搜索。
毕业设计大学设备管理系统
毕业设计(论文)
题目:
大学设备管理系统
2014年11月20日
太原科技大学毕业设计(论文)任务书
学院(直属系):
计算机科学与技术系时间:
2014年11月4日
学生姓名
指导教师
设计(论文)题目
大学设备管理系统
主要研
究内容
1.Java面向对象程序设计
2.基于J2EE构架的MIS设计
3.基于C/S模式的MVC开发技术
研究方法
主要进行系统需求分析,数据库分析,编码的设计和实现,最后进行主要功能的测试和运行。
主要技术指标(或研究目标)
采用系统开发的关键技术基于J2EE构架的MIS设计,基于C/S模式的MVC开发技术,JDBC技术。
主要参考文献
[1]印旻.Java语言与面向对象程序设计教程.北京:
清华大学出版社,2010
[2]杨绍方.深入掌握J2EE编程技术.北京:
科学出版社,2012
[3]戴宗友,张伍荣,杨辉.C#程序设计实训.北京:
清华大学出版社,2009.
[4]刘甫迎,谢春,徐虹.Java程序设计实用教程.北京:
科学出版社,2010
[5]孙佳,刘中兵,李伯华.JSP+Oracle动态网站开发实例精选.北京清华大学出版社,2007
大学设备管理系统
摘要
步入21世纪,计算机在管理信息系统(ManagementInformationSystems,MIS)中应用的普及,利用计算机实现管理信息系统有助于企业或其他用人单位方便实现数据处理、预测功能、计划功能、控制功能和辅助决策功能。
MIS是现代用人单位日常工作中必不可缺的一部分,是适应现代管理制度的要求,推动用人单位信息管理走向科学化、规范化的必要条件。
在这篇论文中简单介绍了管理信息系统的背景及主要功能。
并且以“大学设备管理系统”为例开发了一个简单的MIS系统。
由于系统是基于面向对象的开发平台,所以在程序编写过程中多次采用了代码重构技术。
后台数据库采用Mysql5.0。
本系统使用Java开发,Java程序设计语言是一种优秀的程序设计语言,具有简单、体系结构中立、高性能、可移植性等特点。
集成开发环境选用了NetBeans6.5。
NetBeans是比较好的javaswing开发平台,可方便的开发基于swing的java系统工程。
使用NetBeans进行系统开发,可以方便的生成swing界面,进行可视化设计和布局,或添加页面监听器。
关键词:
管理信息系统,面向对象技术,Java,大学设备管理
UniversityEquipmentManagement
Abstract
Withthehighspeedydevelopmentofelectroniccomputerscience,andthecalculatorisintheManagementInformationSystems,andmakeuseofthecalculatortorealizethebusinessenterprisepersonalmanagementbeimperativeunderthesituation.Thehumanresourcealreadyandgraduallybecomesthemostimportantresourcesofthebusinessenterprises.ManagementInformationSystemsthatmanagethatimportance,manageforhumanresourcethemarketforegroundtoprovidetheamplitude.
ItisbetrayedthemainfunctionofManagementInformationSystemsandthebackgroundaswell.Andthe"UniversityEquipmentManagementSystem"developedasimpleMISsystem.Becausethesystemisbasedonobject-orienteddevelopmentplatform,soinprogrammingcodeusedseveraltimesduringthereconstruction.BackgrounddatabaseusingMysql5.0.
ThesystemdevelopmentwithJava,Javaprogramminglanguageisanexcellentprogramminglanguage,whichissimple,architectureneutral,highperformance,portabilityandsoon.ChosenintegrateddevelopmentenvironmentEclipse.NetBeansisagoodjavaswingdevelopmentplatform,canbeeasilydevelopedinjavaswingbasedsystemsengineering.SystemsdevelopmentusingNetBeans,youcangenerateswingconvenientinterfaceforvisualdesignandlayout,oraddthelistener.
Keywords:
managementinformationsystems,OOP,Java,UniversityEquipmentManagement
目 录
第一章前言
1.1课题研究的目的及意义
大学设备管理系统是针对在校学生和设备管理员使用,通过管理系统实现对基本信息和日常业务的管理。
随着计算机应用的不断深入,各行各业几乎与计算机都有密切的联系,人们的生活已离不开计算机。
特别是一些企事业单位,为了适应现代化发展的需要,提高企业的管理水平和办公效率,均以最快的速度引入了计算机,不少企事业单位已经将本单位的计算机连成网络,这样大大加快了企事业单位的办公效率,提高了信息传送的速度。
在学校学生设备的管理过程中,发现了一些问题。
其中如:
新购入的设备没有及时录入,设备借出情况不能跟踪查询。
如果仍然通过纸上的方式对设备进行管理,一方面浪费的大量的人力、物力资源,另一方面浪费时间以及在人为的统计过程中不可避免出现的差错等情况。
因此,利用管理系统,学生设备管理员只需输入关键信息就可以完成以前几倍的工作量,大幅度增加工作效率,设备的管理也可以进行跟踪管理。
1.2管理信息系统简介
所谓MIS(管理信息系统--ManagementInformationSystem)系统,是一个由人、计算机及其他外围设备等组成的能进行信息的收集、传递、存贮、加工、维护和使用的系统,是一门新兴的科学,其主要任务是最大限度的利用现代计算机及网络通讯技术加强企业的信息管理,通过对企业拥有的人力、物力、财力、设备、技术等资源的调查了解,建立正确的数据,加工处理并编制成各种信息资料及时提供给管理人员,以便进行正确的决策,不断提高企业的管理水平和经济效益。
目前,企业的计算机网络已成为企业进行技术改造及提高企业管理水平的重要手段。
MIS系统通常用于系统决策,例如,可以利用MIS系统找出目前迫切需要解决的问题,并将信息及时反馈给上层管理人员,使他们了解当前工作发展的进展或不足。
换句话说,MIS系统的最终目的是使管理人员及时了解公司现状,把握将来的发展路径。
与传统的管理系统相比,在MIS中,处理的对象是抽象成数据的信息,因此,MIS有着自己的巨大优势:
1、解决结构化问题。
2、以高速度低成本完成数据的处理业务,追求系统处理问题的效率。
3、实现一个相对稳定的、协调的工作环境。
4、应用科学的、客观的处理方法,符合实际情况。
传统的MIS系统的核心是C/S(Client/Server——客户端/服务器)架构,而基于Internet的MIS系统的核心是B/S(Browser/Server——浏览器/服务器)架构。
B/S架构比起C/S架构有着很大的优越性,传统的MIS系统依赖于专门的操作环境,这意味着操作者的活动空间受到极大限制;而BS架构则不需要专门的操作环境,在任何地方,只要能上网,就能够操作MIS系统。
这也就给交互式信息的产生创造了先决条件。
使得通过互联网的信息传递更加的便捷。
MIS系统的飞速发展,技术的成熟以及应用领域的不断扩大,为网上信息的交互提供了一个良好的平台和方便的操作界面。
由于MIS系统基于用户需求的设计方法,使得该系统的使用更加的人性化、个人化、更贴近用户。
以MIS系统的构建思想来实现设备统计系统可以最大程度的做到实用性,可扩展性和可维护性相结合,安全性以及规范化原则。
1.3java程序设计语言
Java平台由Java虚拟机(JavaVirtualMachine)和Java应用编程接口(ApplicationProgrammingInterface、简称API)构成。
Java应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。
在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。
现在Java平台已经嵌入了几乎所有的操作系统。
这样Java程序可以只编译一次,就可以在各种系统中运行。
Java应用编程接口已经从1.1x版发展到1.2版。
目前常用的Java平台基于Java1.5,最近版本为Java1.7。
第二章系统设计
2.1需求分析
2.1.1系统设计目标
·对大学设备进行规范化管理。
·支持高效率完成设备信息管理,学生信息管理等。
学生信息管理包括添加学生,学生毕业等操作;设备信息管理包括对设备信息信息的录入,借出,归还,报修,维修等操作。
·图形化界面,力求界面友好、美观。
·软件操作简单,配备详细的说明文档。
·软件不受平台限制可以在大部分主流操作系统上使用。
2.1.2系统功能分析
本系统需要完成的工作如下:
·设备各种信息输入,包括设备基本信息和设备借还信息。
·学生的各种信息的修改。
·对于毕业、退学的学生信息进行修改。
·按照某种条件,查询、统计符合条件的设备信息。
2.2系统概要设计
2.2.1系统模块设计
系统主要划分为五个模块:
1、设备信息维护:
设备的添加大学新进的设别要添加新的商品种类,首先要搜索数据库中是否已经有该类设备,若无则添加,若有则不添加。
设备种类的维护,增加,删除在设备种类的修改界面,显示所有的设备种类信息,将搜索得到的全部信息以表格形式在界面输出,选中要删除的记录点击删除;输入新的设备种类信息信息,点击保存,保存信息。
2、学生信息的维护:
学生的添加学校的新新学生由操作员添加,输入学生的信息,添加学生。
会员信息的修改如果学生毕业了,则在学生信息维护界面中把学生的已毕业项设置成已毕业。
学生借出记录查询显示学生借出设备和归还设备记录。
3、用户信息维护:
增加用户信息在界面表单中填入必要的信息,然后将信息存入数据库。
检查填入信息的准确性,弹出错误提示。
查询用户信息查询出所有用户信息输入用户的必要信息查出指定用户信息。
修改用户信息选定查询结果中要修改的用户信息,将数据出送给弹出的修改界面进行修改,单击确认保存修改内容。
删除用户信息在查询结果中选中要删除的用户ID,点击删除时读取用户ID,删除选定的用户。
4、设备借出管理:
设备借出在设备查询界面选择设备,或手动输入设备号查询设备,点击借出进入设备借出界面,输入学生学号,借出成功,每个学生只能借一个设备
设备归还在设备归还界面选择要归还的设备,或者手动输入要归还的设别ID号,点击归还,保存归还信息.
5、设备报修管理:
设备报修在设备查询界面选择设备报修,或者手动输入设备ID,查询设备,输入损坏情况,点击报修,保存报修信息.
设备维修选择查询界面中的已报修未维修的设备点击维修,进入维修界面填写维修解决方案,保存维修信息.
2.2.2系统功能模块图
图2.1系统功能模块图
第三章数据库设计与实现
数据库是本系统的核心,系统中所有的信息都存储在数据库中,在所有用户界面产生的请求都通过访问相关的Dao层进行数据操作,Dao层通过对JDBC的connection进行封装的工具类进行数据库操作,从而实现相应的功能。
数据库软件有很多。
本系统中数据库采用Mysql作为DBMS。
数据库是软件的核心部分,数据库设计的合理与否对系统的开发有着至关重要的影响。
数据库开发的过程一般先是系统分析,再逻辑设计,然后物理实现。
在系统分析中分析数据库各用户的需求关系,并画出E-R图直观地表示出数据库系统的需求。
逻辑设计中根据系统分析设计出相应的关系模型。
物理设计则为逻辑设计中的数据模型选取较合理物理结构,通常选通过数据库软件创建与逻辑设计中数据模型对应的数据库。
3.1数据库概念设计
本系统的数据库实体主要有“学生”、“设备”、“用户”、“设备种类”等。
其中“学生”与“设备”存在“借出”联系,一个学生可以借一个设备,即“学生”与“设备”之间是一对一的关系。
“用户”与“设备”存在一对多的关系。
一个用户可以报修N个设备,一个设备只能报修一次。
“设备”与设备种类指尖存在多对一的关系,即一个设备只能是一个设备种类,一个设备种类可以有多个设备。
整个数据库可以用一个E-R图表示,如图:
图3.1大学设备管理系统E-R图
3.2数据库逻辑设计
数据库逻辑设计就是将E—R图转换为关系模型的过程,即将所有实体和关系转换成一系列的关系模式。
转换过程中常见规则有:
(1)一个实体型转换为一个关系模式;
(2)一个一对一的联系可转换成一个独立的关系模式,也可与任意一端对应的关系模式合并;
(3)一个一对多的联系可以转换成一个独立的关系模式,也可与多的那一端对应的关系模式合并;
(4)一个多对多的关系转换成一个关系模式。
根据以上四条规则,下面将E—R图转换成关系模型。
设备(设备ID,设备名称,设备借于,设备损坏)key设备ID
学生(学生ID,学生姓名,是否毕业)key学生ID
设备借出(借出ID,设备ID,学生ID,借出日期,是否归还,归还日期,管理员ID)key借出ID
报修(报修ID,设备ID,随坏情况,报修日期,是否解决,解决方案,解决日期,操作员ID)key报修ID
用户(用户ID,用户名,用户密码,用户权限)key用户ID
设备种类(种类ID,种类名称)key种类ID
3.3数据库物理实现
经过数据库系统分析和逻辑设计后,数据库的结构已经非常清晰,剩下的就是用一种数据库软件实现这样的结构。
本系统中数据库采用Navicat作为数据库工具。
首先在Navicat的数据库连接中创建一个数据库,命名为“lab”,然后通过导入sql文件,新建数据表。
sql部分建表语句:
------------------------------
--Tablestructurefor`device`
------------------------------
DROPTABLEIFEXISTS`device`;
CREATETABLE`device`(
`DID`int(11)NOTNULLauto_increment,
`KID`int(11)NOTNULL,
`daqian`varchar(30)NOTNULL,
`SID`int(11)defaultNULL,
`Dbad`varchar
(2)NOTNULLdefault'0',
PRIMARYKEY(`DID`),
KEY`id`(`DID`)
)ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARSET=utf8;
------------------------------
--Tablestructurefor`kind`
------------------------------
DROPTABLEIFEXISTS`kind`;
CREATETABLE`kind`(
`KID`int(11)NOTNULLauto_increment,
`Kname`varchar(30)NOTNULL,
PRIMARYKEY(`KID`)
)ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARSET=utf8;
第四章程序代码结构
4.1系统总体架构
程序共分为三层,第一层SwingUI层,次层负责与用户交互,收集用户提交的数据,传递给下一层,并将下一层传递过来的数据显示在UI界面上。
第二层为Dao数据持久化层,此层封装数据的持久化操作,对用户提交的对象进行持久化操作。
UI层通过Dao层取得数据显示在UI界面上,并传递数据给Dao层,让Dao层进行持久化。
第三层为JDBC操作和事物管理层,此层封装了JDBC的connection对象的操作,并提供执行sql语句的方法供Dao层调用,对特定的方法,如update,delete,insert启用JDBC事物管理。
4.2JDBC数据库连接的封装
JDBC的数据库连接对象connection通过ConnectionFactory类进行封装,类内部配置connection连接参数,通过get方法取得connection对象,把数据库连接从持久化层独立出来,一旦数据库变迁,可以通过修改此类中的属性来修改连接参数,从而降低数据库连接模块和数据持久化模块的耦合,达到方便维护的目的维护。
关键代码
publicstaticConnectiongetConn(){
Class.forName(driverName);
conection=DriverManager.getConnection(url,user,password);
returnconection;
}
4.3DBOprate数据库操作和事物的封装
数据库操作无外乎增删改查,而要进行事物管理的只是曾、改和删操作。
所以,在DBOprate类中封装所有数据库的基本操作,对要进行事物管理的操作启动事务管理,把事物和对数据库连接connection对象的操作封装起来,在类内部完成,起到数据库连接和数据持久化层的中间件的作用,并对事物进行管理。
关键代码:
publicstaticvoidbeatchInsert(Stringsql,intnum)throwsSQLException{
createstmt();
conn.setAutoCommit(false);
for(intj=0;j<=num;j++){
stmt.addBatch(sql);
}
stmt.executeBatch();
mit();
conn.setAutoCommit(true);
}
4.4对象持久化Dao层
此层封装了对象的持久化操作,所有对指定对象的操作都定义在此层中。
Dao层采用工厂设计模式,结构包括Dao接口、Dao实现类、Dao工厂类。
采用工厂设计模式的好处是将Dao实现类的耦合降到最低,当要替换Dao实现类时,只需继承当前Dao实现类,覆盖要修改的方法,或者实现Dao接口,实现所有接口定义的方法。
Dao工厂采用单例设计模式,UI层操作的所有Dao对象都是同一个引用,节约系统资源。
工厂代码:
publicclassDeviceDAOFactory{
privatestaticfinalDeviceDAOdeivceDao=newDeviceDAOImp();
publicstaticDeviceDAOgetInstance(){
returndeivceDao;
}
}
4.5UI用户界面层
UI界面按功能模块划分独立Jpane,再由MainView组合成完整的应用程序的方法减少UI模块间的耦合。
主页面MainView将它所有要显示的Jpane设为属性公共,并将自己的引用通过Jpane的构造函数传递给各个模块,这样模块之间就可以互相调用方法,传递参数。
MainView类构造器代码:
publicMainView(Useruser){
this.setTitle("实验室设备管理系统");
initComponents();
this.user=user;
deviceView=newDeviceView(this);
loanView=newLoanView(this);
repariView=newRepairView(this);
studentView=newStudentView(this);
userView=newUserView(this);
jTabbedPane1.add(deviceView,"设备管理");
jTabbedPane1.add(loanView,"设备借出");
jTabbedPane1.add(repariView,"设备报修");
jTabbedPane1.add(studentView,"学生管理");
jTabbedPane1.add(userView,"用户信息修改");
}
第五章主要功能测试
软件测试是软件开发过程的重要组成部分,是用来确认一个程序的品质或性能是否符合开发之前的需求。
软件测试的目的,首先是要确定软件的质量,其中一方面是确认软件做了所期望做的事情,另外一方面是确认软件以正确的方式来做了这个事情。
其次是提供信息,例如给开发人员或程序员的反馈信息,为风险评估所准备的信息。
最后,软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程,如果一个软件产品开发完成后出现了很多问题,这说明此软件开发过程很可能是存在缺陷的,因此软件测试的第三个目的是保证软件开发过程是高质量的。
5.1登录模块
图5.1登陆界面
用户输入用户名密码,判断是否正确正确则根据用户权限跳转到相应的页面
关键代码如下:
Useruser=newUser();
user.setUname(jTextField1.getText());
user.setUpassw(jPasswordField1.getText());
if(jTextField1.getText().equals("")
||jPasswordField1.getText().equals("")){
JOptionPane.showMessageDialog(null,"用户名和密码不能为空");
return;
}
Userright