1、河南城建学院 《JAVA基础》课程设计 设计说明书 课程名称: 《JAVA基础》课程设计 设计题目: 企业人事管理系统 指导教师: 陈红军 班 级: 0844131 学 号: 084413120 学生姓名: 陈功亮 同组人员: 李泽坤、郭鹏 成 绩: 评
2、 语: 计算机科学与工程学院 2015年1月9日 《JAVA基础》课程设计实验报告 - 39 - 目 录 第1章 选 题 2 1.1 题目背景 2 1.2系统实现的具体分工 2 1.2.1 选题 2 1.2.2 团队分工 2 1.3开发
3、环境 2 第2章 设计内容 3 2.1实现功能 3 2.2 概要设计(涉及类的框图) 3 2.3 界面设计 3 第3章 系统实现 3 3.1 涉及知识点 3 3.2 系统运行(主要运行界面抓图) 3 3.3 源程序清单(关键代码) 4 第4章 测试与实验结果 4 第5章 结束语 4 参考文献 4 第1章 选 题 1.1 题目背景 随着全球经济一体化时代的到来,竞争的范围迅速扩大,竞争的程度空前加剧。那么,谁将是竞争中的胜者?是那些占据人事优势的地区、国家和企业。因为经济竞争,说到底是人才的竞争,是人综合素质的
4、竞争。被称作“经营之神”的日本著名企业家松下幸之助说得好:“国家的兴盛在于人,国家的灭亡亦在于人,古圣先贤,早有明训;回顾历史,可谓丝毫不爽。经营事业的成败,不容讳言,与治国同一道理,在于人事安排是否合宜。”毫无疑问,人事在一个企业中起着举足轻重的作用。 在竞争越来越激烈的社会里,企业人事管理就越显示出其不可缺性,成为企业一个非常重要的模块。企业人事管理系统主要是用于员工个人资料的录入,职务变动的记录和管理。使用人事管理系统,便于公司领导掌握人员的动向和人员的综合素质,及时调整人才的分配,使用计算机对人事劳资信息进行管理。企业人事管理包括人员的招聘、员工的档案管理、公共信息管理、合同管理、绩
5、效考评、薪资福利的制定计算与发放、考勤及休假管理工作等。传统的人事管理方式存在着许多缺点,如:文件查找困难,管理效率低、人事信息保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学与网络技术日渐成熟,其强大的功能与跨地域性已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机企业内部信息进行管理,具有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高企业信息管理的效率,也是企业的科学化、正规化管理,与
6、世界接轨的重要条件。 人事管理系统的开发与实现,改变了传统手工办理人事业务速度慢、效率低的弊端,极大地节省了时间和人力,把人事业务从单调、重复的事务性工作中解脱出来,降低了劳动成本,提供了更为高效的公共信息服务。本系统可使管理人员对全局人员结构及岗位配置情况有清晰的了解。在人才选拔上可实现人才的内部挖掘,保证人事的合理配置。 在系统的实施过程中完成了对管理制度和流程的完善和优化,提高了整个企业的人事管理效率,促进人事管理工作向着标准化、规范化的方向发展。 1.2系统实现的具体分工 郭鹏:主界面。 李泽坤:待遇管理->奖惩管理模块。 陈功亮:人事管理->档案管理,考勤管理,培训管理
7、模块。 1.2.1 选题 企业人事管理系统。 1.2.2 团队分工 表1.1 项目分工一览表 角色 姓名 承担的具体任务 组长 陈功亮 档案管理,考勤管理,培训管理模块 组员 李泽坤 奖惩管理模块 组员 郭鹏 主界面的分析与设计 1.3开发环境 编程工具:JDK+ECLIPSE(+MySQL) 计算机:PC 操作系统:Microsoft Windows 7.0 第2章 设计内容 2.1实现功能 1、增添、修改职工档案信息,包括个人信息、职务信息、以及档案信息。 2、对员工日常、开会、加班进行考勤管理。 3、对员工的实现奖惩管理。 4、可以
8、快捷的打开系统的计算器、Excel、Word等常用工具。 2.2 概要设计(涉及类的框图) 郭鹏 李泽坤 数据库设计: 陈功亮、郭鹏、李泽坤共同监制 2.3 界面设计 第3章 系统实现 3.1 涉及知识点 1、面向对象 2、GUI(面板、对话框、表格、组合框、滚动条、标签、按钮等常用组件) 3、页面布局 4、Map集合类 5、数据库的增删改查及多表联查。 3.2 系统运行(主要运行界面抓图) 3.3 源程序清单(关键代码) 1、数据库设
9、计 CREATE TABLE `info_employee`.`bringup` ( `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, `bid` int(11) NOT NULL, `bname` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `num` int(6) UNSIGNED NOT NULL, PRIMARY KEY (`id`) ); CREATE TABLE `info_employee`.`info_bringup_con
10、tent` ( `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, `name` varchar(40) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL, `content` varchar(100) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL, `object` varchar(100) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL, `start_date` varchar(30
11、) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `end_date` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `unit` varchar(40) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL, `lecturer` varchar(20) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL, `place` varchar(60) C
12、HARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL, PRIMARY KEY (`id`) ); CREATE TABLE `info_employee`.`info_duty` ( `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '档案编号', `dept` varchar(30) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL, `duty` varchar(30) CHARACTER SET
13、gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL, `acform` varchar(30) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL, `acdate` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `didate` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `di
14、reason` varchar(30) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL, `fpdate` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `psdate` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `pedate` varchar(30) CHARACTER SET utf8 COLLATE utf
15、8_general_ci NULL DEFAULT NULL, `bkname` varchar(30) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL, `bkno` varchar(30) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL, `ssno` varchar(30) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL, `asno` varchar(30) CHARAC
16、TER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL, `dsno` varchar(30) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL, `msno` varchar(30) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL, `csno` varchar(30) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL, `afno
17、` varchar(30) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL, PRIMARY KEY (`id`) , FOREIGN KEY (`id`) REFERENCES `info_employee`.`info_record` (), INDEX `dept` (`dept`), INDEX `duty` (`duty`) ); CREATE TABLE `info_employee`.`info_login` ( `id` int(11) UNSIGNED NOT NULL AUTO_IN
18、CREMENT, `username` varchar(7) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL, `pwd` varchar(10) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL, `record_num` int(6) UNSIGNED NOT NULL, `sex` varchar(5) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL, `purview` varchar(15) CHARACTER SET g
19、bk COLLATE gbk_chinese_ci NOT NULL, `state` varchar(15) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL, `authorization` int(11) NOT NULL, PRIMARY KEY (`id`) , FOREIGN KEY (`record_num`) REFERENCES `info_employee`.`info_record` (`record_num`), INDEX `record_num` (`record_num`) ); CREATE
20、 TABLE `info_employee`.`info_record` ( `record_num` int(6) UNSIGNED NOT NULL AUTO_INCREMENT, `nation` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `nativeplace` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `name` varchar(30) CHARACTER SET utf8 COLLATE utf8
21、general_ci NOT NULL, `sex` varchar(30) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL, `birthday` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `photo` varchar(30) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL, `idcard` varchar(30) CHARACTER SET gbk COLLATE gb
22、k_chinese_ci NOT NULL, `marriaged` varchar(30) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL, `address` varchar(40) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL, `postalcode` varchar(30) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL, `partymember` varchar(30) CHARACTER SET gbk COLLA
23、TE gbk_chinese_ci NOT NULL, `schoolage` varchar(30) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL, `specialty` varchar(30) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL, `folanguage` varchar(30) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL, `fograde` varchar(30) CHARACTER S
24、ET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL, `qq` varchar(30) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL, `email` varchar(30) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL, `handset` varchar(30) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL, `telphon
25、e` varchar(30) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL, `secsage` varchar(30) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL, `scspecialty` varchar(30) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL, `gdschool` varchar(30) CHARACTER SET gbk COLLATE gbk_c
26、hinese_ci NULL DEFAULT NULL, `gddate` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `pmdate` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `cmpgrade` varchar(30) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL, `likes` varchar(30
27、) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL, `stsuit` varchar(30) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL, PRIMARY KEY (`record_num`) , INDEX `name` (`name`), INDEX `sex` (`sex`) ); CREATE TABLE `info_employee`.`rewards_and_punishment` ( `id` int(11) UN
28、SIGNED NOT NULL AUTO_INCREMENT, `record_num` int(6) UNSIGNED NOT NULL, `type` varchar(30) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL, `reason` varchar(60) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL, `content` varchar(100) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL, `money`
29、int(11) NOT NULL, `start_date` varchar(30) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL, `end_date` varchar(30) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL, `ratifier_dept` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `ratifier_record_num` int(11) NOT NULL, `ratif
30、ier_date` varchar(30) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL, PRIMARY KEY (`id`) , CONSTRAINT `rewards_and_punishment_ibfk_1` FOREIGN KEY (`record_num`) REFERENCES `info_employee`.`info_record` (`record_num`), INDEX `record_num` (`record_num`) ); CREATE TABLE `info_employee`.`tim
31、ecard` ( `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, `record_num` int(6) UNSIGNED NOT NULL, `type` varchar(30) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL, `explains` varchar(100) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL, `start_date` varchar(30) CHARACTER SET gbk COLLATE gbk_
32、chinese_ci NOT NULL, `end_date` varchar(30) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL, `ratifier_dept` int(11) NOT NULL, `retifier_record_num` int(11) NOT NULL, `ratifier_date` varchar(30) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL, PRIMARY KEY (`id`) , CONSTRAINT `timecard_ibfk
33、1` FOREIGN KEY (`record_num`) REFERENCES `info_employee`.`info_record` (`record_num`), INDEX `record_num` (`record_num`) ); 源程序: package com.hncj.currdesign.frame; import javax.swing.JPanel; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.a
34、wt.FlowLayout; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.io.File; import java.io.FileIn
35、putStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.lang.reflect.Method; import .URL; import java.sql.Date; import java.util.Enumeration; import javax.swing.AbstractButton; import javax.swing.ButtonGroup; import javax.swing.Image
36、Icon; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JRadioButton; import javax.swing.JScrollPane; import javax.swing.JTextField; import java
37、x.swing.SwingConstants; import javax.swing.SwingUtilities; import javax.swing.border.TitledBorder; import javax.swing.filechooser.FileFilter; import com.hncj.currdesign.mysql.SqlUtil; import com.hncj.personinfo.*; import com.hncj.tool.LayoutUtil; import com.hncj.tool.Today; public cl
38、ass RecordOperatePanel extends JPanel { private JTextField deptTextField; private JComboBox accessionFormComboBox; private JComboBox dutyComboBox; private ButtonGroup partyMemberButtonGroup = new ButtonGroup(); private ButtonGroup marriagedButtonGroup = new ButtonGroup(); pri
39、vate ButtonGroup sexButtonGroup = new ButtonGroup(); private JComboBox schoolageComboBox; private JComboBox nativePlaceComboBox; private JComboBox nationComboBox; private JTextField accumulationFundNOTextField; private JTextField annuitySafetyNOTextField; private JTextField p
40、actEndDateTextField; private JTextField dimissionReasonTextField; private JTextField compoSafetyNOTextField; private JTextField doleSafetyNOTextField; private JTextField medicareSafetyNOTextField; private JTextField societySafetyNOTextField; private JTextField pactAgeTextFiel
41、d; private JTextField bankNOTextField; private JTextField pactStartDateTextField; private JTextField dimissionDateTextField; private JTextField bankNameTextField; private JTextField firstPactDateTextField; private JTextField accessionDateTextField; private JTextField home
42、AddressTextField; private JTextField onesStrongSuitTextField; private JTextField likeTextField; private JTextField homePostalcodeTextField; private JTextField partyMemberDateTextField; private JTextField graduateSchoolTextField; private JTextField graduateDateTextField, secon
43、dSpecialtyTextField, secondSchoolageTextField, computerTextField, emailTextField, qqTextField, telephoneTextField, handsetTextField, addressTextField, postalcodeTextField, gradeTextField, specialtyTextField, foreignLanguageTextField, idCardTextField, partyMemberTextField,birthdayTextField,na
44、meTextField,recordNoTextField; private JLabel photoLabel; private JTextField naPlaceTextField; SqlUtil sql = new SqlUtil(); public static Record UPDATE_RECORD = null; JScrollPane recordScrollPane = new JScrollPane(); public RecordOperatePanel(final JPanel rightPanel) { sup
45、er(); final JLabel recordNoLabel = new JLabel(); recordNoLabel.setText(" 档案编号:"); recordNumPanel.add(recordNoLabel); recordNoTextField = new JTextField(); recordNoTextField.setHorizontalAlignment(SwingConstants.CENTER); recordNoTextField.setPreferredSize(new Dimension(125, 20))
46、 recordNoTextField.setEditable(false); if (UPDATE_RECORD == null) { } else { recordNoTextField.setText(UPDATE_RECORD.getRecordNumber()); } recordNumPanel.add(recordNoTextField); final JPanel infoPanel = new JPanel(); infoPanel.setLayout(new BorderLayout()); info
47、Panel.setBackground(Color.WHITE); contentPanel.add(infoPanel, BorderLayout.CENTER); final JPanel recordInfoPanel = new JPanel(); recordInfoPanel.setLayout(new GridBagLayout()); recordInfoPanel.setBorder(new TitledBorder(null, "档案信息", TitledBorder.DEFAULT_JUSTIFICATION, Titled
48、Border.DEFAULT_POSITION, null, null)); recordInfoPanel.setBackground(Color.WHITE); infoPanel.add(recordInfoPanel, BorderLayout.NORTH); final JLabel nameLabel = new JLabel(); nameLabel.setText("姓 名:"); LayoutUtil.add(recordInfoPanel, 0, 0, nameLabel, new Insets(5, 0, 10, 0));
49、 nameTextField = new JTextField(); nameTextField.setPreferredSize(new Dimension(125, 20)); if (UPDATE_RECORD != null) nameTextField.setText(UPDATE_RECORD.getName()); LayoutUtil.add(recordInfoPanel, 1, 0, nameTextField, new Insets(5, 0, 10, 20)); final JLabel sexLabel = new JLabel(); sexLabel.setText("性 别:"); LayoutUtil.add(recordInfoPanel, 2, 0, sexLabel, new Insets(5, 0, 10, 0)); final JRadioButton manRadioButton = new JRadioButton(); sexButtonGroup.add(manRadioButton); manRadioButton.setBackground(Color.WHITE); manRadioButton.setText("男");






