java课设-企业人事管理系统(沈阳工程学院) - 图文

更新时间:2023-10-04 00:46:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

沈 阳 工 程 学 院

课 程 设 计

设计题目: 企业人事管理系统

系 别 信息工程系 班级 计本091 学生姓名 钟传苗 刘金和 李成章 魏刚 学 号 45 11 15 19 指导教师 孙宪丽 、史江萍 职称 副教授 、讲师 起止日期:2011年 6 月 6 日起——至2011年 6 月17 日止

沈 阳 工 程 学 院

课程设计任务书

课程设计题目: 企业人事管理系统

系 别 信息工程系 班级 计本091 学生姓名 钟传苗 刘金和 李成章 魏刚 学 号 45 11 15 19 指导教师 孙宪丽 、史江萍 职称 副教授 、讲师 课程设计进行地点: 实训F 任 务 下 达 时 间: 2011 年 6 月 6 日 起止日期: 2011年6月7日起——至2011年6月17日止 教研室主任 杨弘平 2011年 5月 19日批准

1. 设计的原始资料及依据

查阅有关数据库设计、Java语言程序设计以及案例分析等资料,进一步熟悉面向对象程序设计基本理论以及基本思想。本设计要求按照软件工程、数据库设计思想及设计步骤设计一个实用程序,并采用Java开发该系统。通过本设计可以加深对面向对象程序设计基本思想的理解,加强学生研发、调试程序的能力,培养学生分析、解决问题的能力,提高学生的科技写作能力。

2.设计的主要内容及要求

(1)写出系统的需求分析。

(2)写出系统的数据库设计过程,包括概念结构设计、逻辑结构设计、物理结构设计。 (数据库应用程序管理系统类设计详细写,其它类设计可以略) (3)写出系统设计思路—工作原理、功能规划。

(4)详细设计—数据分析、算法思路、类设计、功能实现(包括程序流程图、主要代码及注释)、界面等。

(5)运行调试与分析讨论--给出运行屏幕截图,分析运行结果,有何改进等。

3.对设计说明书撰写内容、格式、字数的要求

(1)学生应撰写的内容为:中文摘要和关键词、目录、正文、参考文献等。课程设计说明书(论文)的结构及各部分内容要求参照《沈阳工程学院毕业设计(论文)撰写规范》执行。应做到文理通顺,内容正确完整,书写工整,装订整齐。

(2)装订格式:

封面、任务书、成绩评审意见表、中文摘要和关键词、目录、正文、结论、致谢、参考文献。

(3)课程设计说明书(论文)是体现和总结课程设计成果的载体,一般不应少于3000字。

4. 设计完成后应提交成果的种类、数量、质量等方面的要求

(1)每组提交一份课程设计报告。 (2)每组提交一份课程设计成品。

5.时间进度安排

顺序 1 2 3 4 5 6 7 8 9 10 阶段日期 6.6 6.7 6.8 6.9 6.10 6.13 6.14 6.15 6.16 6.17 计 划 完 成 内 容 充分解读题目内容,进行需求分析设计。 系统功能结构设计,数据库设计。 单元模块设计及调试。 单元模块设计及调试。 单元模块设计及调试。 单元模块设计及调试。 单元模块设计及调试。 模块集成与测试 程序测试与完善 成绩评定以及撰写课程设计报告 备注

6.主要参考资料(文献)

[1] 耿详义.JAVA2教程.北京:清华大学出版社,2004。

[2]张仿彦.JAVA项目开发全程实录.北京:清华大学出版社,2007。 [3] 杨小虎.软件工程课程设计.浙江:浙江大学出版社,2007。 [4] 韩万江.软件工程案例教程.北京:机械工业出版社,2007。

[5] 萨师煊,王珊著.数据库系统概论.北京:高等教育出版社,2003。

沈 阳 工 程 学 院

面向对象程序设计课程设计成绩评定表

系(部):信息工程系 班级: 计本091 学生姓名:钟传苗、刘金和、李成章、魏刚

指 导 教 师 评 审 意 见 评价内容 调研 论证 具 体 要 求 能独立查阅文献,收集资料;能制定课程设计方案和日程安排。 权重 0.1 0.2 0.2 5 5 5 评 分 4 4 4 3 3 3 2 2 2 加权分 工作能力 工作态度认真,遵守纪律,出勤情况是否良好,态度 能够独立完成设计工作。 工作量 说明书的质量 按期圆满完成规定的设计任务,工作量饱满,难度适宜。 说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。 指导教师评审成绩 (加权分合计乘以8) 指 导 教 师 签 名: 分 0.5 5 4 3 2 加权分合计 年 月 日 评 阅 教 师 评 审 意 见 评价内容 查阅 文献 工作量 说明书的质量 具 体 要 求 查阅文献有一定广泛性;有综合归纳资料的能力 工作量饱满,难度适中。 说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。 评阅教师评审成绩 (加权分合计乘以4) 评 阅 教 师 签 名: 答 辩 小 组 评 审 意 见 评价内容 具 体 要 求 权重 0.5 5 评 分 4 3 2 加权分 分 权重 0.2 0.5 0.3 5 5 5 评 分 4 4 4 3 3 3 2 2 2 加权分 加权分合计 年 月 日 汇报准备充分,思路清晰;语言表达准确,概念学生汇报 清楚,论点正确,有层次,有重点,基本上反映了所完成任务的全部内容;时间符合要求。 答 辩 思路清晰;回答问题有理论依据,基本概念清楚;主要问题回答准确,深入,有说服力。 答辩小组评审成绩 (加权分合计乘以8) 答辩小组教师签名: 课 程 设 计 总 评 成 绩 0.5 5 4 3 2 分 加权分合计 年 月 日 分

沈阳工程学院课程设计报告 摘要

摘 要

企业人事管理系统是一个由企业人事管理人员、计算机及数据库组成的对企业人事管理的系统。即对相关的信息进行收集、整理、使用和维护的过程。从1946年第一台计算机诞生至此,随着科学技术日新月异的发展,计算机技术也日渐成熟,其强大的功能已被人们深刻认识,并在社会各个领域里发挥着越来越重要的作用。人们将大量工作交给计算机处理,将海量的数据信息存储在数据库里,从而大幅度提高了工作效率,也方便了数据信息的统计。

企业人事管理项目众多、信息量繁杂,要降低管理成本,提高企业人事管理的水平,增进经济利润,则必然要借助于计算机进行信息管理,进而实现宾馆信息管理的规范化、自动化和人性化。

根据设计中的需求,企业人事管理系统采用模块化的设计思想,在Windows操作系统环境下,采用NetBeans ID7.0作为开发工具,用Java进行开发,后台采用MySQL数据库,完成的功能有对人员进行增加、查询和删除,还实现了对企业部门的管理,人员的档案管理以及登录用户的管理。

关键词:企业人事管理系统,数据库,Java

I

沈阳工程学院课程设计报告 目录

目 录

