还剩34页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
《数据库》实习报告课题人事管理系统课程名称数据库原理及应用学生姓名学生学号所在专业计算机科学与技术所在班级指导老师徐龙琴成绩目录TOC\o1-3\h\z\u设计总说明
31.人事管理系统概述
41.1研究背景
41.2意义及目的开发
42.系统需求分析
52.1开发环境和软件
52.2系统设计与功能分析
53.数据库设计
63.1系统概念结构设计
63.
1.1系统功能模块图
63.
1.2数据流程图
73.2系统逻辑结构设计
83.3物理结构设计
103.4数据库关系图
114.系统模块设计概述
144.1用户登录模块
144.2系统管理模块
144.3信息管理模块
144.4信息查询模块
154.5其他模块
155.系统运行与测试
165.1用户登录
165.2系统管理
165.3信息管理
175.4信息查询
195.5其他模块
205.
5.1关于
205.
5.2计算器
205.
5.3退出
205.6优缺点自我评价
216.课程设计总结
227.附录(代码)23参考文献36设计总说明
1.设计概况名称人事管理系统用途学校等机构功能实现对员工信息的管理与维护等功能
1.设计说明学生学籍管理系统,可用于学校等机构的学生信息管理,查询,更新与维护,使用方便,易用性强,图形界面清晰明了该软件用java语言编写,用SQLServer2005数据库作为后台的数据库进行信息的存储,用SQL语句完成添加,查询,修改,删除的操作用ODBC驱动实现前台Java与后台SQL数据库的连接Java语言跨平台性强,可以在windows,linux,ubuntu等系统下使用,方便简单,安全性好SQLServer2005数据库高效安全,两者结合可相互利用各自的优势该系统实现的大致功能系统功能的基本要求员工各种信息的输入,包括员工的基本信息、学历信息、婚姻状况信息、职称等员工各种信息的修改;对于转出、辞职、辞退、退休员工信息的删除;按照一定的条件,查询、统计符合条件的员工信息;至少应该包括每个员工详细信息的查询、按婚姻状况查询、按学历查询、按工作岗位查询等,至少应该包括按学历、婚姻状况、岗位、参加工作时间等统计各自的员工信息;对查询、统计的结果打印输出3.本系统只实现了基本操作功能,对于一些更大型、属性更多、关系更复杂的企业,便利性和安全性仍有不足,使用过程中造成的不便还请谅解!
1.人事管理系统概述
1.1研究背景人事管理系统是企业管理系统中不可缺少的重要组成部分它的内容对于企业的决策者和管理者来说都至关重要所以人事档案管理系统应该能够为用户提供充足的信息和快捷的查询手段但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点如:效率低、保密性差另外时间一长将产生大量的文件何数据这对于查找、更新和维护都带来了不少的困难随着科学技术的不断提高计算机科学日渐成熟其强大的功能已为人们深刻认识它已进入人类社会的各个领域并发挥着越来越重要的作用
1.2意义及目的开发作为计算机应用的一部分使用计算机对人事档案信息进行管理具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等这些优点能够极大地提高人事档案管理的效率也是企业的科学化、正规化管理与世界接轨的重要条件因此,开发这样一套管理软件成为很有必要的事情本系统针对以上缺点能够极大地提高学生信息管理的效率也是科学化、正规化的管理与世界接轨的重要条件所以如何自动高效地管理信息是这些年来许多人所研究的一个健全的人事管理系统是一个学校或某个集体单位正常运作的必要条件,使人事管理方便快捷而又清晰,面对各种不同种类的信息,需要合理的数据库结构来保存数据信息以及有效地程序结构来支持各种数据的操作的执行实现集体单位管理系统化,规范化和自动化,从而达到提高人事管理的工作效率和工作质量的目的
2.系统需求分析
2.1开发环境和软件本学籍采用Java语言编写前台程序,后台采用SQLServer2005软件管理数据库,调试和运行皆由EclipseSDKv
3.
5.0完成
2.2系统设计与功能分析系统设计的基本思想
1.用户登录模块
2.系统管理模块1)密码修改2)重新登录3)添加/删除用户4)退出系统
3.信息管理模块1)对学校里所有员工和院系进行统一标号,将每一位员工的信息保存在员工档案记录中2)对新聘的员工,将其信息加入到员工档案记录中;对于转出、退休、辞职、辞退的员工,将其信息从员工档案记录中删除3)当员工信息发生变动时,修改员工档案记录中相应的属性
4.信息查询模块查询员工信息及院系信息
5.其他模块1)计算器2)关于系统的说明3)退出系统功能的基本要求员工各种信息的输入,包括员工的基本信息、学历信息、婚姻状况信息、职称等员工各种信息的修改;对于转出、辞职、辞退、退休员工信息的删除;按照一定的条件,查询、统计符合条件的员工信息;至少应该包括每个员工详细信息的查询、按婚姻状况查询、按学历查询、按工作岗位查询等,至少应该包括按学历、婚姻状况、岗位、参加工作时间等统计各自的员工信息;对查询、统计的结果打印输出
3.数据库设计
3.1系统概念结构设计
3.
1.1系统功能模块图
3.
1.2数据流程图
3.2系统逻辑结构设计画出系统E-R图图4员工实体图图5院系实体图图6管理员实体图员工图7各实体之间联系图(总体E-R图)
3.3物理结构设计数据库物理设计阶段的任务是根据具体计算机系统的特点,给给定的数据库系统确定合理的存储结构和存取方法所谓的“合理”主要有两个含义一个是要使设计出的物理数据库占用较少的存储空间,另一个对数据库的操作具有尽可能高的速度主要体现在索引和存储结构的设置
(1)建立索引
1.对员工信息表在属性列员工编号上建立聚集索引,在属性列身份证号建立唯一索引;
2.对院系信息表在属性列院系编号上建立聚集索引;
(2)存储过程1.创建不带参数的存储过程查询在信息学院的员工的编号和姓名createprocedures2asselect员工编号员工姓名from员工信息where院系编号=select院系编号from院系信息where院系名称=信息学院goexecs22.创建带参数的存储过程根据用户输入的员工编号,输出其姓名和学历createprocedures1@员工编号int@员工姓名nchar10output@学历nchar10outputasselect@学历=学历@员工姓名=员工姓名from员工信息where员工编号=@员工编号godeclare@员工姓名nchar10@学历nchar10execs12@员工姓名output@学历outputselect员工姓名=@员工姓名学历=@学历
(3)存储结构确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系,索引,日志,备份等的存储安排及存储结构,以及确定系统存储参数的配置将日志文件和数据库(表,索引等)分别放在不同的磁盘,可以改进系统的性能,提高系统的安全性,所以,系统应将日志文件存放在不同的磁盘上
3.4数据库关系图关系模型1岗位信息表(岗位编号,岗位名称)其中岗位编号为主键;2用户表(管理员ID密码)管理员ID为主键;3员工信息表(员工编号,员工姓名,性别,院系编号,岗位编号,职称编号,婚姻状况,民族,学历,联系方式,住址,身份证号,工资)其中员工编号为主键,院系编号、岗位编号、职称编号均为外键;4院系信息表(院系编号,院系名称)其中院系编号为主键;5职称信息表(职称编号,职称名称)其中职称编号为主键数据库表
(1)岗位信息表
(2)用户表
(3)员工信息表
(4)院系信息表
(5)职称信息表
4.系统模块设计概述
4.1用户登录模块该模块用于管理员的登录,后台数据库的用户表中给出了三个管理员ID和相对应的密码,只有输入正确方可进入系统
4.2系统管理模块功能如下图所示(具体见系统运行与测试此模块)
4.3信息管理模块功能如下图所示1)对学校里所有员工和院系进行统一标号,将每一位员工的信息保存在员工档案记录中2)对新聘的员工,将其信息加入到员工档案记录中;对于转出、退休、辞职、辞退的员工,将其信息从员工档案记录中删除3)当员工信息发生变动时,修改员工档案记录中相应的属性(见系统运行与测试此模块)
4.4信息查询模块功能如下图所示(具体见系统运行与测试此模块)
4.5其他模块此模块主要用于显示此系统的运行环境、开发环境等信息,考虑到管理员可能要用到数值、统计等计算等,我们还提供了计算器
5.系统运行与测试
5.1用户登录
5.2系统管理
5.3信息管理
5.4信息查询
5.5其他模块
5.
5.1关于
5.
5.2计算器
5.
5.3退出主界面左边一列最下一个即为退出按钮
5.6优缺点自我评价优点
(1)Java语言跨平台性强,可以在windows,linux,ubuntu等系统下使用,方便简单,安全性好SQLServer2005数据库高效安全,两者结合可相互利用各自的优势;
(2)此系统界面整洁大方,功能较强大,根据界面的布局提示,用户可快速方便地操作,考虑到用户可能要进行统计和数值运算,更加体现了人性化的设计构思;
(3)后台的数据库设计基本符合3NF的要求,表格设计了五张,每张表的属性都根据实际情况定义类型和相应的约束,基本涵盖了一个小型企业需要的信息,表和表之间的关系(外键与主键的建立)也基本符合实际要求,为了便于快速查询信息,建立了聚集索引和唯一索引,也建立了有参数和无参数的存储过程;
(4)此系统只能供有权限的管理员登录与操作,提高了安全性缺点
(1)对于员工信息表,当时忘了加“出生日期”这一重要属性,接近尾声时才发现,可是由于时间紧迫,没有修改;
(2)五张表之间,岗位信息表和职称信息表与其他表的联系不是太密切,应当直接加入属性,也是由于时间紧迫,没有修改,照成了数据冗余;
(3)建立的存储过程在界面代码中未调用,用户只是管理员类型,没有设置具体的权限,使得其他人员无法操作;
(4)功能强大的同时,代码相应比较多,虽然注释了不少,可对于普通用户来说,看起来还是比较不方便,这些代码也照成了一定程度上的资源浪费;
(5)对于员工信息的查询,只能直接显示院系、职称、岗位编号,无法显示相应的信息
6.课程设计总结在我看来,数据库课程设计主要的目标是利用课程中学到的数据库知识和技术较好的开发设计出数据库应用系统,去解决各行各业信息化处理的要求通过这次课程设计,可以巩固我们对数据库基本原理和基础理论的理解,掌握数据库应用系统开发的基本方法,进一步提高我们综合运用所学知识的能力当我们先确定下来要做的题目时,并不是急着着手写程序而是大家一起商量这个系统概述、系统目标、系统需求、业务流程分析、数据流程分析和数据词典,做好这些工作以后,我们各个组员作了一些分工在主要功能方面我主要负责实现添加和删除用户、用户密码修改的功能的实现,相对于而言,我的工作比较轻松,其中加入了一个计算器类,主要负责计数,这是一个人性化的考虑在里面我们的分工不同,遇到的困难自然也就不一样了,我们平时都是独立做自己的那一部分,但是会及时将自己的进展告知组员,以便一个的系统的完美完成当然我们也会集中起来探讨一下各自遇到的问题,大家共同想办法解决,搜索资料、借阅大量书本、向其他同学请教等等都是我们解决问题的方式,最终在大家的努力下,不太完美却是很认真完成的系统诞生了!辛苦在这时显得是那么苍白无力,兴奋的尽头淹没了所有的辛苦以前也做过课程设计,但是这次的课程设计涉及到的开发工具不一样了,最主要的不一样体现在我们要用到两个开发平台,我们不仅要做出前台数据库,还要与后台开发的数据库进行连接,这是一个全新的认识我们不可能将大量的数据直接放在代码之中对于SQL2005可以熟练的应用,主要得益于老师要求我们平时做的一些实验,所以在后台的设计和操作没有花费太多的时间,虽然平时抱怨实验太多,这个时候还是不会忘记感谢老师平时的严格要求后台的开发对我来说真的是空前的挑战,首先涉及到的Java语言是在老师的要求下,自己在图书馆借书学得,绝对的半桶水,困难很大也很多,在组员的帮助下也算成功的克服了那些困难,得到一个圆满的结局!当我遇到错误的时候,感到很受打击;值得欣慰的是,在组员的帮助和大量参考书的查阅下,最终成功了!这次课程设计让我懂得遇到困难永不放弃的重要性,我知道了团队合作的重要性,我领悟了只有坚持不懈才会取得胜利.
7.附录(代码)关于类主要功能显示人事管理系统的一些相关信息源代码:packagea;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassAboutextendsJInternalFrame{JLabellabel=newJLabel运行环境Windows;JLabellabe2=newJLabel开发环境JAVA,SQLServer;JLabellabe3=newJLabel制作人员郝中奎、马家权、童孟丹;JLabellabe4=newJLabel对应学号201011621407;201011621421;201011621322;publicAbout{setTitle关于;Containercon=getContentPane;con.setLayoutnewGridLayout41;con.addlabel;con.addlabe2;con.addlabe3;con.addlabe4;con.setBackgroundColor.white;setResizablefalse;setSize380220;setVisibletrue;setClosabletrue;}}添加和删除用户类主要功能用于添加和删除管理员的帐号信息源代码packagea;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.JButton;importjavax.swing.JComboBox;importjavax.swing.JLabel;importjavax.swing.JOptionPane;importjavax.swing.JPasswordField;importjavax.swing.JTextField;publicclassAddDeleteUserextendsjavax.swing.JInternalFrame{privateJButtonbutACancelbutDCancelbutDeletebutOk;privateJComboBoxcbUserName;privateJLabeljLabel1jLabel2jLabel3jLabel4jLabel5;privateJPasswordFieldpas1pas2pas3;privateJTextFieldtxtname;publicAddDeleteUser{initComponents;this.setVisibletrue;this.setClosabletrue;this.setSize268350;}privatevoidinitComponents{jLabel1=newJLabel;jLabel2=newJLabel;jLabel3=newJLabel;txtname=newJTextField;pas1=newJPasswordField;pas2=newJPasswordField;butOk=newJButton;butACancel=newJButton;jLabel4=newJLabel;cbUserName=newJComboBox;jLabel5=newJLabel;pas3=newJPasswordField;butDelete=newJButton;butDCancel=newJButton;getContentPane.setLayoutnull;jLabel
1.setText新用户名:;getContentPane.addjLabel1;jLabel
1.setBounds30307020;jLabel
2.setText输入密码:;getContentPane.addjLabel2;jLabel
2.setBounds30607018;jLabel
3.setText确认密码:;getContentPane.addjLabel3;jLabel
3.setBounds30906018;getContentPane.addtxtname;txtname.setBounds1003013024;getContentPane.addpas1;pas
1.setBounds1006013024;getContentPane.addpas2;pas
2.setBounds1009013024;butOk.setText添加;getContentPane.addbutOk;butOk.setBounds801307027;butACancel.setText清空;getContentPane.addbutACancel;butACancel.setBounds1601307027;jLabel
4.setText已有用户名:;getContentPane.addjLabel4;jLabel
4.setBounds301808018;getContentPane.addcbUserName;cbUserName.setBounds10018013024;jLabel
5.setText密码:;getContentPane.addjLabel5;jLabel
5.setBounds302106018;getContentPane.addpas3;pas
3.setBounds10021613024;butDelete.setText删除;getContentPane.addbutDelete;butDelete.setBounds792607027;butDCancel.setText清空;getContentPane.addbutDCancel;butDCancel.setBounds1602607027;//将所有用用户名读出来Database.joinDB;Stringsql=select*from用户;try{ifDatabase.querysql{whileDatabase.rs.next{Stringname=Database.rs.getString管理员ID;cbUserName.addItemname;}}}catchExceptione{}//为添加和取消按钮加事件-----------------------------------------butOk.addActionListenernewActionListener{publicvoidactionPerformedActionEvente{iftxtname.getText.equals{newJOptionPane.showMessageDialognull用户名不能为空!;}elseifpas
1.getText.equals{newJOptionPane.showMessageDialognull密码不能为空!;}elseifpas
1.getText.equalspas
2.getText{Stringsql=insert用户values+txtname.getText++pas
1.getText+;try{ifDatabase.executeSQLsql{newJOptionPane.showMessageDialognull添加成功!;cbUserName.addItemtxtname.getText;}}catchExceptionea{}}}};butACancel.addActionListenernewActionListener{publicvoidactionPerformedActionEvente{txtname.setText;pas
1.setText;pas
2.setText;}};//为删除和取消按钮加事件---------------------------------------butDelete.addActionListenernewActionListener{publicvoidactionPerformedActionEvente{Stringname=+cbUserName.getSelectedItem;Stringsql=select*from用户where管理员ID=+name+;try{ifDatabase.querysql{Database.rs.next;Stringpas=pas
3.getText;Stringpassword=Database.rs.getString密码;System.out.printlnpassword;ifpas.equalspassword{Stringsdelete=deletefrom用户where管理员ID=+name+;ifDatabase.executeSQLsdelete{newJOptionPane.showMessageDialognull删除成功!;pas
3.setText;cbUserName.removeAllItems;Stringsql1=select*from用户;ifDatabase.querysql1{whileDatabase.rs.next{Stringname1=Database.rs.getString管理员ID;cbUserName.addItemname1;}}}}else{newJOptionPane.showMessageDialognull密码不正确!;}}}catchExceptionel{System.out.printlnel;}}};butDCancel.addActionListenernewActionListener{publicvoidactionPerformedActionEvente{pas
3.setText;}};}}用户修改密码类主要功能用于修改相应管理员帐号的密码源代码packagea;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.sql.*;publicclassAmendPasswordextendsJInternalFrame{JLabellbe1=newJLabel修改密码;JPanelp=newJPanel;publicAmendPassword{setTitle修改密码;p.addlbe1;AmendPanelpanel=newAmendPanel;ContainercontentPane=getContentPane;contentPane.addpNorth;contentPane.addpanelCenter;setBounds100100280260;this.setClosabletrue;setVisibletrue;}}classAmendPanelextendsJPanel{JButtonb1b2;JLabellbe2lbe3lbe4lbe5;JPasswordFieldpas1pas2pas3;JComboBoxtf;publicAmendPanel{lbe2=newJLabel用户名:;lbe3=newJLabel输入旧密码:;lbe4=newJLabel输入新密码:;lbe5=newJLabel确定新密码:;tf=newJComboBox;pas1=newJPasswordField;pas2=newJPasswordField;pas3=newJPasswordField;b1=newJButton确定;b2=newJButton清空;addlbe2;lbe
2.setBounds16109025;this.addtf;tf.setBounds1001012025;addlbe3;lbe
3.setBounds16459025;addpas1;pas
1.setBounds1004512025;addlbe4;lbe
4.setBounds16808025;addpas2;pas
2.setBounds1008012025;addlbe5;lbe
5.setBounds161158025;addpas3;pas
3.setBounds10011512025;addb1;b
1.setBounds1001606030;addb2;b
2.setBounds1601606030;setLayoutnull;//将所有用用户名读出来Database.joinDB;Stringsql=select*from用户;try{ifDatabase.querysql{whileDatabase.rs.next{Stringname=Database.rs.getString管理员ID;tf.addItemname;}}}catchExceptione{}//为确定取消按钮加事件b
1.addActionListenernewActionListener{publicvoidactionPerformedActionEvente{Stringname=+tf.getSelectedItem;System.out.printlnname;Stringsql=select*from用户where管理员ID=+name+;System.out.printlnsql;try{ifDatabase.querysql{Database.rs.next;Stringps1=pas
1.getText;Stringpassword=Database.rs.getString密码;ifps
1.equalspassword{ifpas
2.getText.equalspas
3.getText{Stringsupdate=update用户set密码=+pas
3.getText+where管理员ID=+name+;Database.executeSQLsupdate;newJOptionPane.showMessageDialognull密码更改成功!;}else{newJOptionPane.showMessageDialognull两次密码不同!;}}else{newJOptionPane.showMessageDialognull旧密码不正确!;}}}catchExceptionel{System.out.printlnel;}}};b
2.addActionListenernewActionListener{publicvoidactionPerformedActionEvente{pas
1.setText;pas
2.setText;pas
3.setText;}};}}计算器类主要功能计算功能源代码packagea;importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;importjava.io.*;importjava.sql.*;publicclassCalculatorextendsJInternalFrameimplementsActionListener{privateJTextFielddisplayText=newJTextField;privateJButtonbuttonTag=newJButton;privateJButtonbuttonBackspace=newJButtonBackspace;privateJButtonbuttonCe=newJButtonCE;privateJButtonbuttonc=newJButtonC;privateJButton[]button=newJButton
[24];privateString[]keys={MC789/sqrtMR456*%MS123-1/xM+0+/-.+=};privateStringnumStr1=;privateStringnumStr2=;privateStringnumsave=;privatecharop;privatebooleanfirstInput=true;privatebooleanoperatorTag1=true;privatebooleanoperatorTag2=true;publicCalculator{setTitle计算器;setSize345265;Containerpane=getContentPane;pane.setLayoutnull;displayText.setHorizontalAlignmentJTextField.RIGHT;displayText.setSize32030;displayText.setLocation1010;pane.adddisplayText;buttonTag.setSize6030;buttonTag.setLocation1050;pane.addbuttonTag;buttonBackspace.setSize11030;buttonBackspace.setLocation9050;buttonBackspace.setForegroundColor.red;buttonBackspace.addActionListenerthis;pane.addbuttonBackspace;buttonCe.setSize6530;buttonCe.setLocation20050;buttonCe.setForegroundColor.red;pane.addbuttonCe;buttonc.setSize6530;buttonc.setLocation26550;buttonc.setForegroundColor.red;buttonc.addActionListenerthis;pane.addbuttonc;intxy;x=10;y=85;forintind=0;ind24;ind++{button[ind]=newJButtonkeys[ind];button[ind].addActionListenerthis;button[ind].setLocationxy;ifind%6==0||ind%6==5{button[ind].setSize6030;x=x+60;}else{button[ind].setSize5030;x=x+50;}ifind%6==0||ind%6==4||ind%24==23button[ind].setForegroundColor.red;elsebutton[ind].setForegroundColor.blue;pane.addbutton[ind];ifind+1%6==0{x=10;y=y+30;}}setVisibletrue;this.setClosabletrue;}publicvoidactionPerformedActionEvente{StringresultStr=;Stringstr=String.valueOfe.getActionCommand;charch=str.charAt0;ifstr.equals0||str.equals1||str.equals2||str.equals3||str.equals4||str.equals5||str.equals6||str.equals7||str.equals8||str.equals9||str.equals.{iffirstInput{numStr1=numStr1+ch;displayText.setTextnumStr1;}else{numStr2=numStr2+ch;displayText.setTextnumStr2;}}elseifstr.equals+||str.equals-||str.equals*||str.equals/operatorTag2{ifnumStr
2.equalsop=ch;else{resultStr=evaluate;displayText.setTextresultStr;numStr1=resultStr;numStr2=;op=ch;}firstInput=false;//operatorTag1=false;}elseifstr.equals={resultStr=evaluate;displayText.setTextresultStr;numStr1=;numStr2=;firstInput=true;}elseifstr.equalsC{displayText.setText;numStr1=;numStr2=;firstInput=true;}elseifstr.equalssqrt|str.equals1/x!numStr
1.equalsoperatorTag1{floatA=Float.parseFloatnumStr1;floatresult=0;ifstr.equalssqrtresult=floatMath.sqrtA;ifstr.equals1/xresult=1/A;numStr1=Float.toStringresult;displayText.setTextnumStr1;firstInput=false;}elseifstr.equalsBackspace{Stringstr1=displayText.getText;if!str
1.equals{displayText.setTextstr
1.substring0str
1.length-1;if!numStr
1.equalsnumStr1=displayText.getText;elsenumStr2=displayText.getText;}}elseifstr.equalsMS{numsave=displayText.getText;buttonTag.setTextM;numStr1=;}elseifstr.equalsMC{numsave=;buttonTag.setText;}elseifstr.equalsMR{displayText.setTextnumsave;}elseifstr.equalsM+{}}privateStringevaluate{if!numStr
1.equals!numStr
2.equals{floatA=Float.parseFloatnumStr1;floatB=Float.parseFloatnumStr2;floatresult=0;switchop{case+:result=A+B;break;case-:result=A-B;break;case*:result=A*B;break;case/:result=A/B;break;}returnString.valueOfresult;}elsereturnnumStr1;}}参考文献【1】《数据库系统概论》(第四版)王珊萨师煊编著北京高等教育出版社
2006.5【2】《Java2实用教程》(第三版)耿祥义张跃平编著北京清华大学出版社
2006.8【3】《软件工程》(第三版)张海藩倪宁编著北京人民邮电出版社
2010.2【4】《SQLServer2005实用教程》国防科技大学出版社【5】《Java2实用教程实验指导与习题解答》(第三版)耿祥义张跃平编著北京清华大学出版社
2006.10人事管理系统系统管理信息管理信息查询用户登录其他院系信息管理员工信息管理员工信息查询院系信息查询关于计算器退出密码修改重新登录添加/删除用户退出系统添加修改删除添加修改删除员工姓名院系编号工资编号岗位编号名族学历婚姻状况性别职称编号身份证号联系方式住址院系院系编号号院系名称管理员用户名密码编号院系1员工n管理员1属于管理管理员ID管理密码员工编号姓名性别婚姻状况民族学历岗位编号工资联系电话住址身份证号院系编号院系名称职称编号。