资源描述
河南城建学院
《JAVA基础》课程设计
设计说明书
课程名称: 《JAVA基础》课程设计
设计题目: 企业人事管理系统
指导教师: 陈红军
班 级: 0844131
学 号: 084413120
学生姓名: 陈功亮
同组人员: 李泽坤、郭鹏
成 绩:
评 语:
计算机科学与工程学院
2015年1月9日
《JAVA基础》课程设计实验报告 - 39 -
目 录
第1章 选 题 2
1.1 题目背景 2
1.2系统实现的具体分工 2
1.2.1 选题 2
1.2.2 团队分工 2
1.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 题目背景
随着全球经济一体化时代的到来,竞争的范围迅速扩大,竞争的程度空前加剧。那么,谁将是竞争中的胜者?是那些占据人事优势的地区、国家和企业。因为经济竞争,说到底是人才的竞争,是人综合素质的竞争。被称作“经营之神”的日本著名企业家松下幸之助说得好:“国家的兴盛在于人,国家的灭亡亦在于人,古圣先贤,早有明训;回顾历史,可谓丝毫不爽。经营事业的成败,不容讳言,与治国同一道理,在于人事安排是否合宜。”毫无疑问,人事在一个企业中起着举足轻重的作用。
在竞争越来越激烈的社会里,企业人事管理就越显示出其不可缺性,成为企业一个非常重要的模块。企业人事管理系统主要是用于员工个人资料的录入,职务变动的记录和管理。使用人事管理系统,便于公司领导掌握人员的动向和人员的综合素质,及时调整人才的分配,使用计算机对人事劳资信息进行管理。企业人事管理包括人员的招聘、员工的档案管理、公共信息管理、合同管理、绩效考评、薪资福利的制定计算与发放、考勤及休假管理工作等。传统的人事管理方式存在着许多缺点,如:文件查找困难,管理效率低、人事信息保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学与网络技术日渐成熟,其强大的功能与跨地域性已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机企业内部信息进行管理,具有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高企业信息管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。
人事管理系统的开发与实现,改变了传统手工办理人事业务速度慢、效率低的弊端,极大地节省了时间和人力,把人事业务从单调、重复的事务性工作中解脱出来,降低了劳动成本,提供了更为高效的公共信息服务。本系统可使管理人员对全局人员结构及岗位配置情况有清晰的了解。在人才选拔上可实现人才的内部挖掘,保证人事的合理配置。 在系统的实施过程中完成了对管理制度和流程的完善和优化,提高了整个企业的人事管理效率,促进人事管理工作向着标准化、规范化的方向发展。
1.2系统实现的具体分工
郭鹏:主界面。
李泽坤:待遇管理->奖惩管理模块。
陈功亮:人事管理->档案管理,考勤管理,培训管理模块。
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、可以快捷的打开系统的计算器、Excel、Word等常用工具。
2.2 概要设计(涉及类的框图)
郭鹏
李泽坤
数据库设计:
陈功亮、郭鹏、李泽坤共同监制
2.3 界面设计
第3章 系统实现
3.1 涉及知识点
1、面向对象
2、GUI(面板、对话框、表格、组合框、滚动条、标签、按钮等常用组件)
3、页面布局
4、Map集合类
5、数据库的增删改查及多表联查。
3.2 系统运行(主要运行界面抓图)
3.3 源程序清单(关键代码)
1、数据库设计
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_content` (
`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) 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) CHARACTER 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 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,
`direason` 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 utf8_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) CHARACTER 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` 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_INCREMENT,
`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 gbk 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 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_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 gbk_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 COLLATE 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 SET 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,
`telphone` 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_chinese_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) 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) UNSIGNED 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` 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,
`ratifier_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`.`timecard` (
`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_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_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.awt.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.FileInputStream;
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.ImageIcon;
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 javax.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 class RecordOperatePanel extends JPanel {
private JTextField deptTextField;
private JComboBox accessionFormComboBox;
private JComboBox dutyComboBox;
private ButtonGroup partyMemberButtonGroup = new ButtonGroup();
private ButtonGroup marriagedButtonGroup = new ButtonGroup();
private ButtonGroup sexButtonGroup = new ButtonGroup();
private JComboBox schoolageComboBox;
private JComboBox nativePlaceComboBox;
private JComboBox nationComboBox;
private JTextField accumulationFundNOTextField;
private JTextField annuitySafetyNOTextField;
private JTextField pactEndDateTextField;
private JTextField dimissionReasonTextField;
private JTextField compoSafetyNOTextField;
private JTextField doleSafetyNOTextField;
private JTextField medicareSafetyNOTextField;
private JTextField societySafetyNOTextField;
private JTextField pactAgeTextField;
private JTextField bankNOTextField;
private JTextField pactStartDateTextField;
private JTextField dimissionDateTextField;
private JTextField bankNameTextField;
private JTextField firstPactDateTextField;
private JTextField accessionDateTextField;
private JTextField homeAddressTextField;
private JTextField onesStrongSuitTextField;
private JTextField likeTextField;
private JTextField homePostalcodeTextField;
private JTextField partyMemberDateTextField;
private JTextField graduateSchoolTextField;
private JTextField graduateDateTextField, secondSpecialtyTextField, secondSchoolageTextField,
computerTextField, emailTextField, qqTextField, telephoneTextField, handsetTextField, addressTextField,
postalcodeTextField, gradeTextField, specialtyTextField, foreignLanguageTextField, idCardTextField,
partyMemberTextField,birthdayTextField,nameTextField,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) {
super();
final JLabel recordNoLabel = new JLabel();
recordNoLabel.setText(" 档案编号:");
recordNumPanel.add(recordNoLabel);
recordNoTextField = new JTextField();
recordNoTextField.setHorizontalAlignment(SwingConstants.CENTER);
recordNoTextField.setPreferredSize(new Dimension(125, 20));
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());
infoPanel.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,
TitledBorder.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));
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("男");
展开阅读全文