摘 要 ................................................................................................................................................ I 目 录 ................................................................................................................................................ I 第1章 系统总体介绍及组内分工 ............................................................................................... 1

1.1系统总体介绍 ................................................................................................................... 1 1.2项目开发环境 ................................................................................................................... 1 1.2.1硬件环境 ................................................................................................................... 1 1.2.2软件环境 ................................................................................................................... 1 1.3组内分工 ........................................................................................................................... 1 第2章 系统分析 ........................................................................................................................... 3

2.1需求概述 ........................................................................................................................... 3 2.2需求分析 ........................................................................................................................... 3 2.2.1理解需求 ................................................................................................................... 3 2.2.2分析需求 ................................................................................................................... 3 2.3可行性分析 ....................................................................................................................... 4 2.4设计思想 ........................................................................................................................... 4 2.5功能结构图 ....................................................................................................................... 4 第3章 数据库设计 ....................................................................................................................... 6

3.1数据库需求分析 ............................................................................................................... 6 3.2数据流图 ........................................................................................................................... 6 3.3数据字典 ........................................................................................................................... 7 3.4数据库概念结构设计 ....................................................................................................... 9 3.4.1概念结构设计思想 ................................................................................................... 9 3.4.2局部概念模型设计 ................................................................................................... 9 3.4.3总体概念结构设计 ................................................................................................. 10 3.4.4E-R图的转换 .......................................................................................................... 11 3.5数据库逻辑结构设计 ..................................................................................................... 11 3.5.1逻辑结构设计思想 ...................................................................................................... 11 3.5.2逻辑结构设计方法 ...................................................................................................... 11 第4章 系统详细模块设计与实现 ............................................................................................. 13

4.1系统登录 ......................................................................................................................... 13 4.2系统主界面 ..................................................................................................................... 16 4.3增加人员 ......................................................................................................................... 24 4.4查询人员 ......................................................................................................................... 27 4.5删除人员 ......................................................................................................................... 29 4.6登录用户密码修改 ......................................................................................................... 34 4.7返回主界面 ..................................................................................................................... 37 4.8其他功能说明 ................................................................................................................. 37 结 论 ............................................................................................................................................. 39 致 谢 ............................................................................................................................................. 40 参考文献 ....................................................................................................................................... 41

沈阳工程学院课程设计报告 第1章 系统总体介绍及组内分工

第1章 系统总体介绍及组内分工

1.1系统总体介绍

在当今这个信息时代,提高工作效率一直是企业所追求的。作为一个较大型的公司,在企业人事管理方面必然会有繁重的工作。传统的手工管理方式不仅效率地下,而且极大的浪费纸张等资源,为此企业增加了不少支出。为了彻底解决这些问题,有必要设计一个企业人事管理系统,以便用计算机来管理企业的员工。不仅大大提高了工作效率,也使得各种信息便于查询,也为企业节省了不少开支。

本系统主要为了提高企业人事管理的工作效率,为公司提供一个标准化的企业人事管理,我们对该系统做了人性化的设计。使整个工作变得更系统化、规范化。

经过实际的研究,我们设计了五大功能:人员管理,部门管理,档案管理,用户管理和返回主界面。

为开发该系统,我们需要: ⑴建立所需的数据库系统

首先做好需求分析,在需求分析中,主要内容为数据流图、数据字典(数据项、数据结构、数据流、数据存储、处理过程);

其次做概念分析,利用实体联系的方法将需求分析的用户需求抽象为信息结构,得到E-R 图。

然后就是逻辑结构设计,将E-R图转换为计算机系统所支持的逻辑模型。 ⑵进行编码和测试

在已有数据库的基础上进行功能模块化编码,最终组合成一个完整的宾馆客房管理应用平台。

1.2项目开发环境

1.2.1硬件环境

PC机 1.2.2软件环境

⑴操作系统:Windows

⑵开发工具:NetBeans ID7.0 ⑶数据库:MySQL 5.0

1.3组内分工

具体分工如表1.1所示。

-1-

沈阳工程学院课程设计报告 第1章 系统总体介绍及组内分工

表1.1 组内分工表

组内职务 组长 组员

姓名 钟传苗 刘金和 李成章 魏刚

任务

系统整体设计、用户管理

功能

部门管理功能、返回主界

面功能

数据库设计、人员管理功

系统主界面设计、档案管

理功能

成绩

-2-

沈阳工程学院课程设计报告 第2章 系统分析

第2章 系统分析

2.1需求概述

该系统设计的五大功能:

⑴人员管理功能,主要是实现对人员的增加、查询和删除功能。 ⑵部门管理功能,主要是实现对部门的增加、查询和删除功能。

⑶档案管理功能,主要是实现对人员档案的增加、修改、查询和删除功能。 ⑷用户管理功能,主要是实现对登录用户的增加和密码修改功能。

⑸返回主界面功能,主要是实现在其它界面的时候,能够快速返回主界面。

2.2需求分析

2.2.1理解需求

企业人事管理系统是以企业人事管理人员的角度设计的。考虑到人事管理是一个比较严格的工作,因此我们设计了用户登录界面,只有拥有用户名和密码的人员才有资格对企业人事信息进行操作。之后考虑了人事管理人员的各种需求,包括人员和档案的添加、查询、修改和删除等等。总体上满足了较大型企业的人事管理需求。

下面是系统所要达到的几条要求:

⑴要求系统准确的记录各种信息。 ⑵系统要提供丰富的查询功能。

⑶系统运行在Windows平台下,需要有良好的用户界面。 ⑷系统具有良好的可扩展性,良好的可移植性。 2.2.2分析需求

分析需求就是描述系统的需求,通过定义系统中的关键域建立模型。分析的根本目的是在开发者和提出需求的人之间建立一种理解和沟通的机制。因此,企业人事管理系统的需求分析也应该是开发人员和用户或者客户一起完成的。

分析需求的第一步描述企业人事管理的功能,以此确定系统的功能需求。企业人事管理系统的分析必须非常细致的进行,需要和企业人事管理人员进行全方面的交流和沟通,以保证需求分析的可行性。

企业人事管理系统的角色是系统操作员。操作员把员工的个人档案信息进行存储,对员工的相关信息进行管理和更新,对员工的基本情况进行查询。操作员还可以对自己的密码进行设置和修改,对操作员的信息进行添加修改。

-3-

沈阳工程学院课程设计报告 第2章 系统分析

2.3可行性分析

⑴技术可行性分析

技术上的可行性分析要考虑将来要采用的硬件和软件技术能否满足用户(这里是校方)提出的要求(如计算机的容量、速度等)。此外,还要考虑开发人员的水平,作为计算机专业的学生,经过几年的学习,在数据库和编程方面都有一定的基础。所以对于这个系统的开发还是有能力做好的。

本人掌握了数据库及其应用技术、数据库原理、计算机网络技术、Java等课程,对数据库的设计、应用、维护及局域网的组成有了深刻的认识与一定的动手实践能力。从一定程度上具备了开发一个小型系统的能力。而现在学院的计算机配置均可达到P4 2.8GHZ、256M内存、160G硬盘、768*1024分辨率的显示器。

