沈阳航空航天大学课程设计报告课程设计名称:软件综合课程设计课程设计题目:人事档案管理系统院(系):计算机学院专业:班级:学号:姓名:指导教师:完成日期:目录1 系统分析 01.1需求分析 01.2编程技术简介 02 系统设计 (2)2.1系统模块设计 (2)2.2 系统预览 (3)2.3主流程图 (5)2.4.1数据库设计 (6)2.4.2数据库概念设计............................... 错误!未定义书签。
2.4.3数据库逻辑设计 (7)3 具体设计......................................... 错误!未定义书签。
3.1系统登录界面设计 (10)3.2系统主体窗体设计 (11)3.3添加/删除用户名模块.............................. 错误!未定义书签。
3.4员工信息管理模块 (21)3.5员工信息查询模块 (22)4 调试分析 (25)文件清单 (26)参考文献 (27)1 系统分析1.1需求分析伴随着企业人事管理系统化的日益完善,企业人事管理系统在企业管理中越来越受到企业管理者的青睐。
企业人事管理系统的功能全面、操作简单,可以快速地为员工建立电子档案,这样做不但便于修改、保存和查看,而且实现了无纸化存档,为企业节省了大量资金和空间。
通过企业人事管理系统,还可以实现对企业员工的个人信息管理、奖惩管理、培训管理、待遇管理和相关信息查询。
1.2编程技术简介本次课设我主要使用的软件是NetBeans IDE 7.1.3和Navicat for MySQL,语言则以Java为主。
NetBeans IDE 7.1.3:NetBeans是开源软件开发集成环境,是一个开放框架,可扩展的开发平台,可以用于Java、C/C++,PHP等语言的开发,本身是一个开发平台,可以通过扩展插件来扩展功能。
在 NetBeans Platform 平台中,应用软体是用一系列的软体模组(Modular Software Components)建构出来。
而这些模组是一个jar档(Java Archive File)它包含了一组Java程式的类别而它们实作全依据依 NetBeans 定义了的公开界面以及一系列用来区分不同模组的定义描述档(Manifest File)。
有赖于模组化带来的好处,用模组来建构的应用程式可只要加上新的模组就能进一步扩充。
由于模组可以独立地进行开发,所以由 NetBeans 平台开发出来的应用程式就能利用着第三方软件,非常容易及有效率地进行扩充。
Navicat for MySQL:Navicat for MySQL[1]是一款强大的 MySQL 数据库管理和开发工具,它为专业开发者提供了一套强大的足够尖端的工具,但对于新用户仍然易于学习。
Navicat for MySQL 基于Windows平台,为 MySQL 量身订作,提供类似于 MySQL 的用管理界面工具。
此解决方案的出现,将解放 PHP、J2EE 等程序员以及数据库设计者、管理者的大脑,降低开发成本,为用户带来更高的开发效率。
Navicat for MySQL 使用了极好的图形用户界面(GUI),可以用一种安全和更为容易的方式快速和容易地创建、组织、存取和共享信息。
用户可完全控制MySQL 数据库和显示不同的管理资料,包括一个多功能的图形化管理用户和访问权限的管理工具,方便将数据从一个数据库转移到另一个数据库中(Local to Remote、Remote to Remote、Remote to Local),进行档案备份。
Navicat for MySQL 支援 Unicode,以及本地或远程 MySQL 服务器多连线,用户可浏览数据库、建立和删除数据库、编辑数据、建立或执行 SQL queries、管理用户权限(安全设定)、将数据库备份/复原、汇入/汇出数据(支援 CSV, TXT, DBF 和 XML 档案种类)等。
软件与任何 MySQL 5.0.x 伺服器版本兼容,支援 Triggers,以及 BINARY VARBINARY/BIT 数据种类等的规范。
Java语言:Java编程语言的风格十分接近C、C++语言。
Java是一个纯粹的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。
Java舍弃了C 语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。
2 系统设计2.1 系统模块设计企业人事管理系统主要包括系统管理信息管理和信息查询三大功能模块用来提供对企业员工的信息管理和查询以及对相关部门的管理,还包括用户的管理。
根据企业对人事管理的要求,本系统需要实现以下目标:(1)操作简单方便、界面简洁大方。
(2)方便快捷的人员信息管理。
(3)简单实用的奖惩管理。
(4)简单实用的培训管理。
针对企业中不同的待遇标准,实现待遇薪酬管理。
企业人事管理系统的功能结构如图2.1所示图2.1 企业人事管理系统功能模块图2.2 系统预览企业人事管理系统由多个界面组成,下面仅列出几个典型界面,其他界面效果可参见源程序。
企业人事管理系统的主体界面效果如图2.2所示。
图2.2企业人事管理系统的主体界面员工信息界面效果如图2.3所示。
图2.3员工信息界面员工信息查询界面效果如图2.4所示。
图2.4员工信息查询界面员工薪酬信息管理界面效果如图2.5所示。
图2.5 薪酬信息管理界面2.3 主流程图进入网站时,先输入用户名和密码验证登录,验证成功后,再选择与需求相应的页面,按要求输入相应的信息,页面会自动判断以提供满足用户要求的信息。
如果验证失败,则需要用户添加注册信息。
如图2.6所示。
图2.6 系统主流程图2.4.1 数据库设计企业人事管理系统的需求主要包括对人员信息的管理和查询,其中包括对人员个人信息职位部门的查询添加修改删除;人事奖惩培训信息的管理和人员薪酬信息的管理。
2.4.2 数据库概念设计数据库设计是系统设计过程中的重要组成部分,它是通过管理系统的整体需求而制定的,数据库的好坏直接影响到系统的后期开发。
下面对本系统中具有代表性的数据库设计进行详细说明。
在开发企业人事管理系统时,最重要的是人员信息。
人员信息表实体属性图本系统还提供用户信息管理和部门信息管理,下面给出用户信息表和部门信息表的实体属性图如图2.8和2.9所示。
图2.8用户表实体属性图图2.9部门表实体属性图本系统同时也提供培训信息管理和奖惩信息管理,下面给出培训信息表和奖惩信息表的实体属性图如图2.10和2.11所示图2.10 信息表实体属性图图2.11奖惩表实体属性图系统也提供了薪酬信息管理,下面给出薪酬信息表的实体属性图如图 2.14所示。
2.4.3 数据库逻辑设计在MySQL数据库中,创建名为xiezhenghuip的数据库。
然后在数据库中根据数据表的E-R图创建数据表。
(1)userinformation的结构如表2.1所示。
表2.1 userinformation表(2(3表2.3 departmentinformation(4(5(63 具体设计3.1 系统登录界面设计系统用户登录窗体主要用来验证用户的登录信息,完成用户的登录功能,该模块的运行结果如图3.1所示。
图3.1用户登录窗体登陆系统是验证用户是否可以使用此系统,如果输入的用户名和密码正确,选择身份正确,才可以验证成功,登录此系统进行使用,否则,信息不正确或者身份不争取,都不可以进入此系统。
如图3.2所示图3.2 登录系统流程图登陆界面输入用户名,密码,身份主界面N开始验证信息成功结束登录失败3.2 系统主体窗体设计主窗体是软件系统的一个重要组成部分,是提供人机交互的一个必不可少的操作平台。
通过主窗体,用户可以打开与系统相关的各个子操作模块,完成对软件的操作和使用;另外通过主窗体,用户还可以快速掌握本系统的基本功能。
首先通过菜单栏可以打开本系统所有的子模块,菜单栏的效果如图3.3所示。
图3.3菜单栏部分实现码:setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);lp1.setFont(new java.awt.Font("新宋体", 1, 一八)); // NOI 一八Nlp1.setText(" 欢迎使用企业人事管理系统 !");javax.swing.GroupLayout pLayout = new javax.swing.GroupLayout(p);p.setLayout(pLayout);pLayout.setHorizontalGroup(jButton5.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);jButton5.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);jButton5.addActionListener(newjava.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {jButton5ActionPerformed(evt);}});jToolBar1.add(jButton5);systemM.setText("系统管理");password.setText("密码修改");password.addMouseListener(new java.awt.event.MouseAdapter() {public void mouseClicked(java.awt.event.MouseEvent evt) {passwordMouseClicked(evt);}});password.addActionListener(newjava.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {passwordActionPerformed(evt);}});systemM.add(password);land.setText("重新登录");land.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) {landMouseClicked(evt);}});systemM.add(land);addDelete.setText("添加/删除用户");addDelete.addMouseListener(new java.awt.event.MouseAdapter() {public void mouseClicked(java.awt.event.MouseEvent evt) {addDeleteMouseClicked(evt);}});systemM.add(addDelete);exit.setText("退出系统");exit.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) {exitMouseClicked(evt);}});exit.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {exitActionPerformed(evt);}});systemM.add(exit);jMenuBar1.add(systemM);manageM.setText("信息管理");employeeMM.setText("员工信息管理");employeeM.setText("基本信息管理");employeeM.addMouseListener(new java.awt.event.MouseAdapter() {public void mouseClicked(java.awt.event.MouseEvent evt) {employeeMMouseClicked(evt);}});employeeMM.add(employeeM);trainM.setText("培训信息管理");trainM.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) {trainMMouseClicked(evt);}});employeeMM.add(trainM);encouragementPunishM.setText("奖罚信息管理");encouragementPunishM.addMouseListener(newjava.awt.event.MouseAdapter() {public void mouseClicked(java.awt.event.MouseEvent evt) {encouragementPunishMMouseClicked(evt);}});employeeMM.add(encouragementPunishM);wageM.setText("薪资信息管理");wageM.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) {wageMMouseClicked(evt);}});employeeMM.add(wageM);manageM.add(employeeMM);departmentM.setText("部门信息管理");departmentM.addMouseListener(newjava.awt.event.MouseAdapter() {public void mouseClicked(java.awt.event.MouseEvent evt) {departmentMMouseClicked(evt);}});manageM.add(departmentM);jMenuBar1.add(manageM);selectM.setText("信息查询");employeeSM.setText("员工信息查询");employeeS.setText("基本信息查询");employeeS.addMouseListener(new java.awt.event.MouseAdapter() {public void mouseClicked(java.awt.event.MouseEvent evt) {employeeSMouseClicked(evt);}});employeeSM.add(employeeS);trainS.setText("培训信息查询");trainS.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) {trainSMouseClicked(evt);}});employeeSM.add(trainS);encouragementPunishS.setText("奖罚信息查询");encouragementPunishS.addMouseListener(newjava.awt.event.MouseAdapter() {public void mouseClicked(java.awt.event.MouseEvent evt) {encouragementPunishSMouseClicked(evt);}});employeeSM.add(encouragementPunishS);wageS.setText("薪资信息查询");wageS.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) {wageSMouseClicked(evt);}});employeeSM.add(wageS);selectM.add(employeeSM);departmentS.setText("部门信息查询");departmentS.addMouseListener(newjava.awt.event.MouseAdapter() {public void mouseClicked(java.awt.event.MouseEvent evt) {departmentSMouseClicked(evt);}});selectM.add(departmentS);jMenuBar1.add(selectM);helpM.setText("帮助");jMenuBar1.add(helpM);aboutM.setText("关于");jMenuBar1.add(aboutM);setJMenuBar(jMenuBar1);工具栏的设计,为了方便用户使用系统,在工具栏中为常用的系统子模块提供了快捷按钮,用户可以快速地进入系统中常用的子模块。