数据库企业人事管理系统.docx
《数据库企业人事管理系统.docx》由会员分享,可在线阅读,更多相关《数据库企业人事管理系统.docx(32页珍藏版)》请在冰豆网上搜索。
数据库企业人事管理系统
Xxxxxxxxxxxxx
课程设计报告
设计名称:
数据库原理及应用课程设计
姓名:
xx学号:
xxxxxxx
专业班级:
xxxx
系(院):
xxxxxxx
设计地点:
xxxxxxxx
成绩:
指导教师评语:
签名:
年月日
一、概述
1.1本课题的来源
在企业中,人事管理工作是非常重要的一项工作,它负责整个企业的日常人事安排,人员的人事管理等。
高效的人事管理可以提高企业的市场竞争力,使企业具有更强的凝聚力和活力。
人事管理系统是一个面向企业人事部门工作人员,为其提供服务的综合信息管理系统人员通过本系统完成相关的日常工作,这些工作也是平常较为繁重的工作。
员工的个人信息等等都记录在人事系统里进行管理。
企业下设人事部门,全权处理企业内部一切人事事务。
人事档案登记过程,员工在人事部门领取个人简历、家庭成员、社会关系、个人基本资料四式一份的表格,然后填写,填写完毕交回人事部门,由人事部门的档案管理组进行审核,审核不合格的发回重新填写,合格的以原始资料存档,并据以填写职工人事卡片。
人事档案统计过程,人事部门调查分析组按管理组提供的员工人事卡片统计各种所需的数据,然后填写所对应的统计报表,该统计报表一式两份,然后做出分析后,连同一份统计报表上交上一级主管部门,另一份统计报表存档备查。
如发生企业内部人员调动、升职、降职、或添加职工和开除职工等情况时,只需修改、添加和删除相应的人事卡片,其余过程同上。
人事部门将收集到员工人事信息统一进行审核。
审核过程中,人事信息需要所有审核人员通过,方可录入系统数据库。
如信息有误,需要返回给员工进行重新填写或修改。
在企业中,人事管理工作是非常重要的一项工作,它负责整个企业的日常人事安排,人员的人事管理等。
高效的人事管理可以提高企业的市场竞争力,使企业具有更强的凝聚力和活力。
为此,提高人事管理工作的效率,设计一套人事管理系统具有实际应用意义。
本文以Delphi和SQL Server2000为开发工具,设计实现了一套基于B/S模式的中小企业人事管理系统。
在文中,首先分析了企业人事管理工作以及工作流程,根据分析结果设计了该系统应具有的功能;其次,对系统的各个功能模块进行了详细的描述,包括用户登录模块、留言板模块、人事部门信息发布模块、系统设置模块、员工管理模块、员工自助模块和操作记录模块;最后结合系统开发阶段和测试阶段中发现的问题以及解决问题的方法,总结了开发此系统所取得的经验和体会。
1.2、本课程设计的目的、内容及作者主要贡献
(1)目的:
目前市面上流行的人事管理系统不少。
但是,对于企、事业单位的人事管理系统来说,不需要大型的数据库系统。
只需要一个操作方便,功能实用,能满足本中心对数据的管理及需求的系统。
我们的目标就是在于开发一个功能实用、操作方便,简单明了的人事管理系统。
(2)内容:
能够录入人事的基本资料,在操作上能够完成诸如添加、修改、删除、按各种条件进行查询、新用户的设置及密码修改等方面的工作,基本满足人事日常业务的需要。
(3)作者的主要贡献:
本人独立完成了此课题的研究与开发,包括调研、分析、设计、编码、测试、文档编写等内容。
二、需求分析
2.1技术可行性:
本系统使用的是Delphi实现的。
可以自由使用人事工资信息分类,自由赋予用户权限,根据需要灵活使用模版。
可以提供给各种场合的信息,人事工资。
根据用户的要求,分析其特点,在经济上本项目是可行的,采集,编辑,发布,人员不需要专业的编程知识就可以快速高效地发布高校办公信息。
这样加快了信息发布速度,减少了人力的开销,缩短了从采集到发布的时间周期,从而提高了服务的质量,而且由于管理周期缩短和人力开销的减少,可以在高校信息化中获得更多的好处。
2.2经济可行性:
系统未运行之前,初期投资比较大,花费相对而言比较多。
各部门必须配置电脑、服务器、打印机、传真机及相关的网络设备,但是在整个系统投入运行之后,因为现在计算机已经普及了,相关的人员培训费可以减少很多。
而同时又减少了数据的流通环节,提高了工作效率,保证了各项数据的准确性,避免了工作人员的流动造成的收据丢失等问题。
因此,从长远的收益来看,经济上完全可行。
基于以上分析,系统实现是可行的。
2.3业务需求分析:
普通员工可以根据自己的工号来进行查询自己的一些基本信息,管理员可以能够录入人事的基本资料,在操作上能够完成诸如添加、修改、删除、按各种条件进行查询、新用户的设置及密码修改等方面的工作,基本满足人事日常业务的需要。
2.4功能需求分析:
2.4.1支持企业实现规范化的管理。
2.4.2支持企业高效率完成劳动人事管理的日常业务,包括新员工加入时人事档案的建立,老员工转出、辞职、退休等。
2.4.3支持企业进行劳动人事管理及其相关方面的科学决策,如企业领导根据现有的员工数目决定招聘的人数等。
三、系统设计
3.1概念设计
在概念设计中首先要画好E—R图,是很重要的一步,对于E—R图我们4项基本原则,分别是:
①原则1(确定实体):
能独立存在的事物,例如人、物、事、地、团体、机构、活动、事项等等,在其有多个由基本项描述的特性需要关注时,就应把它作为实体。
②原则2(确定联系):
两个或多个实体间的关联与结合,如主管,从属,组成,占有,作用,配合,协同等等,当需要予以关注时,应作为联系。
实体间的联系可分为一对一、一对多、多对多等三类,在确定联系时还要确定其类型。
③原则3(确定属性):
实体的属性是实体的本质特征。
实体应有标识属性(能把不同个体区分开来的属性组),并指定其中一个作为主标识。
联系的属性是联系的结果或状态。
④原则4(一事一地):
信息分析中得到的基本项要在且仅在实体联系图中的一个地方作为属性出现。
下面是本次课程设计的系统E-R图如下所示:
各个实体E—R图:
管理员:
普通员工:
本系统由五大模块组成,即系统,员工基本信息,员工考勤信息,员工调动信息。
如下图:
系统流程图:
3.2逻辑设计:
3.2.1关系模式:
职工(职工号,职工,姓名,职工性别,所在部门,职工年龄,基本工资,婚否,简历)
管理员(管理员名,密码)
下面是创建一个叫企业人事管理的数据库语言:
createtable企业人事管理
(职工编号intprimarykeynotnull,
职工姓名char(20)notnull,
职工性别char
(2)notnull,
所在部门char(20)notnull,
职工年龄intnotnull,
基本工资intnotnull,
婚否char(4)notnull,
简历char(16)notnull,);
3.2.2数据表:
表设计的好坏会直接影响系统的稳定性、可扩展性、可实现性。
在每一个表中,设置“职工号“为主键,作为记录的唯一标识。
以下的属性类型中
CHARACTER代表变长字符串,括号内的数字代表长度上限
NUMERIC代表整型,括号内的数字代表长度上限
DATA代表日期类型例:
2010-4-20
员工基础资料表:
属性
数据类型
可否为空
职工编号
numeric(4)
NOTNULL
所在部门
character(8)
NULL
职工姓名
character(6)
NOTNULL
职工性别
character
(2)
NULL
现任职务
character(10)
NULL
婚姻状况
character(4)
NULL
职工年龄
numeric(4)
NULL
简历
char(16)
NOTNULL
数据库中表截图如下:
四、系统实现
4.1数据库实现
结合Delphi进行数据库应用开发的特点,设计过程可按如下步骤进行:
主要开发步骤:
(1)在Windows开始菜单中执行“所有程序|MicrosoftSQLServer|企业管理器”命令,进入“SQLServerEnterpriseManager企业管理器”界面,在SQLServerEnterpriseManager界面中展开SQLServer组,再展开数据库项,选择要建表的数据库“企业人事管理”,在“视图”选项上右击鼠标,弹出的快捷菜单。
(2)在“SQLServerEnterpriseManager企业管理器”中创建好的“企业人事管理”数据库中附加添加表“企业人事管理”,截图如下:
(3)在Windows开始菜单中执行“控制面板”里的“管理工具”中创建一个“ODBC数据源”来实现前台界面与数据库的联系。
(4)通过“Delphi”打开“Unit4.pas”中进行数据源的连接。
4.2前台程序设计
4.2.1系统登陆界面
此模块是员工登陆后的选择界面,是其他模块连接的地方:
其代码如下:
unitUnit4;
interface
uses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,
Dialogs,StdCtrls,DB,ADODB;
type
TForm4=class(TForm)
Label1:
TLabel;
Label2:
TLabel;
Edit1:
TEdit;
Edit2:
TEdit;
ComboBox1:
TComboBox;
Button1:
TButton;
Button2:
TButton;
ADOQuery1:
TADOQuery;
DataSource1:
TDataSource;
ADOConnection1:
TADOConnection;
procedureComboBox1Change(Sender:
TObject);
procedureButton2Click(Sender:
TObject);
procedureButton1Click(Sender:
TObject);
private
{Privatedeclarations}
public
{Publicdeclarations}
end;
var
Form4:
TForm4;
implementation
usesunit1;
{$R*.dfm}
procedureTForm4.ComboBox1Change(Sender:
TObject);
begin
ifComboBox1.ItemIndex<>-1thenbutton1.Enabled:
=true;
end;
procedureTForm4.Button2Click(Sender:
TObject);
begin
form4.Close;
end;
procedureTForm4.Button1Click(Sender:
TObject);
begin
if(edit1.Text='')or(edit2.Text='')then
showmessage('用户名或密码不能为空!
');
ifcombobox1.ItemIndex=0then
begin
adoquery1.SQL.Clear;
ADOQuery1.SQL.Add('select*frommanagewhereusers=:
s1andpasswd=:
s2andtype=0');
ADOQuery1.Parameters.ParamByName('s1').Value:
=edit1.Text;
ADOQuery1.Parameters.ParamByName('s2').Value:
=edit2.Text;
ADOQuery1.Open;
if(ADOQuery1.Eof=true)and(ADOQuery1.Bof=true)then
begin
showmessage('用户名或密码错误!
请重新输入!
');
end
else
begin
form1.GroupBox1.Visible:
=false;
form1.GroupBox2.Left:
=200;
form1.Button1.Visible:
=false;
form1.Button2.Visible:
=false;
form1.BitBtn1.Visible:
=false;
form1.Edit1.Visible:
=false;
form1.Label1.Visible:
=false;
edit1.Clear;
edit2.Clear;
form4.Hide;
form1.Show;
end
end;
ifcombobox1.ItemIndex=1then
begin
adoquery1.SQL.Clear;
ADOQuery1.SQL.Add('select*frommanagewhereusers=:
s1andpasswd=:
s2andtype=1');
ADOQuery1.Parameters.ParamByName('s1').Value:
=edit1.Text;
ADOQuery1.Parameters.ParamByName('s2').Value:
=edit2.Text;
ADOQuery1.Open;
if(ADOQuery1.Eof=true)and(ADOQuery1.Bof=true)then
begin
showmessage('用户名或密码错误!
请重新输入!
');
end
else
begin
form1.GroupBox1.Visible:
=true;
form1.GroupBox2.Left:
=24;
form1.Button1.Visible:
=true;
form1.Button2.Visible:
=true;
form1.BitBtn1.Visible:
=true;
form1.Edit1.Visible:
=true;
form1.Label1.Visible:
=true;
edit1.Clear;
edit2.Clear;
form4.Hide;
form1.Show;
end
end;
end;
end.
4.2.2员工基本信息更新
这个模块主要用于员工基本信息的更新:
可以根据以下条件提供添加、删除、修改功能:
根据人事卡片编辑;根据家庭成员表编辑;根据社会关系表编辑。
部分代码如下:
unitUnit1;
interface
uses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,
Dialogs,DB,Grids,DBGrids,DBTables,StdCtrls,Buttons,ADODB,
DBClient,MConnect;
type
TForm1=class(TForm)
DBGrid1:
TDBGrid;
DataSource1:
TDataSource;
ADOQuery1:
TADOQuery;
GroupBox2:
TGroupBox;
Edit1:
TEdit;
Edit2:
TEdit;
Label1:
TLabel;
Label2:
TLabel;
BitBtn1:
TBitBtn;
BitBtn2:
TBitBtn;
GroupBox1:
TGroupBox;
BitBtn5:
TBitBtn;
ADOConnection1:
TADOConnection;
Button1:
TButton;
Button2:
TButton;
procedureBitBtn5Click(Sender:
TObject);
procedureBitBtn2Click(Sender:
TObject);
procedureBitBtn1Click(Sender:
TObject);
procedureButton1Click(Sender:
TObject);
procedureButton2Click(Sender:
TObject);
procedureFormClose(Sender:
TObject;varAction:
TCloseAction);
procedureEdit1Change(Sender:
TObject);
procedureEdit2Change(Sender:
TObject);
private
{Privatedeclarations}
public
{Publicdeclarations}
end;
var
Form1:
TForm1;
implementation
usesUnit2,Unit3,unit4;
{$R*.dfm}
procedureTForm1.BitBtn5Click(Sender:
TObject);
begin
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select*from企业人事管理');
ADOQuery1.Active:
=true;
end;
procedureTForm1.BitBtn2Click(Sender:
TObject);
begin
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select*from企业人事管理where职工编号like:
s1');
ADOQuery1.Parameters.ParamByName('s1').Value:
=edit2.Text;
ADOQuery1.Active:
=true;
end;
procedureTForm1.BitBtn1Click(Sender:
TObject);
vark:
integer;
begin
ifADOQuery1.Locate('职工编号',edit1.Text,[])then
begin
k:
=MessageDlg('确定删除吗?
',mtconfirmation,[mbyes,mbno],0);
ifk=mryesthen
begin
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('DELETEfrom企业人事管理where职工编号like:
s1');
ADOQuery1.Parameters.ParamByName('s1').Value:
=edit1.Text;
ADOQuery1.ExecSQL;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select*from企业人事管理');
ADOQuery1.Open;
edit1.Text:
='';
end
end
elseshowmessage('无此职工!
请查证!
');
end;
procedureTForm1.Button1Click(Sender:
TObject);
begin
form1.Hide;
form2.Show;
end;
procedureTForm1.Button2Click(Sender:
TObject);
begin
form1.Hide;
form3.Show;
end;
procedureTForm1.FormClose(Sender:
TObject;varAction:
TCloseAction);
begin
form1.Hide;
form4.Show;
end;
procedureTForm1.Edit1Change(Sender:
TObject);
begin
ifedit1.Text=''thenbitbtn1.Enabled:
=false
elsebitbtn1.Enabled:
=true;
end;
procedureTForm1.Edit2Change(Sender:
TObject);
begin
ifedit2.Text=''thenbitbtn2.Enabled:
=false
elsebitbtn2.Enabled:
=true;
end;
end.
选择“增加”后出现下图:
这个操作记录可以进行企业人事添加,删除,保存等操作,完成员工基本信息的更新操作。
4.2.3员工基本信息查询
此模块用于对员工基础资料方便的查询功能:
可以根据提供条件进行模糊查询,包括逐条查询、浏览字段和全局查询等功能。
管理员还可以点击“删除”进行对数据库中的职工信息去掉。
管理员还可以通过“修改”来对数据库的职工信息进行修改,来实现员工信息的实时跟新。
执行部分代码如下:
unitUnit2;
interface
uses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,
Dialogs,DB,ADODB,StdCtrls;
type
TForm2=class(TForm)
Label1:
TLabel;
Label2:
TLabel;
Label3:
TLabel;
Label4:
TLabel;
Label5:
TLabel;
Label6:
TLabel;
Label7:
TLabel;
Label8:
TLabel;
Button1:
TButton;
Button2:
TButton;
ADOQuery2:
TADOQuery;
DataSource1:
TDataSource;
ADOQuery2DSDesigner:
TIntegerField;
ADOQuery2DSDesigner2:
TStringField;
ADOQuery2DSDesigner3:
TStringField;
ADOQuery2DSDesigner4:
TStringField;
ADOQuery2DSDesigner5:
TIntegerField;
ADOQuery2DSDesigner6:
TIntegerField;
ADOQuery2DSDesigner7:
TStringField;
ADOQuery2DSDesigner8:
TStringField;
Label9:
TLabel;
Edit1:
TEdit;
Edit2:
TEdit;
Edit3:
TEdit;
Edit4:
TEdit;
Edit5:
TEdit;
Edit6:
TEdit;
Edi