⑵经济可行性

主要从对项目的经济上进行分析评价,一方面是支出的费用,包括设备购置费、管理和维护费用、人员工资和培训费等,另一个是取得的收益。这是个超小型的管理系统,从投入的人力,财力与物力来讲是非常之小的,只要一台电脑就可以了。从节省人力方面,可以让管理人员从繁与复杂的工作中解脱出来,做更多的工作。

⑶运行可行性

我国的中小型企业数不胜数,大部分公司对人事管理还处于纯手工管理阶段。随着计算机硬件的快速发展,计算机的价格在不断地降低,企业人事管理系统对客户端要求极低,因此系统在实践上具备了可行性。

⑷法律可行性

本系统纯为私人设计,在开发过程中没有涉及合同、责任等与法律相抵触的方面。因此,本系统在法律上是可行的。

由此可知,在小范围内该系统还是具有可行性的。

2.4设计思想

本系统开发设计思想有以下几点:

⑴充分利用现有资源,提高系统开发水平和应用效果的目的。

⑵系统应符合管理人员的具体要求,满足日常的管理工作需要,而且要达到使用中的直观、快捷、实用、安全、稳定等要求。

⑶系统采用模块化的程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。

⑷系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改等功能。

2.5功能结构图

本系统主要为了提高企业人事管理的工作效率,为企业节省开支,我们对该系统做了

-4-

沈阳工程学院课程设计报告 第2章 系统分析

人性化的设计。使整个工作变得更系统化、规范化。

经过实际的研究,我们大概设计了五大功能:人员管理,部门管理,档案管理,用户管理和返回主界面。

⑴人员管理:是企业人事管理系统的核心部分,它的主要功能是增加员工信息,包括姓名,性别,年龄,入职时间,所属部门等。

⑵部门管理:包括当前部门名称和所属上级部门ID。使得部门间分级清晰,便于管理和浏览。

⑶档案管理:主要是对员工的档案进行跟新、查询、修改,做到员工的信息准确和实时性。

⑷用户管理:这部分主要是正对登录用户的管理,包括添加登录用户和修改登录用户密码。

⑸返回主界面:主要是方面管理人员的操作,可以在其他界面的时候返回到主界面。 系统的功能模块图如图2.1所示。

图2.1 系统功能模块图

-5-

沈阳工程学院课程设计报告 第3章 数据库设计

第3章 数据库设计

3.1数据库需求分析

经过调查用户需求,分析确定了该系统应该包括如下功能:

⑴人员管理:是企业人事管理系统的核心部分,它的主要功能是添加员工信息,包括输入姓名,性别,年龄,入职时间,所属部门等,这些直接关系到后面档案管理。

⑵部门管理:包括部门的ID、部门名称和所属部门。当添加新的部门时,就添加相应的标准信息,可以进行各种操作。

⑶档案管理:主要是对员工的信息进行管理。包括添加、修改、查询和删除。

⑷用户管理:对登录用户进行的操作,包括添加登录用户和密码修改。 ⑸返回主界面:这部分不涉及对数据库的操作。

3.2数据流图

数据流图(DataFlowDiagram,DFD)是用来描绘软件系统逻辑模型的图形工具,用于描绘信息在系统中的流动和处理情况。数据流图是结构系统分析的主要工具,它表示了系统内部信息的流向,并表示了系统的逻辑处理的功能,是一种功能模型。

在数据流图中有四种基本符号,如表3.1所示。

表3.1数据流图基本符号的意义

符号

说明

加工,输入数据在此进行变换产生输出数据,中间要注明加工的名字

数据输入的源点和数据输出的终点,在其中要注明源泉点或终点的名字 数据流,被加工的数据及数据流向,在箭头边要用名词或名词性短语给

出数据流的名字

数据存储文件,要用名词或名词性短语给出数据文件的名字

具体功能分析:

⑴数据源点和数据终点

数据源点和数据终点用方框表示,它是系统之外的实体,可以是人、事、物、部门或其他系统。

⑵加工(数据处理变换)

加工用圆框表示,是对数据进行处理的逻辑单元,它接受若干输入数据流,通过加工,

-6-

沈阳工程学院课程设计报告 第3章 数据库设计

内部产生规定的输出数据流。

⑶数据流

数据流用带数据流标识的箭头表示,表示系统处理的数据对象和数据流动的方向。数据流的方向可以是:从一加工流向另一加工、从加工流向数据存储或数据存储流向加工、从源点流向加工或从加工流向终点。

⑷数据存储文件

数据存储文件在数据流图中起着保存数据的作用,它可以是数据库、文件或任何其它形式,指向存储的数据流可理解为数据写入,从存储引出的数据流可理解为数据读出。

3.3数据字典

数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分。其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构,数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。

⑴据项

数据项是数据库的关系中不可再分的数据单位。企业人事管理系统的数据项如表3.2所示。

表3.2数据项列表

名称 id p_name p_gender p_age p_jointime p_dept id name pw id d_dept father_id

数据类型 int vchar vchar vchar int vchar int vchar number int vchar int

长度 10 50 4 10 20 20 10 50 10 10 20 10

说明 记录员工号(唯一)

记录员工姓名 记录员工性别 记录员工年龄 记录员工入职时间 记录员工所属部门 记录登录用户ID

(唯一) 记录登录用户名 记录登录用户密码 部门ID(唯一) 记录部门名称 记录所属部门ID

⑵数据结构

数据结构是为反映数据之间的组合关系,即一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构组成。宾馆客房管理系统的数据结构如表3.3所示。

-7-

沈阳工程学院课程设计报告 第3章 数据库设计

表3.3数据结构清单 数据结构名 员工信息 部门信息

用户信息

含义说明 员工基本信息的描述

部门基本信息的描述

用户基本信息的描述

组成 员工编号+姓名+性别+年龄+入职时间+所属部门;

部门ID+部门名称+所属部门ID;

用户ID+用户名+用户密码;

⑶数据流

数据流是数据结构在系统内传输的路径。本系统中对数据流的具体描述如表3.4所示。

表3.4数据流清单

数据流编号

L01 L02 L03 L04 L05 L06 L07 L08 L09 L10 L11 L12

数据流名称 增加人员 查询人员 删除人员 增加部门 查询部门 删除部门 新增档案 修改档案 查询档案 删除档案 增加用户 密码修改

数据流说明 增加员工信息 查询员工基本信息 对员工信息进行删除 增加员工信息 查询员工基本信息 对部门信息进行删除 增加员工档案 修改员工档案 查询员工的档案 删除员工档案 增加登录用户 修改登录用户和的密码

数据来源 增加人员 员工信息表 员工信息表 增加部门 部门信息表 部门信息表 新增档案 员工信息表 员工信息表 员工信息表 增加用户 用户信息表

数据去向 员工信息表 查询人员 员工信息表 部门信息表 查询部门 部门信息表 员工信息表 员工信息表 查询档案 员工信息表 用户信息表 用户信息表

