1、课程设计 目录第1章 绪论- 2 -1.1 课程设计的目的及意义- 2 -1.1.1 目的- 2 -1.1.2 意义- 2 -1.2 主要研究内容- 2 -第2章 系统开发相关技术简介- 3 -2.1 Microsoft Visual Studio 2008- 3 -2.2 c/s架构设计简介- 3 -第3章 系统需求分析- 4 -3.1需求概述- 4 -3.2功能需求- 4 -3.3 性能需求- 5 -3.4 需求建模- 6 -3.4.1 概念模型E-R图- 6 -3.4.2 数据流程分析- 9 -第4章 系统的概要设计- 12 -4.1系统体系结构设计- 12 -4.2运行环境- 14 -
2、4.3功能设计- 14 -4.4 数据库设计- 15 -第5章 系统的实现与测试- 18 -5.1 员工信息管理子系统页面及代码- 18 -5.2 公司简介界面- 21 -第6章 软件开发综合实训总结- 23 -6.1 工作分配与个人工作- 23 -第1章 绪论1.1 课程设计的目的及意义1.1.1 目的随着现代经济的高速发展,各种企业的不断崛起,企业员工的不断增加,企业在管理方面对需求越来越大。伴随着计算机的迅速发展和广泛使用,企业人事信息管理转向电子化成为必然。传统的人事信息管理存在很大的不足:利用人进行信息的增减,容易导致信息的错误,而且管理的效率低下,导致资源的可利用性低,劳动力大,安
3、全性也不够,加上,随着时间的递增,信息量不断增大,对信息的增加、删除、检索、查找就会存在很大的问题。因此,随着企业的强大和发展,传统的管理方式不再适应企业的需要。应用计算机进行管理信息,有着其手工无法比拟的优点。例如:存储量大、修改方便、检索快速、安全性高,使用寿命长、成本低、可靠性好等。这些优点能够极大地提高人事信息管理的效率,有助于企业的发展。1.1.2 意义人事信息管理系统的开发需要就Java语言和数据库两方面的知识,因此设计一个实用性强的人事信息管理系统,对于我们进行课程设计方面知识的提高有很大的推动作用。人事信息管理系统的开发需要用到多方面的知识,包括数据库的选用、数据库的建立和维护
4、、信息的存储、管理界面的设计。这些对于设计者的知识水平有较高的要求。因此,如何规划、设计和开发好这个人事信息管理系统,对于提高我们的Java开发水平有极大的帮助。同时,在设计开发过程中,我们可以选用适当的数据库和数据库连接驱动程序,建立好合适的数据库表格和设计好美观大方的管理界面。1.2 主要研究内容通过对部分中小企业人事管理情况的研究,了解企业的人事管理情况,并参考成功的人事管理系统的开发经验,进行软件的开发以及维护,主要的内容有各个模块的实现,为企业管理提供方便快捷的管理模式。第2章 系统开发相关技术简介2.1 Microsoft Visual Studio 2008Microsoft V
5、isual Studio 2008是面向Windows Vista、Office 2007、Web 2.0的下一代开发工具,代号“Orcas”,是对Visual Studio 2005一次及时、全面的升级。VS2008引入了250多个新特性,整合了对象、关系型数据、XML的访问方式,语言更加简洁。使用Visual Studio 2008可以高效开发Windows应用。设计器中可以实时反映变更,XAML中智能感知功能可以提高开发效率。同时Visual Studio 2008支持项目模板、调试器和部署程序。Visual Studio 2008可以高效开发Web应用,集成了ASP.NET AJAX
6、1.0,包含ASP.NET AJAX项目模板,它还可以高效开发Office应用和Mobile应用2.2 c/s架构设计简介 C/S模式是一种分布式计算模式。它将某个应用适当分解为多个任务,由多台机器分别执行,共同实现整个应用。在这多个任务之间存在着多种交互关系,其中最基本的是“请求/响应“关系:既Client向Server提出某种信息或数据的处理请求,Server针对请求,完成相应处理,并将结果作为响应返回给Client.C/S模式主要由服务器管理程序(Server)、可户应用程序(Client)和中间件(middleware)三部分组成。Server负责有效地管理系统的资源,其任务集中于 1
7、数据库安全性的要求 2数据库访问并发性的控制 3数据库前端的客户应用程序的全局数据完整性规则 4数据库的备份与恢复Client的主要任务是:1 提供给用户与数据库交互的界面2 向数据库服务器提交用户请求并接收来自数据库服务器的信息3 利用客户应用程序对存在与客户端的数据执行应用逻辑要求中间件负责联结客户应用程序与服务器管理程序,完成数据库服务器和客户应用程序之间的数据传输,协同完成一个作业,以满足用户查询管理数据的要求。 C/S模式比文件服务器系统能提供更高的性能,因为客户端和服务端将应用的处理要求分开,同时又共同实现其处理要求,对客户端应用程序管理数据,而客户断程序发送请求和分析从服务器接收
8、的数据。第3章 系统需求分析3.1需求概述需求分析是系统开发的第一步,也是最重要的一步。利用软件工程的方法对系统进行详细的需求分析,彻底了解用户的需求,从而构造出一个从抽象到具体的逻辑模型系统。本科毕业设计管理是教学管理工作的重要环节,目前我校采用的手工或单机管理模式具有管理工作难度大、重复劳动量大、效率低等缺点,难以适应本科毕业设计管理的要求。针对毕业设计管理过程中选题灵活性强、指导老师多、毕业设计地点分散、进度要求严格、工作量大等特点,系统要充分利用学校蜿有的计算机和网络资源,对整个毕业设计各个阶段的工作实施全程管理,最终实现毕业设计管理的电子化、网络化、规范化、可监控化,从而提高毕业设计
9、管理的效率。3.2功能需求该开发系统的设计主要用于实现以下几个功能:(1) 人事信息管理系统主界面人事信息系统主界面主要包括系统设计,公司结构,员工管理,职务管理,出勤管理,工资管理,奖罚管理,福利管理和帮助等内容,可以进行各种信息的添加、查询,删除等操作。(2) 员工信息管理子系统员工信息管理子系统主要是对所有员工的个人信息进行登记、删除、检索、查找,包括员工的编号,员工的性别,员工的姓名,员工的身份证号码,员工的联系电话、联系方式,员工的入公司时间,照片等记录。并且还能够删除错误的员工个人记录的信息。(3) 职务信息管理子系统职务信息管理子系统主要是对所有员工的职务信息进行登记,包括了两个
10、部分的内容职务管理和职务变更。职务管理包括员工的编号,员工的姓名以及员工的现任职务,并且能够删除错误的员工职务记录的信息。职务变更包括员工的编号,员工的姓名,员工的各种职务以及任职该职务的时间。并且能够删除错误的员工职务变更记录的信息。(4) 出勤信息管理子系统出勤信息管理子系统主要是对所有员工的出勤信息进行登记,包括了四个部分的内容上班登记、下班登记、请假登记和加班登记。上班登记主要是对所有员工的上班信息进行登记,包括员工的编号,员工的姓名,员工的上班时间和相应的备注信息,并且能够删除错误的员工上班时间记录的信息。下班登记主要是对所有员工的下班信息经行登记,包括员工的编号,员工的姓名,员工的
11、下班时间和相应的备注信息,并且能够删除错误的员工下班时间记录的信息。请假登记主要是对所有员工的请假信息进行登记,包括员工的编号,员工的姓名,员工的请假日期,员工的请假时间,员工的请假原因和相应的备注信息,并能够删除错误的员工请假记录的信息。加班登记主要是对所有员工的加班信息进行登记,包括员工的编号,员工的姓名,员工的加班日期,员工的加班时间,员工的加班薪资和相应的备注信息,并能够删除错误的员工加班记录的信息。(5) 工资信息管理子系统工资信息管理子系统主要是对所有的员工的工资信息进行登记,包括了员工的编号,员工的姓名,员工的基本工资、补贴金、加班费、奖惩金,员工的总工资和相应的备注信息,并且能
12、够删除错误的员工工资记录的信息。(6) 惩罚信息管理子系统惩罚信息管理子系统主要是对说有的员工的惩罚信息进行登记,包括了员工的编号,员工的姓名,员工的奖励、惩罚,员工的惩罚说明和相应的备注信息,并且能够删除错误的员工惩罚记录的信息。(7) 福利信息管理子系统福利信息管理子系统主要是对所有的员工的福利信息进行登记,包括员工的编号,员工的姓名,员工的养老保险金、失业保险金、工伤保险金,员工的福利总计和相应的备注信息,并且能够删除错误的员工福利记录的信息。3.3 性能需求随着现在计算机技术的不断完善,以及现代经济的不断发展,传统的管理技术不再满足企业的需要,越来越多的企业注重计算机信息管理系统,人事
13、信息管理系统是典型的计算机信息管理系统之一,企业借助于它进行人力资源管理,达到事半功倍。随着企业的雇佣人数的增加,有效地管理人员信息成为必然。人事信息管理系统的开发主要包括后台数据库的建立和维护,以及前台程序开发两个方面。本文分析了人事信息管理系统的组成情况以及一些基本功能模块,包括系统功能框架分析,系统开发的软硬件环境分析,系统的数据库逻辑设计分析,以及系统的数据流程分析,并且重点对系统的用户界面开发和各个子系统开发作了详细的介绍。系统主要利用Java语言和编成环境以及vs2008的主要功能进行设计开发,在文中进行了详细的介绍。该开发系统是中型至大型企业的人事信息管理系统,它界面美观,简单实
14、用,安全性高,能够基本上满足企业人事信息管理的需要,实现了企业员工信息的整体化,系统化,规范化和自动化。编写程序应符合软件工程化思想。应用软件的编程工作量极大,而且要经常维护、修改。如果编写程序不遵守正确的规律,就会给系统的开发维护带来不可逾越的障碍。软件工程的思想即利用工程化的方法进行软件开发,通过建立软件工程环境来提高软件开发效率。自顶向下的模块化方法描述了大程序设计的原则,在具体编程中,则应采用结构化程序设计方法。这种方法指导人们用良好的思想方法却设计程序,其特点是采用顺序结构、循环结构和选择结构三种基本逻辑结构来编写程序。 3.4 需求建模3.4.1 概念模型E-R图部门编号部门名称部
15、门设计这一设计阶段是在逻辑关系分析的基础上,设计出能够满足用户需求的各种实体,以及他们之间的关系,为后面的数据库逻辑设计打下基础。本文根据上面的分析规划出的实体有部门设计、员工信息、职务管理、职务变更、上班登记、下班登记、员工请假信息、员工加班信息、员工奖惩信息、员工工资信息、员工福利信息、管理员信息等。实体与实体之间的关系E-R图如图3-1至图3-11所示。图3-1 部门设计实体E-R 图员工编号姓名性别密码身份证号联系电话地址入员时间照片员工信息图3-2 员工信息实体E-R图职务管理员工编号姓名现任职务所属部门图3-3 职务管理实体E-R图上班登记上班时间雇员编号姓名职务变更雇员编号姓名现
16、任职务上任时间卸任时间图3-4 职务变更实体E-R图图3-5 上班登记实体E-R图下班登记下班时间雇员编号姓名图3-6 下班登记实体E-R图员工请假员工编号姓名请假时间时间长短图3-7 员工请假实体E-R图员工加班员工编号姓名加班日期加班时间图3-8 员工加班实体E-R图员工奖惩员工编号姓名奖励金罚款图3-9 员工奖惩实体E-R图员工编号姓名基本工资公司补贴加班费奖励金扣除金额总工资备注员工工资图3-10 员工工资实体E-R图员工福利员工编号姓名养老保险失业保险工伤保险总保险金图3-11 员工福实体E-R图管理员信息管理员密码图3-12 管理员信息实体E-R 图3.4.2 数据流程分析 总的系
17、统流程图如图3-13所示:用户登录系统主窗口退出系统是否合法YN图3-13 总的系统流程 业务流程图(Transaction Flow Diagram,TFD)是一种描述系统内各单位、人员之间业务关系、作业顺序和管理信息流向的图表,利用它可以帮助分析人员找出业务流程中的不合理的流向。通过前面对企业仓库管理情况进行的一系列调研与分析,得到如图3-14所示的业务流程图。系统现有信息汇总处理各部门需求新增信息信息需求 信息添加 信息输出图3-14 业务流程图人事管理系统的业务处理过程如下:企业认识管理系统记录基本的信息并能对系统的的已有信息进行查询;信息添加记录中对基本信息添加;信息输出记录对基本信
18、息并能进行查询。 根据业务流程图分析,对于其中的数据流向,处理及存储进行逐层分解,可以得到数据流程图(Data Flow Diagram,DFD)。数据流程图是分层次的,绘制是采取自顶向下逐层分解的方法。顶层数据流程图只有一张,它说明了系统总的处理功能、输入和输出。下一步是对顶层数据流程图中的“处理”进行分解,也就是对第一层数据流程图的再分解。数据流程图如图3-15所示。信息添加信息查找 管理员定位编号 定位信息 添加操作 信息修改 定位信息修改操作 信息输出 图3-15 数据流程图第4章 系统的概要设计4.1系统体系结构设计虽说程序设计最核心的地方是程序的功能,但程序的界面设计是不可忽视的,
19、它直接影响到程序的易用性。尤其在Windows时代,一个良好的应用界面会给你的程序锦上添花,甚至有画龙点睛之韵味。一般来说,在完成核心算法的编制后,就要开始精心设计应用界面了。图3-1 系统登录界面登陆界面的代码:public class HRM_App public static void main (String args) Login _Login=new Login(); 系统主页面代码为:import java.awt.*;import javax.swing.*;import javax.sql.*;import java.awt.event.*;public class AppM
20、ain extends JFrame private JMenuBar barMain = new JMenuBar(); private MenuBarListener _MenuBarListener = new MenuBarListener(); public final JDesktopPane desktop = new JDesktopPane(); public static DbConnection connetion=new DbConnection(); private int i,j; public AppMain() super(人事管理系统); Container
21、container = getContentPane(); container.add(desktop,BorderLayout.CENTER); MenuBarListener.setDeskTop(desktop); BuildBarMain(); this.setJMenuBar(barMain); setSize(900,700); int w = (Toolkit.getDefaultToolkit().getScreenSize().width - 900) / 2; int h = (Toolkit.getDefaultToolkit().getScreenSize().heig
22、ht - 700) / 2; setLocation(w, h);setVisible(true); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent event) int result = JOptionPane.showOptionDialog(null,是否真的退出人事信息管理系统?,系统提示, JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE, null,new String 确定,取消,取消); if (result = J
23、OptionPane.YES_OPTION) try AppMain.connetion.connection.close(); catch(java.sql.SQLException sql) sql.printStackTrace(); System.exit(0); ); private JMenuBar BuildBarMain() final JMenu _Menu = new JMenu( 系统设置 ), new JMenu( 公司结构 ),new JMenu( 员工管理 ), new JMenu( 职务管理 ), new JMenu( 出勤情况 ), new JMenu( 工资管
24、理 ), new JMenu( 奖罚管理 ), new JMenu( 福利管理 ), new JMenu( 帮助 ); final JMenuItem _MenuItem=new JMenuItem(管理员设置),new JMenuItem(返回主界面),new JMenuItem(安全退出), new JMenuItem(公司结构),new JMenuItem(部门管理),new JMenuItem(职位调整),new JMenuItem(增加员工),new JMenuItem(信息修改),new JMenuItem(信息查询),new JMenuItem(减少员工),new JMenuIt
25、em(现任职务查询),new JMenuItem(职务变更查询),new JMenuItem(职务变更), new JMenuItem(上下班登记),new JMenuItem(请假管理),new JMenuItem(加班管理),new JMenuItem(工资查询),new JMenuItem(工资调整),new JMenuItem(奖罚查询),new JMenuItem(添加奖罚),new JMenuItem(福利查询),new JMenuItem(福利调整),new JMenuItem(系统帮助),new JMenuItem(关于系统); final String MenuItemNam
26、e=setmanager_sysMenu,MainInterface_sysMenu,exit_sysMenu, company_structure_Menu,manageDepartment_Menu,setduty_Menu, add_employeeMenu,updata_employeeMenu,select_employeeMenu,delete_employeeMenu, duty_dutyMenu,select_dutyMenu,change_dutyMenu, start_attendance,finish_attendance,askforleave_attendance,O
27、ver_Time_attendance,select_wageMenu,change_wageMenu, select_award_punishMenu,add_award_punishMenu, select_welfareMenu,updata_welfareMenu,help_helpMenu,about_helpMenu; for(j=0;j_Menu.length;j+) _Menuj.setFont(new Font(TimesRoman,Font.PLAIN,14); for(i=0;i_MenuItemj.length;i+) _MenuItemji.setFont(newFo
28、nt(TimesRoman,Font.PLAIN,12); _MenuItemji.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) _MenuBarListener.setEventName(MenuItemNameji); ); _MenuItemji.addActionListener(_MenuBarListener); _Menuj.add(_MenuItemji); barMain.add(_Menuj); _MenuItem01.addActionListener(n
29、ew ActionListener() public void actionPerformed(ActionEvent e) dispose(); ); return barMain; public static void main (String args) AppMain appmain=new AppMain(); appmain.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); 系统主界面如图3-2所示:图3-2 系统主页面4.2运行环境数据库 SQL Server 2000编译环境 Visual Studio2008操作系统
30、WindowsXP编译语言 java4.3功能设计构建一个人事信息管理系统,该系统主要由六个子系统组成,分别包括个人信息管理子系统,职务信息管理子系统,出勤信息管理子系统,工资信息管理子系统,惩罚信息管理子系统以及福利信息管理子系统。同时,为了增强系统的安全性,首先需要通过用户权限认证,只有在登陆界面上输入正确的用户名和密码,才能的功能路本系统进行操作。通过了系统功能框架的分析,得到了如图4.1的系统功能模块。系统功能结构图如图4.1人事信息管理系统系统设置职务管理出勤管理工资管理奖罚管理福利管理现任职务查询职务变更信息上班登记下班登记请假管理加班管理工资查询员工管理奖惩查询福利查询增加员工信
31、息修改管理员设置返回主界面信息查询信删除息公司结构公司结构部门管理帮助安全退出工资调整添加奖罚福利调整系统帮助关于系统职位调整图4.14.4 数据库设计表4-1员工信息表(employee_Infor)字段名数据类型字段大小是否主键员工编号文本8是姓名文本20性别逻辑2年龄数字密码文本10身份证号文本18联系电话文本20地址文本50入员时间日期/时间8照片OLE对象备注备注表4-2 职务管理表(Duty_Infor)字段名数据类型字段大小是否主键员工编号文本8是姓名文本20现任职务文本30所属部门文本20备注备注表4-3 职务变更表(Duty_Change_Infor)字段名数据类型字段大小是
32、否主键员工编号文本8是姓名文本20现任职务文本30上任时间日期/时间8卸任时间日期/时间8备注备注表4-4 上班登记表(Start_Register_Infor)字段名数据类型字段大小是否主键员工编号文本8是姓名文本20上班时间日期/时间8备注备注表4-5 下班登记表(Finish_Register_Infor)字段名数据类型字段大小是否主键员工编号文本8是姓名文本20下班时间日期/时间8备注备注表4-6 员工请假信息表(On_Leave_Infor)字段名数据类型字段大小是否主键员工编号文本8是姓名文本20请假时间日期/时间8时间长短文本20备注备注表4-7 员工加班信息表(Over_Tim
33、e_Infor)字段名数据类型字段大小是否主键员工编号文本8是姓名文本20加班日期日期/时间8加班时间文本20备注备注表4-8 员工奖惩信息表(Award_Punish_Infor)字段名数据类型字段大小是否主键员工编号文本8是姓名文本20奖励金货币罚款货币备注备注表4-9 员工工资信息表(Wage_Infor)字段名数据类型字段大小是否主键员工编号文本8是姓名文本20基本工资货币公司补贴货币加班费货币奖励金货币扣除金额货币总工资货币备注备注表4-10员工福利表(Welfare_Infor)字段名数据类型字段大小是否主键员工编号文本8是姓名文本20养老保险货币失业保险货币工伤保险货币总福利金货
34、币备注备注第5章 系统的实现与测试5.1 员工信息管理子系统页面及代码图5-1 员工信息管理子系统界面 该界面代码为:import java.awt.*;import java.awt.event.*;import javax.sql.*;import java.util.*;import javax.swing.*;import javax.swing.table.*;public class select_employee_Managment extends View_Model private JLabel idLabel = new JLabel( 员工编号: ); private J
35、TextField idField = new JTextField(10); private JLabel nameLabel = new JLabel( 姓 名: ); private JTextField nameField = new JTextField(10); private JLabel sexLabel = new JLabel( 性 别: ); private final String sexString = 男 , 女 ; private JComboBox sexComboBox = new JComboBox(sexString); private JLabel ag
36、eLabel = new JLabel( 年 龄: ); private JTextField ageField = new JTextField(10); private JLabel departLabel = new JLabel( 部 门: ); private JTextField departField = new JTextField(10); private JLabel dutyLabel = new JLabel( 职 位: ); private JTextField dutyField = new JTextField(10); private JLabel sfzLab
37、el = new JLabel( 身份证号码: ); private JTextField sfzField = new JTextField(10); private JLabel addLabel = new JLabel( 地址: ); private JTextField addField = new JTextField(10); private JLabel telLabel = new JLabel( 联系电话: ); private JTextField telField = new JTextField(10); Icon icon = new ImageIcon(./pho
38、to.jpg); private JLabel photoLabel = new JLabel(icon,SwingConstants.CENTER); private JLabel bzLabel = new JLabel( 备注: ); private JTextArea bzArea = new JTextArea(5,25); private JButton renovateButton = new JButton(刷新); private JButton selectAllButton = new JButton(查看全部); private JButton selectButton
39、 = new JButton(查询); private JButton addButton = new JButton(添加); private JButton updateButton = new JButton(修改); private JButton deleteButton = new JButton(删除); private JButton saveButton = new JButton(保存); private JButton exitButton = new JButton(退出); private ResultSetTableModel tableModel; private String Query_Sql = select * from employee_Infor ; public select_employee_Managment() super(); try tableModel =
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。
Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1
陕公网安备 61072602000132号 违法和不良信息举报:0916-4228922