⑷数据存储

数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。它可以手工文档或手工凭单,也可以是计算机文档。本系统中对数据存储的具体描述如表3.5所示。

-8-

沈阳工程学院课程设计报告 第3章 数据库设计

表3.5数据存储清单

数据存储名称 员工信息表 部门信息表 用户信息表

数据存储说明 存储员工信息 存储部门信息 存储登录用户信息

输入的数据流 增加人员 增加部门 增加登录用户

输出的数据流 查询人员 查询部门 无

3.4数据库概念结构设计

3.4.1概念结构设计思想

根据需求分析阶段的数据项,对这些信息进行抽象处理,通过分类、聚集、概括这三种手段,确定宾馆客房管理系统中有几个实体,并确定各实体有哪些属性,画出分E-R图,在分析各分E-R图中的属性,还可分的话就再把该属性划分为实体,及到个属性不可再分,再根据各分E-R图的三类冲突:属性冲突、命名冲突和结构冲突,对各E-R图进行优化,再根据需求分析阶段的数据流图确定各实体之间的关系,然后把各分E-R图整合起来形成总体E-R图,之后可根据总体E-R图可画出概念模型图进一步画关系模型图,完成整个概念设计阶段。

3.4.2局部概念模型设计

局部概念模型的设计思想是根据需求分析的内容用E-R图分别表示出各个实体及其属性。

登录用户基本属性如图3.1所示。

图3.1登录用户基本属性

-9-

沈阳工程学院课程设计报告 第3章 数据库设计

人员信息基本属性如图3.2所示。

图3.2人员信息基本属性

部门信息基本属性如图3.3所示。

图3.3部门信息基本属性

3.4.3总体概念结构设计

各子系统的分E-R图设计好以后,下一步就是将所有的分E-R图综合成一个总的E-R图。由于各个局部所面向的问题不同,这就导致各个分E-R图之间必定会存在许多不一致的问题,称之为冲突。因此分E-R图的合并并不能简单地将各个分E-R图画到一起,而是必须合理消除各分E-R图中的不一致,以形成一个能为全系统中所有用户共同理解和接受的统一的概念模型,是合并E-R图的主要工作和关键。各E-R图之间的冲突主要有三种:属性冲突、命名冲突、结构冲突。

-10-

沈阳工程学院课程设计报告 第3章 数据库设计

3.4.4E-R图的转换

按照合成总体E-R图的规则,画出完整的E-R图,如图3.6所示。

图3.6全局E-R图

3.5数据库逻辑结构设计

3.5.1逻辑结构设计思想

概念结构设计是独立于任何一种数据模型的信息结构。逻辑结构设计是由概念结构设计阶段设计好概念模型转换来的的逻辑结构即物理模型。所以逻辑结构设计一般分以下三个方面:

⑴将概念结构转换为一般的关系、网状、层次模型。

⑵将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换。 ⑶对数据模型进行优化。

针对企业人事管理系统,逻辑结构设计采用概念结构转换的概念模型,将其依照规则转换为关系模型,为了进一步提高数据库应用系统的性能,再将转换后的关系模型进行优化,确定是否要对某些模式进行合并或分解,即进行规范化,为物理设计提供最优的处理。 3.5.2逻辑结构设计方法

关系模型的逻辑结构是一组关系模式的集合。E-R图则是由实体,实体的属性和实体间的联系三个要素组成。所以将E-R图转换为关系模型实际上就是要将实体,实体的属性和实体间的联系转换为关系模式。转换原则如下:

⑴实体类型的转换:将每个实体类型转换成一个关系模式,实体的属性及为关系模式的

-11-

沈阳工程学院课程设计报告 第3章 数据库设计

属性,实体标识符及为关系模式的键。

⑵联系类型的转换,根据不同的情况做不同的处理。

①一个1:1联系可以转换为一个独立的关系模型,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。如果与某一端实体对应的关系合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。

②一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。

③一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。

④三个或三个以上的实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。

⑤具有相同码的关系模式可合并。 ⑶得出关系模型

由概念设计的E-R图和概念模型图结合物理模型图得出E-R图转换为关系模型如下: A、将每一个实体转换成一个关系(关系就是给出关系名,写出属性,并标明该关系的主键)。

①员工信息信息(员工编号,姓名,性别,年龄,入职时间,所属部门) 在此联系中主码为员工编号,因为员工编号可以唯一确定一个员工,并且员工编号可以唯一确定该关系的其他所有属性。

②部门信息(部门编号,部门名称,上级部门编号)

在此联系中主码为部门编号,部门名称,上级部门编号做非主属性。

-12-

沈阳工程学院课程设计报告 第4章 系统详细模块设计与实现

第4章 系统详细模块设计与实现

4.1系统登录

企业人事管理系统只提供用户登录。可以对系统的所有功能进行操作,如用户名为jason,密码为123的用户,系统的登录界面如图4.1所示。

图4.1 登录界面

如果用户名和密码输入错误将出现错误提示,还实现了对恶意用户的判断,如图4.2所示。

图4.2 登录错误提示界面

-13-

沈阳工程学院课程设计报告 结论

结 论

紧张而又繁忙的课程设计过去了,在这两个星期里,我感觉自己学到了很多知识,特别是中软工程师的细心指导下,我熟悉了整个JAVA应用程序的开发流程。使本来对JAVA不是特别感兴趣的我,对JAVA产生了浓厚的兴趣。

编写了那么多的代码最后写出一个程序觉得很有成就感。对JAVA的掌握提高到了一个新的水平,能够利用JAVA编写出一个实用的程序,很大程度提高了程序综合设计能力、分析能力和编程能力。掌握了很多新的编程技巧,积累了一些编程经验。

我负责编写企业人事管理系统的的主界面程序,在这期间我觉得最重要的一个方面就是要认真,认真编写代码可以大大减少错误的出现;其次是要有耐心,勇于克服困难,不断解决问题,面对困难要永不退缩,迎难而上;再次是要有清晰的思维,能够理清各个函数之间的关系,明确各个函数的职能;最后还要和同学多交流合作,多参考书籍。通过这次课程设计,我了解并发现了很多调试程序的方法,而且懂得了如何处理错误的方法。

直到现在自己写报告的时候还是感慨颇多。从选题到定稿,从理论到实践,在整整两星期的日子里,我觉得是苦多于甜,但是却那些上网直接拷贝的多学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。特别是我们的这次课设还来了个校外老师,他给我们带来了许多学校以外的东西。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说是困难重重,难免会遇到各种各样的问题,最后在老师和同学的帮助下顺利完成了这次任务。

我们的课程设计结束了,但是它留给我的印象是不可磨灭的。无论我以后会不会涉及这方面的研究,我想,我至少掌握了一种系统的研究方法,我们学习的目的就在于运用,我们运用这种研究方法的时候会很多,我最后要感谢课程设计,它的确教会我很多。

紧张的设计时光就这样过去了,但是留给我的有很多回忆,我们组的成员刻苦专研的尽头和每天晚上熬到很晚才能睡觉的那种韧劲,使我明白只要是专心的做一件事,我们一定会得到回报。

总而言之,这次课程设计给了我们非常大的帮助。极大的提升了我们对JAVA的学习热情。真正的感受到了学习软件开发的乐趣,深入了解了整个开发的流程。为今后的学习和工作奠定了良好的基础。

-39-

沈阳工程学院课程设计报告 致谢

致 谢

我们本次JAVA课设成功完成任务了,能够顺利成功完成本次课设的主要有我们的组员共同努力,共同学习,还有的就是教师的指导,在这里教师给予我们的帮助。还有就是来了个中软的工程师肖老师。首先我们要感谢我们的老师,在孙老师和史老师的指导下我们才能顺利的完成本次课设。孙宪丽老师老师是我们的任课教师,这学期在她的孜孜教诲下,我们逐步掌握JAVA的基础知识,和JAVA的知识要领,因为学时有限,使得我们课程进度很快,但是孙老师凭借多年的经验使得我很好的学完了这门课程,孙老师还担任本次的课设指导工作,正是在孙老师的指导下我们才按预期的计划完成课设,不会因为我们问的多就烦,不会因为繁杂而推辞,在这里作为学生的我再一次的向孙宪丽老师致谢。

还要感谢系里面为我们请来了经验丰富的中软工程师,在工程师的一步步演示下,我们清楚了整个JAVA应用程序的开发流程。为以后的工作打好了坚实的基础。也期待系里面能给我们更多的类似的实践机会,让我们及时的了解到IT业界的最新动态,使我们跟得上企业的变化脚步。

在这里我组还要感谢我们的同学,在每一次困难的时候都要请同学来帮忙,在大家解决不了的时候再麻烦老师,都是大家的互相帮助,我们才会齐头并进,在每个人找到一本好书的同时就是大家受益的时候,也正是同学间的相互体谅让我们的学习道路更平坦,让我们的课设更顺利,在这种学习的氛围中也加深了我们彼此的友谊,所以在这里我们还要感谢给予过我们帮助的同学。

现在回想整个设计过程,如果没有老师的细心教导,同学们的帮肋,我组的课程设计也不会这么的完善。所以我们所有组员现在发自内心向你们道声“谢谢,你们辛苦了”。同时还要感谢帮助过我们的所有老师!

-40-

沈阳工程学院课程设计报告 参考文献

参考文献

[1] 张海藩.软件工程导论.北京:清华大学出版社,2003。 [2] 王要武.管理系统.北京:电子工业出版社,2003。 [3] 卢潇.软件工程.北京:清华大学出版社,2005。

[4] 宋昆,李严.SQL Server数据库开发实例解析.北京:机械工业出版社,2006。 [5] 耿详义.JAVA2教程.北京:清华大学出版社,2004。

[6] 张仿彦.JAVA项目开发全程实录.北京:清华大学出版社,2007。 [7] 杨小虎.软件工程课程设计.浙江:浙江大学出版社,2007。

[8] 韩万江.软件工程案例教程.北京:机械工业出版社,2007。 [9] 刘竹林,白振林,卢润彩.软件工程与项目管理.北京:北京师范大学出版社,2005。

-41-

沈阳工程学院课程设计报告 第4章 系统详细模块设计与实现

下面是登录界面的主要代码: package jiemian;

import database.LoginChecking; import java.sql.SQLException; import java.util.logging.Level; import java.util.logging.Logger; public Login() {

initComponents(); }

private void initComponents() {

jPanel1 = new javax.swing.JPanel(); jPanel2 = new javax.swing.JPanel(); name = new javax.swing.JTextField(); pw = new javax.swing.JPasswordField(); jButton1 = new javax.swing.JButton(); jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setTitle(\企业人事管理系统\

setLocationByPlatform(true); setResizable(false);

name.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { nameActionPerformed(evt); } });

jButton1.setText(\登 录\

jButton1.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) {

LoginCheck(evt); } })

jLabel1.setText(\用户名\ jLabel2.setText(\密 码\// 判断恶意用户----

if(name.split(\

javax.swing.JOptionPane.showMessageDialog(this, \请不要试图入侵系统\

-14-

沈阳工程学院课程设计报告 第4章 系统详细模块设计与实现

\错误\

}else{

System.out.println(\密码:\

//--------------第二步---------------------------------------------- boolean flag=false;

LoginChecking lc=new LoginChecking(); try {

flag=lc.LoginCheck(name, pw); } catch (ClassNotFoundException ex) {

Logger.getLogger(Login.class.getName()).log(Level.SEVERE, null, ex); } catch (SQLException ex) {

Logger.getLogger(Login.class.getName()).log(Level.SEVERE, null, ex); }

//------------------去判断flag的值,是 真或假,就可以得出结论:登陆的成功与否---- System.out.println(flag); if(flag==true){

//登陆成功的操作

//javax.swing.JOptionPane.showMessageDialog(this, \登陆成功\提示\

Login.this.dispose();//本身窗体消失; // 显示主页面

Main showMain=new Main(); showMain.showThis(); }else{

//提示用户,登陆失败

javax.swing.JOptionPane.showMessageDialog(this, \用户名或密码错误\错误\

}

}

}

private void nameActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {

-15-

沈阳工程学院课程设计报告 第4章 系统详细模块设计与实现

public void run() {

new Login().setVisible(true); } });

}

private javax.swing.JButton jButton1; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3;

private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JTextField name;

private javax.swing.JPasswordField pw; }

4.2系统主界面

本系统是应用模块化进行编程实现的,当各个模块完成后均可以组合到主界面界面中相应的菜单项。如果用户登录成功将进入主界面,如图4.3所示。

-16-

沈阳工程学院课程设计报告 第4章 系统详细模块设计与实现

图4.3 主界面

主界面的代码如下: package jiemian;

import java.sql.SQLException; import java.util.logging.Level; import java.util.logging.Logger;

public class Main extends javax.swing.JFrame { /** Creates new form Main */ public Main() {

initComponents(); }

private void initComponents() {

jLabel2 = new javax.swing.JLabel(); jLabel1 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel(); jLabel5 = new javax.swing.JLabel();

jMenuBar1 = new javax.swing.JMenuBar(); jMenu1 = new javax.swing.JMenu();

jMenuItem1 = new javax.swing.JMenuItem(); jMenuItem2 = new javax.swing.JMenuItem();

-17-

沈阳工程学院课程设计报告 第4章 系统详细模块设计与实现

jMenuItem3 = new javax.swing.JMenuItem(); jMenu2 = new javax.swing.JMenu();

jMenuItem6 = new javax.swing.JMenuItem(); jMenuItem5 = new javax.swing.JMenuItem(); jMenuItem4 = new javax.swing.JMenuItem(); jMenu3 = new javax.swing.JMenu();

jMenuItem9 = new javax.swing.JMenuItem(); jMenuItem7 = new javax.swing.JMenuItem(); jMenuItem10 = new javax.swing.JMenuItem(); jMenuItem8 = new javax.swing.JMenuItem();

jMenu4 = new javax.swing.JMenu();

jMenuItem11 = new javax.swing.JMenuItem(); jMenuItem13 = new javax.swing.JMenuItem(); jMenu5 = new javax.swing.JMenu();

jMenuItem14 = new javax.swing.JMenuItem();

jLabel2.setFont(new java.awt.Font(\华文楷体\ jLabel2.setText(\企业人事管理系统\

jLabel1.setFont(new java.awt.Font(\华文楷体\ jLabel1.setText(\欢迎使用\

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setTitle(\企业人事管理系统\ setLocationByPlatform(true); setResizable(false);

jLabel4.setText(\ jLabel5.setIcon(new

javax.swing.ImageIcon(getClass().getResource(\

jMenu1.setText(\人员管理\ jMenuItem1.setText(\增加人员\

jMenuItem1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) {

AddPeople(evt); } });

jMenu1.add(jMenuItem1);

jMenuItem2.setText(\查询人员\

jMenuItem2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { Search_people(evt);

-18-

沈阳工程学院课程设计报告 第4章 系统详细模块设计与实现

} });

jMenu1.add(jMenuItem2);

jMenuItem3.setText(\删除人员\

jMenuItem3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { alter_deletep(evt); } });

jMenu1.add(jMenuItem3);

jMenuBar1.add(jMenu1); jMenu2.setText(\部门管理\ jMenuItem6.setText(\增加部门\

jMenuItem6.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { AddDept(evt); } });

jMenu2.add(jMenuItem6);

jMenuItem5.setText(\查询部门\

jMenuItem5.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { SearchDept(evt); } });

jMenu2.add(jMenuItem5);

jMenuItem4.setText(\删除部门\

jMenuItem4.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { alter_delete(evt); } });

jMenu2.add(jMenuItem4);

jMenuBar1.add(jMenu2); jMenu3.setText(\档案管理\ jMenuItem9.setText(\新增档案\

-19-

沈阳工程学院课程设计报告 第4章 系统详细模块设计与实现

jMenuItem9.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { AddPeople(evt); } });

jMenu3.add(jMenuItem9);

jMenuItem7.setText(\修改档案\

jMenuItem7.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { alter_deletep(evt); } });

jMenu3.add(jMenuItem7);

jMenuItem10.setText(\查询档案\

jMenuItem10.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { Search_people(evt); }

});

jMenu3.add(jMenuItem10);

jMenuItem8.setText(\删除档案\

jMenuItem8.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { alter_deletep(evt); } });

jMenu3.add(jMenuItem8);

jMenuBar1.add(jMenu3); jMenu4.setText(\用户管理\

jMenuItem11.setText(\增加用户\

jMenuItem11.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { AddUser(evt); } });

-20-

沈阳工程学院课程设计报告 第4章 系统详细模块设计与实现

jMenu4.add(jMenuItem11);

jMenuItem13.setText(\密码修改\

jMenuItem13.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { AlterPassWord(evt); } });

jMenu4.add(jMenuItem13); jMenuBar1.add(jMenu4);

jMenu5.setText(\返回主界面\

jMenuItem14.setText(\返回主界面\

jMenuItem14.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { returnmain(evt); } });

jMenu5.add(jMenuItem14); jMenuBar1.add(jMenu5); setJMenuBar(jMenuBar1); javax.swing.GroupLayout layout =

new

javax.swing.GroupLayout(getContentPane());

getContentPane().setLayout(layout); layout.setHorizontalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(jLabel3)

.addContainerGap(852, Short.MAX_VALUE))

.addComponent(jLabel5, javax.swing.GroupLayout.DEFAULT_SIZE, 852, Short.MAX_VALUE)

); layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jLabel3) .addComponent(jLabel5) );

pack(); }

private void AddPeople(java.awt.event.ActionEvent evt) {

-21-

沈阳工程学院课程设计报告 第4章 系统详细模块设计与实现

AddPeople_C adc=new AddPeople_C(); this.setContentPane(adc); this.setVisible(true);

}

private void Search_people(java.awt.event.ActionEvent evt) { SearchPeople_C sdc=new SearchPeople_C(); this.setContentPane(sdc); this.setVisible(true);

}

private void AddDept(java.awt.event.ActionEvent evt) { AddDept_C adc=new AddDept_C(); this.setContentPane(adc); this.setVisible(true);

}

private void SearchDept(java.awt.event.ActionEvent evt) { SearchDept_C sdc=new SearchDept_C(); this.setContentPane(sdc); this.setVisible(true);

}

private void alter_delete(java.awt.event.ActionEvent evt) {

AlterDelete ad=new AlterDelete();

this.setContentPane(ad); this.setVisible(true);

}

private void alter_deletep(java.awt.event.ActionEvent evt) { try{

AlterDeletep ad=new AlterDeletep(); this.setContentPane(ad); this.setVisible(true); }catch(Exception e){ e.printStackTrace(); }

}

private void AddUser(java.awt.event.ActionEvent evt) { AddUser ad=new AddUser();

this.setContentPane(ad); this.setVisible(true); }

-22-

沈阳工程学院课程设计报告 第4章 系统详细模块设计与实现

private void returnmain(java.awt.event.ActionEvent evt) { this.dispose();

Main showMain=new Main(); showMain.showThis(); }

private void AlterPassWord(java.awt.event.ActionEvent evt) { AlterPassWord_C ad=new AlterPassWord_C(); this.setContentPane(ad); this.setVisible(true);

}

public void showThis(){

java.awt.EventQueue.invokeLater(new Runnable() { @Override

public void run() {

new Main().setVisible(true); } }); }

// Variables declaration - do not modify private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JMenu jMenu1; private javax.swing.JMenu jMenu2; private javax.swing.JMenu jMenu3; private javax.swing.JMenu jMenu4; private javax.swing.JMenu jMenu5;

private javax.swing.JMenuBar jMenuBar1; private javax.swing.JMenuItem jMenuItem1; private javax.swing.JMenuItem jMenuItem10; private javax.swing.JMenuItem jMenuItem11; private javax.swing.JMenuItem jMenuItem13; private javax.swing.JMenuItem jMenuItem14; private javax.swing.JMenuItem jMenuItem2; private javax.swing.JMenuItem jMenuItem3; private javax.swing.JMenuItem jMenuItem4;

-23-

沈阳工程学院课程设计报告 第4章 系统详细模块设计与实现

private javax.swing.JMenuItem jMenuItem5; private javax.swing.JMenuItem jMenuItem6; private javax.swing.JMenuItem jMenuItem7; private javax.swing.JMenuItem jMenuItem8; private javax.swing.JMenuItem jMenuItem9; }

4.3增加人员

人员管理部分包括增加查询和删除人员功能,点击人员管理—>增加人员进入新员工信息录入界面,如图4.4所示。在该界面中添加完相关信息后,点击“添加”。若显示“添加成功”则完成了对该新员工的信息录入。

图4.4 增加人员界面

增加人员功能的代码如下: package jiemian;

import database.InsertPeople; import java.sql.SQLException; import java.util.logging.Level; import java.util.logging.Logger;

public class AddPeople_C extends javax.swing.JPanel { /** Creates new form AddPeople_c */ public AddPeople_C() { initComponents();

-24-

沈阳工程学院课程设计报告 第4章 系统详细模块设计与实现

} private void initComponents() {

jLabel1 = new javax.swing.JLabel(); p_name = new javax.swing.JTextField(); p_gender = new javax.swing.JTextField(); p_age = new javax.swing.JTextField(); p_jointime = new javax.swing.JTextField(); jLabel3 = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel(); jLabel5 = new javax.swing.JLabel();

jLabel6 = new javax.swing.JLabel(); jButton1 = new javax.swing.JButton(); jLabel2 = new javax.swing.JLabel(); p_dept = new javax.swing.JTextField(); jLabel1.setText(\增加人员\

p_name.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { p_nameActionPerformed(evt); } });

jLabel3.setText(\ 姓名\ jLabel4.setText(\ 性别\ jLabel5.setText(\ 年龄\ jLabel6.setText(\入职时间\ jButton1.setText(\添 加\

jButton1.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { AddPeople_M(evt); } });

jLabel2.setText(\所属部门\

private void p_nameActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: }

private void AddPeople_M(java.awt.event.MouseEvent evt) { // TODO add your handling code here: String pn=\ String pg=\

-25-

沈阳工程学院课程设计报告 第4章 系统详细模块设计与实现

String pa=\ String pj=\ String pd=\

pn=p_name.getText(); pg=p_gender.getText(); pa=p_age.getText(); pj=p_jointime.getText(); pd=p_dept.getText();

//fd=Integer.valueOf( father_id.getText()).intValue();//字符串型 转换成 整形 //Double.valueOf(\字符串型 转换成 双精度型

// int a=10;

// String s=String.valueOf(a); 整形转换成 字符串型 InsertPeople id=new InsertPeople(); try {

id.insertD(pn,pg,pa,pj,pd);

} catch (ClassNotFoundException ex) {

Logger.getLogger(AddPeople_C.class.getName()).log(Level.SEVERE, null, ex);

} catch (SQLException ex) {

Logger.getLogger(AddPeople_C.class.getName()).log(Level.SEVERE, null, ex);

}

javax.swing.JOptionPane.showMessageDialog(this, \添加人员成功\提示\

}

// Variables declaration - do not modify private javax.swing.JButton jButton1; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2;

private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JTextField p_age; private javax.swing.JTextField p_dept; private javax.swing.JTextField p_gender; private javax.swing.JTextField p_jointime;

-26-

沈阳工程学院课程设计报告 第4章 系统详细模块设计与实现

private javax.swing.JTextField p_name; }

4.4查询人员

本部分可以通过员工的ID或者员工的姓名进行查询。如果不输入任何信息则默认查询所有人员的信息。还实现了对姓名的模糊查询。输入完成后点击“查询”。表格中将会返回查询的结果。人员查询的界面如图4.5所示。

图4.5 人员查询界面

人员查询功能的代码如下: package jiemian;

import database.Search_people; import java.sql.ResultSet;

import java.sql.SQLException; import java.util.logging.Level; import java.util.logging.Logger;

import javax.swing.table.DefaultTableModel;

public class SearchPeople_C extends javax.swing.JPanel { public SearchPeople_C() { initComponents(); }

private void initComponents() {

jPanel1 = new javax.swing.JPanel();

-27-

沈阳工程学院课程设计报告 第4章 系统详细模块设计与实现

jScrollPane1 = new javax.swing.JScrollPane(); jTable1 = new javax.swing.JTable(); jLabel1 = new javax.swing.JLabel(); jButton1 = new javax.swing.JButton(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel();

jTextField1 = new javax.swing.JTextField(); jTextField2 = new javax.swing.JTextField();

jTable1.setAutoCreateRowSorter(true);

jTable1.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {} },

new String [] {

} ));

jScrollPane1.setViewportView(jTable1);

jLabel1.setText(\人员查询\

jButton1.setText(\查 询\

jButton1.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { search_pdata(evt); } });

jLabel2.setText(\人员 ID\

jLabel3.setText(\人员姓名\

private void search_pdata(java.awt.event.MouseEvent evt) { // 查询数据库,并显示出结果 String p_id1=\ String p_name1=\

p_id1=jTextField1.getText(); p_name1=jTextField2.getText(); ResultSet rs = null;

Search_people sd=new Search_people();

-28-

沈阳工程学院课程设计报告 第4章 系统详细模块设计与实现

try{

rs=sd.get_result(p_id1,p_name1); DefaultTableModel dtm; Object [][] ob={}; String[] st={

\姓名\性别\年龄\入职时间\所属部门\ };

dtm=new DefaultTableModel(ob,st); jTable1.setModel(dtm); for(;rs.next();){ Object[]

data={ rs.getString(\s.getString(\ dtm.addRow(data); }

jTable1.setModel(dtm); }catch(Exception e){ }

}

// Variables declaration - do not modify private javax.swing.JButton jButton1; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JPanel jPanel1;

private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTable jTable1;

private javax.swing.JTextField jTextField1; private javax.swing.JTextField jTextField2; // End of variables declaration }

4.5删除人员

由于公司会有员工辞职等情况,所以设计了删除人员功能。可以根据员工ID来查询员工的个人基本信息,然后进行修改或者删除。删除人员界面如图4.6所示。

-29-

沈阳工程学院课程设计报告 第4章 系统详细模块设计与实现

图4.6 删除人员界面

人员删除功能的代码如下: package jiemian;

import database.GetPeopleId; import java.sql.*;

import database.Search_people;

import database.Update_people;

import javax.swing.ComboBoxModel;

public class AlterDeletep extends javax.swing.JPanel { /** Creates new form AlterDeletepp */

public AlterDeletep() throws SQLException, ClassNotFoundException, Exception { initComponents();

GetPeopleId gdi = new GetPeopleId(); ResultSet rs = gdi.getId(); for (; rs.next();) {

jComboBox1.addItem(rs.getString(\ }

rs.close(); gdi.closeit();

} private void initComponents() {

jPanel1 = new javax.swing.JPanel(); jButton1 = new javax.swing.JButton(); jButton2 = new javax.swing.JButton();

-30-

沈阳工程学院课程设计报告 第4章 系统详细模块设计与实现

jTextField1 = new javax.swing.JTextField(); jTextField2 = new javax.swing.JTextField(); jTextField3 = new javax.swing.JTextField(); jTextField4 = new javax.swing.JTextField(); jTextField5 = new javax.swing.JTextField(); jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel(); jLabel5 = new javax.swing.JLabel();

jLabel6 = new javax.swing.JLabel(); jLabel7 = new javax.swing.JLabel();

jComboBox1 = new javax.swing.JComboBox(); jButton3 = new javax.swing.JButton(); jButton1.setText(\修 改\

jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { Alter(evt); } });

jButton2.setText(\删 除\

jButton2.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { deletePeople(evt); } });

jLabel1.setText(\姓 名\ jLabel2.setText(\性 别\ jLabel3.setText(\年 龄\ jLabel4.setText(\入职时间\

jLabel5.setText(\人员ID\ jLabel6.setText(\删除人员\ jLabel7.setText(\所属部门\ jButton3.setText(\查 询\

jButton3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { Search(evt); }

-31-

沈阳工程学院课程设计报告 第4章 系统详细模块设计与实现

});

private void deletePeople(java.awt.event.MouseEvent evt) {

if(javax.swing.JOptionPane.showConfirmDialog(this, \是否删除\\请确认\GE)==0){

String id = \

id = String.valueOf(jComboBox1.getSelectedItem()); Update_people ud = new Update_people(); try {

ud.deletepeople(id); } catch (Exception e) { }

jTextField1.setText(\ jTextField2.setText(\ jTextField3.setText(\ jTextField4.setText(\ jTextField5.setText(\ } else { }

}

private void Search(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String id = \ String pn=\ String pg=\ String pa=\ String pj=\ String pd=\

id = String.valueOf(jComboBox1.getSelectedItem()); System.out.println(id);

Search_people sd = new Search_people(); ResultSet rs; try {

rs = sd.get_result(id); while (rs.next()) {

pn = rs.getString(\ pg = rs.getString(\

-32-

沈阳工程学院课程设计报告 第4章 系统详细模块设计与实现

pa = rs.getString(\ pj = rs.getString(\ pd = rs.getString(\ }

rs.close();

jTextField1.setText(pn); jTextField2.setText(pg); jTextField3.setText(pa); jTextField4.setText(pj); jTextField5.setText(pd);

} catch (Exception e) { }

}

private void Alter(java.awt.event.ActionEvent evt) { String id = \ String pn=\ String pg=\ String pa=\ String pj=\ String pd=\ id = String.valueOf(jComboBox1.getSelectedItem()); pn= jTextField1.getText(); pg= jTextField2.getText(); pa= jTextField3.getText(); pj= jTextField4.getText(); pd= jTextField5.getText();

Update_people ud = new Update_people(); try {

ud.update_people(id,pn,pg,pa,pj,pd);

javax.swing.JOptionPane.showMessageDialog(this, \修改成功\人员修改\

} catch (Exception e) { }

}

// Variables declaration - do not modify private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JButton jButton3;

-33-

沈阳工程学院课程设计报告 第4章 系统详细模块设计与实现

private javax.swing.JComboBox jComboBox1; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JPanel jPanel1;

private javax.swing.JTextField jTextField1;

private javax.swing.JTextField jTextField2; private javax.swing.JTextField jTextField3; private javax.swing.JTextField jTextField4; private javax.swing.JTextField jTextField5;

// End of variables declaration }

4.6登录用户密码修改

由于登录用户存在信息安全等问题,因此密码的修改显得非常有必要。密码修改的界面如图4.7所示。

图4.7密码修改界面

考虑到用户容易误操作,我们做了比较细致的错误提示。这样就大大的降低了用户误操作的风险,提高了系统的人性化程度,给操作者良好的用户体验。当新密码输入框都为

-34-

沈阳工程学院课程设计报告 第4章 系统详细模块设计与实现

空或者,两个密码框输入的密码不一致时,系统将提示出错。错误提示的界面如图4.8所示。

图4.8 错误提示界面

登录用户密码修改的代码如下: package jiemian;

import database.AlterPassWord; import database.GetAdminId;

import java.sql.ResultSet;

import java.sql.SQLException; import java.util.logging.Level; import java.util.logging.Logger;

public class AlterPassWord_C extends javax.swing.JPanel {

/** Creates new form AlterPassWord */

public AlterPassWord_C() throws Exception { initComponents();

GetAdminId gdi = new GetAdminId(); ResultSet rs = gdi.getId(); for (; rs.next();) {

jComboBox1.addItem(rs.getString(\ }

rs.close(); gdi.closeit();

} private void initComponents() {

-35-

沈阳工程学院课程设计报告 第4章 系统详细模块设计与实现

jPanel1 = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); pw1 = new javax.swing.JTextField(); pw2 = new javax.swing.JTextField(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); jButton1 = new javax.swing.JButton(); jLabel4 = new javax.swing.JLabel();

jComboBox1 = new javax.swing.JComboBox(); jLabel1.setText(\密码修改\

jLabel2.setText(\请输入新密码\ jLabel3.setText(\再次输入新密码\ jButton1.setText(\确认修改\

jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { Alter(evt); } });

jLabel4.setText(\要修改的用户名\

private void Alter(java.awt.event.ActionEvent evt) { // TODO add your handling code here: boolean flag=false; String id = \ String pw01=\ String pw02=\

id = String.valueOf(jComboBox1.getSelectedItem()); pw01= pw1.getText(); pw02= pw2.getText();

AlterPassWord ud = new AlterPassWord(); try {

ud.alter_password(id,pw01,pw02); } catch (Exception e) {} try {

flag=ud.alter_password(id, pw01,pw02); } catch (ClassNotFoundException ex) {

Logger.getLogger(Login.class.getName()).log(Level.SEVERE, null, ex); } catch (SQLException ex) {

Logger.getLogger(Login.class.getName()).log(Level.SEVERE, null, ex);

-36-

沈阳工程学院课程设计报告 第4章 系统详细模块设计与实现

}

if(flag==false){

javax.swing.JOptionPane.showMessageDialog(this, \密码为空或者输入不一致\密码修改\

} else{

javax.swing.JOptionPane.showMessageDialog(this, \修改成功\\密码修改\

}

}

// Variables declaration - do not modify private javax.swing.JButton jButton1;

private javax.swing.JComboBox jComboBox1; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JPanel jPanel1; private javax.swing.JTextField pw1; private javax.swing.JTextField pw2;

// End of variables declaration }

4.7返回主界面

这个功能代码非常简单,但是非常实用,极大的方便了用户。其原理是,在主界面里面添加一个方法,功能为当前窗口消失,实例化主界面窗口。

返回主界面代码如下:

private void returnmain(java.awt.event.ActionEvent evt) { // TODO add your handling code here:

this.dispose();

Main showMain=new Main(); showMain.showThis(); }

4.8其他功能说明

由于本系统的大部分功能都是通过JAVA语句实现对数据库的插入、跟新和删除操作。

-37-

沈阳工程学院课程设计报告 第4章 系统详细模块设计与实现

所以代码都比较类似,因此像部门管理和档案管理的各种功能代码在此不一一列出。

-38-

本文来源:https://www.bwwdw.com/article/uqbd.html

Top