1、完整word版)数据库。企业人事管理系统 Xxxxxxxxxxxxx 课程设计报告 设计名称: 数据库原理及应用课程设计 姓 名: xx 学 号: xxxxxxx 专业班级: xxxx 系 (院): xxxxxxx 设计地点: xxxxxxxx 成绩: 指导教师评语: 签名:
2、 年 月 日 一、概述 1.1本课题的来源 在企业中,人事管理工作是非常重要的一项工作,它负责整个企业的日常人事安排,人员的人事管理等。高效的人事管理可以提高企业的市场竞争力,使企业具有更强的凝聚力和活力。人事管理系统是一个面向企业人事部门工作人员,为其提供服务的综合信息管理系统人员通过本系统完成相关的日常工作,这些工作也是平常较为繁重的工作。员工的个人信息等等都记录在人事系统里进行管理。 企业下设人事部门,全权处理企业内部一切人事事务。 人事档案登记过程,员工在人事部门领取个人简历、家庭成员、社会关系、
3、个人基本资料四式一份的表格,然后填写,填写完毕交回人事部门,由人事部门的档案管理组进行审核,审核不合格的发回重新填写,合格的以原始资料存档,并据以填写职工人事卡片。 人事档案统计过程,人事部门调查分析组按管理组提供的员工人事卡片统计各种所需的数据,然后填写所对应的统计报表,该统计报表一式两份,然后做出分析后,连同一份统计报表上交上一级主管部门,另一份统计报表存档备查。如发生企业内部人员调动、升职、降职、或添加职工和开除职工等情况时,只需修改、添加和删除相应的人事卡片,其余过程同上。 人事部门将收集到员工人事信息统一进行审核。审核过程中,人事信息需要所有审核人员通过,方可录入系统数据库。如信息有
4、误,需要返回给员工进行重新填写或修改。 在企业中,人事管理工作是非常重要的一项工作,它负责整个企业的日常人事安排,人员的人事管理等。高效的人事管理可以提高企业的市场竞争力,使企业具有更强的凝聚力和活力。为此,提高人事管理工作的效率,设计一套人事管理系统具有实际应用意义。 本文以Delphi和SQL Server2000为开发工具,设计实现了一套基于B/S模式的中小企业人事管理系统。在文中,首先分析了企业人事管理工作以及工作流程,根据分析结果设计了该系统应具有的功能;其次,对系统的各个功能模块进行了详细的描述,包括用户登录模块、留言板模块、人事部门信息发布模块、系统设置模块、员工管理模块、
5、员工自助模块和操作记录模块;最后结合系统开发阶段和测试阶段中发现的问题以及解决问题的方法,总结了开发此系统所取得的经验和体会。 1.2、本课程设计的目的、内容及作者主要贡献 (1)目的:目前市面上流行的人事管理系统不少。但是,对于企、事业单位的人事管理系统来说,不需要大型的数据库系统。只需要一个操作方便,功能实用,能满足本中心对数据的管理及需求的系统。我们的目标就是在于开发一个功能实用、操作方便,简单明了的人事管理系统。 (2)内容:能够录入人事的基本资料,在操作上能够完成诸如添加、修改、删除、按各种条件进行查询、新用户的设置及密码修改等方面的工作,基本满足人事日常业务的需要。 (3)
6、作者的主要贡献:本人独立完成了此课题的研究与开发,包括调研、分析、设计、编码、测试、文档编写等内容。 二、需求分析 2.1技术可行性: 本系统使用的是Delphi实现的。可以自由使用人事工资信息分类,自由赋予用户权限,根据需要灵活使用模版。可以提供给各种场合的信息,人事工资。根据用户的要求,分析其特点,在经济上本项目是可行的,采集,编辑,发布,人员不需要专业的编程知识就可以快速高效地发布高校办公信息。这样加快了信息发布速度,减少了人力的开销,缩短了从采集到发布的时间周期,从而提高了服务的质量,而且由于管理周期缩短和人力开销的减少,可以在高校信息化中获得更多的好处。 2.2 经济可行性
7、 系统未运行之前,初期投资比较大,花费相对而言比较多。各部门必须配置电脑、服务器、打印机、传真机及相关的网络设备,但是在整个系统投入运行之后,因为现在计算机已经普及了,相关的人员培训费可以减少很多。而同时又减少了数据的流通环节,提高了工作效率,保证了各项数据的准确性,避免了工作人员的流动造成的收据丢失等问题。因此,从长远的收益来看,经济上完全可行。 基于以上分析,系统实现是可行的。 2.3业务需求分析: 普通员工可以根据自己的工号来进行查询自己的一些基本信息,管理员可以能够录入人事的基本资料,在操作上能够完成诸如添加、修改、删除、按各种条件进行查询、新用户的设置及密码修改等方面
8、的工作,基本满足人事日常业务的需要。 2.4功能需求分析: 2.4.1 支持企业实现规范化的管理。 2.4.2 支持企业高效率完成劳动人事管理的日常业务,包括新员工加入时人事档案的建立,老员工转出、辞职、退休等。 2.4.3 支持企业进行劳动人事管理及其相关方面的科学决策,如企业领导根据现有的员工数目决定招聘的人数等。 三、系统设计 3.1概念设计 在概念设计中首先要画好E—R图,是很重要的一步,对于E—R图我们4项基本原则,分别是: ①原则1 (确定实体):能独立存在的事物,例如人、物、事、地、团体、机构、活动、事项等等,在其有多个由基本项描述的特性需要关注时,就应把它作为
9、实体。 ②原则2 (确定联系):两个或多个实体间的关联与结合,如主管,从属,组成,占有,作用,配合,协同等等,当需要予以关注时,应作为联系。实体间的联系可分为一对一、一对多、多对多等三类,在确定联系时还要确定其类型。 ③原则3 (确定属性):实体的属性是实体的本质特征。实体应有标识属性(能把不同个体区分开来的属性组),并指定其中一个作为主标识。联系的属性是联系的结果或状态。 ④原则4(一事一地):信息分析中得到的基本项要在且仅在实体联系图中的一个地方作为属性出现。 下面是本次课程设计的系统E-R图如下所示: 各个实体E—R图: 管理员: 普通员
10、工: 本系统由五大模块组成,即系统,员工基本信息,员工考勤信息,员工调动信息。如下图: 系统流程图: 3.2逻辑设计: 3.2.1 关系模式: 职工(职工号,职工,姓名,职工性别,所在部门,职工年龄,基本工资,婚否,简历) 管理员(管理员名,密码) 下面是创建一个叫企业人事管理的数据库语言: create table 企业人事管理 (职工编号 int primary key not null, 职工姓名 char(20) not null, 职工性别 char(2) not null, 所在部门 char(20) not null, 职工年龄 int n
11、ot null, 基本工资 int not null, 婚否 char(4) not null, 简历 char(16) not null,); 3.2.2数据表: 表设计的好坏会直接影响系统的稳定性、可扩展性、可实现性。在每一个表中,设置“职工号“为主键,作为记录的唯一标识。以下的属性类型中 CHARACTER 代表变长字符串,括号内的数字代表长度上限 NUMERIC 代表整型,括号内的数字代表长度上限 DATA 代表日期类型 例:2010-4-20 员工基础资料表: 属 性 数据
12、类型 可否为空 职工编号 numeric (4) NOT NULL 所在部门 character(8) NULL 职工姓名 character(6) NOT NULL 职工性别 character(2) NULL 现任职务 character(10) NULL 婚姻状况 character(4) NULL 职工年龄 numeric (4) NULL 简 历 char(16)
13、NOT NULL 数据库中表截图如下: 四、系统实现 4.1 数据库实现 结合Delphi进行数据库应用开发的特点,设计过程可按如下步骤进行: 主要开发步骤: (1) 在Windows开始菜单中执行“所有程序|Microsoft SQL Server|企业管理器”命令,进入“SQL Server Enterprise Manager企业管理器”界面,在SQL Server Enterprise Manager界面中展开SQL Server组,再展开数据库项,选择要建表的数据库“企业人事管理”,在“视图”选项上右击鼠标,弹出的快捷菜单。 (2)在“SQL Server Ent
14、erprise Manager企业管理器”中创建好的“企业人事管理”数据库中附加添加表“企业人事管理”,截图如下: (3)在Windows开始菜单中执行“控制面板”里的“管理工具”中创建一个“ODBC数据源”来实现前台界面与数据库的联系。 (4)通过“Delphi”打开“Unit4.pas”中进行数据源的连接。 4.2 前台程序设计 4.2.1 系统登陆界面 此模块是员工登陆后的选择界面,是其他模块连接的地方: 其代码如下: unit Unit4; interface uses Windows, Messages, SysUtils,
15、 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; Da
16、taSource1: TDataSource; ADOConnection1: TADOConnection; procedure ComboBox1Change(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var
17、Form4: TForm4; implementation uses unit1; {$R *.dfm} procedure TForm4.ComboBox1Change(Sender: TObject); begin if ComboBox1.ItemIndex <> -1 then button1.Enabled := true; end; procedure TForm4.Button2Click(Sender: TObject); begin form4.Close; end; procedure TForm4.Button1Clic
18、k(Sender: TObject); begin if (edit1.Text = '') or (edit2.Text = '') then showmessage('用户名或密码不能为空!'); if combobox1.ItemIndex = 0 then begin adoquery1.SQL.Clear; ADOQuery1.SQL.Add('select * from manage where users= :s1 and passwd= :s2 and type=0'); ADOQuery1.Parameters.Pa
19、ramByName('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
20、 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; form
21、1.Show; end end; if combobox1.ItemIndex = 1 then begin adoquery1.SQL.Clear; ADOQuery1.SQL.Add('select * from manage where users= :s1 and passwd= :s2 and type=1'); ADOQuery1.Parameters.ParamByName('s1').Value:=edit1.Text; ADOQuery1.Parameters.ParamByName('s2').Value:
22、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; form
23、1.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员工基本信息更新 这个模块主要用于员工基本信息的更新: 可以根据以下条件提供添加、删除、修
24、改功能:根据人事卡片编辑;根据家庭成员表编辑;根据社会关系表编辑。 部分代码如下: unit Unit1; 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: TDBGr
25、id; DataSource1: TDataSource; ADOQuery1: TADOQuery; GroupBox2: TGroupBox; Edit1: TEdit; Edit2: TEdit; Label1: TLabel; Label2: TLabel; BitBtn1: TBitBtn; BitBtn2: TBitBtn; GroupBox1: TGroupBox; BitBtn5: TBitBtn; ADOConnection1: TADOConnection
26、 Button1: TButton; Button2: TButton; procedure BitBtn5Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FormClo
27、se(Sender: TObject; var Action: TCloseAction); procedure Edit1Change(Sender: TObject); procedure Edit2Change(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses Unit2, Unit3,unit4; {
28、R *.dfm} procedure TForm1.BitBtn5Click(Sender: TObject); begin ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select * from 企业人事管理'); ADOQuery1.Active:=true; end; procedure TForm1.BitBtn2Click(Sender: TObject); begin ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select * from 企业人事管理 where 职工编号 lik
29、e :s1'); ADOQuery1.Parameters.ParamByName('s1').Value:=edit2.Text; ADOQuery1.Active:=true; end; procedure TForm1.BitBtn1Click(Sender: TObject); var k:integer; begin if ADOQuery1.Locate('职工编号',edit1.Text,[]) then begin k:=MessageDlg('确定删除吗?',mtconfirmation,[mbyes,mbno],0); if k=mryes th
30、en begin ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('DELETE from 企业人事管理 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 else showmessag
31、e('无此职工!请查证!'); end; procedure TForm1.Button1Click(Sender: TObject); begin form1.Hide; form2.Show; end; procedure TForm1.Button2Click(Sender: TObject); begin form1.Hide; form3.Show; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin form1.Hide;
32、 form4.Show; end; procedure TForm1.Edit1Change(Sender: TObject); begin if edit1.Text = '' then bitbtn1.Enabled := false else bitbtn1.Enabled := true; end; procedure TForm1.Edit2Change(Sender: TObject); begin if edit2.Text = '' then bitbtn2.Enabled := false else bitbtn2.Enabled
33、 true; end; end. 选择“增加”后出现下图: 这个操作记录可以进行企业人事添加,删除,保存等操作,完成员工基本信息的更新操作。 4.2.3员工基本信息查询 此模块用于对员工基础资料方便的查询功能: 可以根据提供条件进行模糊查询,包括逐条查询、浏览字段和全局查询等功能。 管理员还可以点击“删除”进行对数据库中的职工信息去掉。 管理员还可以通过“修改”来对数据库的职工信息进行修改,来实现员工信息的实时跟新。 执行部分代码如下: unit Unit2; interface
34、 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;
35、 Label8: TLabel; Button1: TButton; Button2: TButton; ADOQuery2: TADOQuery; DataSource1: TDataSource; ADOQuery2DSDesigner: TIntegerField; ADOQuery2DSDesigner2: TStringField; ADOQuery2DSDesigner3: TStringField; ADOQuery2DSDesigner4: TStringField; ADOQuer
36、y2DSDesigner5: TIntegerField; ADOQuery2DSDesigner6: TIntegerField; ADOQuery2DSDesigner7: TStringField; ADOQuery2DSDesigner8: TStringField; Label9: TLabel; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Edit6: TEdit; Edit7:
37、 TEdit; Edit8: TEdit; procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure Edit1Change(Sender: TObject); private { Private declarations } public { Public de
38、clarations } end; var Form2: TForm2; implementation uses Unit1; {$R *.dfm} procedure TForm2.Button2Click(Sender: TObject); begin if Form1.ADOQuery1.Locate('职工编号',edit1.Text,[]) then begin showmessage('该职工已经存在!'); end else begin Form1.ADOQuery1.SQL.Clear; Form1.ADOQuer
39、y1.SQL.Add('insert into 企业人事管理 values(:s1,:s2,:s3,:s4,:s5,:s6,:s7,:s8)'); Form1.ADOQuery1.Parameters.ParamByName('s1').Value:=edit1.Text; Form1.ADOQuery1.Parameters.ParamByName('s2').Value:=edit2.Text; Form1.ADOQuery1.Parameters.ParamByName('s3').Value:=edit3.Text; Form1.ADOQuery1.Parameters.Par
40、amByName('s4').Value:=edit4.Text; Form1.ADOQuery1.Parameters.ParamByName('s5').Value:=edit5.Text; Form1.ADOQuery1.Parameters.ParamByName('s6').Value:=edit6.Text; Form1.ADOQuery1.Parameters.ParamByName('s7').Value:=edit7.Text; Form1.ADOQuery1.Parameters.ParamByName('s8').Value:=edit8.Text; Form1
41、ADOQuery1.ExecSQL; showmessage('添加成功!'); edit1.Text:=''; edit2.Text:=''; edit3.Text:=''; edit4.Text:=''; edit5.Text:=''; edit6.Text:=''; edit7.Text:=''; edit8.Text:=''; end end; procedure TForm2.Button1Click(Sender: TObject); begin form2.Hide; form1.Show; end; procedure TForm2.
42、FormClose(Sender: TObject; var Action: TCloseAction); begin form2.Hide; form1.Show; end; procedure TForm2.Edit1Change(Sender: TObject); begin if edit1.Text = '' then button2.Enabled:=false else button2.Enabled :=true; end; end. 五、系统测试及用户手册 5.1系统测试 本系统是公司内部的人事管理系统,用户群体自然是公司内部
43、的员工和领导。登录系统的账号和密码全部是由公司统一分发和管理的,员工进入系统可以查看自己的信息和本部门其他人员的基本信息并可对本部门人员基本信息进行搜索;管理层可以查看所有员工的详细信息及修改自己的账号。 5.2用户手册 5.2.1本系统是以SQL Server 2000作为后台数据库的,所要使用本系统,必须安装SQL Server 2000。使用之前要创建数据库,用户可以用附带的文件在查询分析器里生成数据库。 一、用户登录: 系统默认的管理员有一个,管理员为Admin,密码为123,该用户是高级管理员用户,可以管理本系统里的数据,本系统也只能有一个高级管理员用户。
44、 5.2.2系统主界面:如果用户名和密码正确,则进入主界面。 本系统有四个功能模块,只要单击,就可以进入各自的管理模块,如果要进行员工修改的界面,则单击修改按钮。 5.2.3系统界面简洁大方,信息窗口全程提示,功能齐全(包含了员工的查找,删除,增加和修改)。管理员可以通上图界面里的内容根据自己的需要进行企业的人事管理。系统根据各种人事管理要求,更加具有人性化,方便了用户,并且各个方面都为用户着想。 六、课程设计心得体会 这次实验设计,我们选择了《企业人事管理系统》作为题目,主要目的是通过计算机对企业员工的各种信息进行管理和维护。作为计算机应用的一部分,使用计
45、算机对人事信息进行管理,拥有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事劳资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件经过这次数据库课程设计,我觉得遇到的困难很多,做课程设计时明显感觉平时学到的东西不够。对于一个完整的数据库,应该考虑到方方面面,它们各个成分之间的关系,以及整个数据库的功能的实现,所以还得考虑它们之间的关系,让具体的功能得以实现,所以对每个表的主码设置得全面,个数据之间的数据类型要匹配,设计了各实体的属性;所以设计它们的E-R图,考虑他们之间的完整性,再在然后在Microso
46、ft SQL Server 2000的企业管理器中对应添加了数据库中的各表中极其属性,整个数据库的大体框架就有了。一个良好的数据模型,给以后的编写程序带来了很大方便。 总结人事管理系统的功能使我对整个数据库系统有了全面的了解,使各部分能够联系起来,不是单独的几块内容。在课程设计进行过程中,我还深刻地体会到在实际系统开发和实现过程中学习和实践的重要性,它决定着系统开发的效率,甚至有时候它可以决定系统开发的成败。另一个重要体会是要加强创新意识,大胆采用一些新方法,可有效提高系统的效率,有时候甚至可以取得一些意想不到的效果。此次课程设计不仅考验了我的数据库系统的概念和数据库的设计,而且更熟悉了De
47、lphi这个工具,为以后的学习奠定了基础。通过此次课程设计,我的一些知识运用的熟练程度得到了提高,进一步了解了数据库的结构特点和设计过程。相信这次的经验,对我日后工作会有相当大的帮助。 参考文献 [1]塞奎春等. Visual Basic工程应用与项目实践. 北京:机械工业出版社. 2005年 [2]高文姬等. Visual Basic数据库项目案例导航. 北京:清华大学出版社. 2004年 [3]张朝昆,施丽娜等. Visual Basic数据库开发基础与应用. 北京:人民邮电出版社. 2005年 [4]萨师煊,王珊. 数据库系统概论(第三版
48、 北京:高等教育出版社. 2004年 [5]史嘉权等. 数据库系统教程. 北京:清华大学出版社. 2003年 [6]高林,周海燕等. 管理信息系统与案例分析. 北京:人民邮电出版社.2004年 [7]赵子江.多媒体技术基础[M].北京:机械工业出版社,2001. [8]段来盛,郑城荣,曹恒.C#实战演练[M].北京:人民邮政出版社,2002. [9]胡孔法,数据库原理及应用[M].北京:机械工程出版社,2007 [10]王能斌,数据库系统教程[M].北京:电子工业出版社,2002 [11]胡孔法,汤克明,纪兆辉.《数据库原理及应用学习与实验指导教程》,2010 [12]王小
49、华.Delphi 5程序设计与控件参考[M].北京:电子工业出版社,1999. [13] 刘韬,骆娟, 何旭洪等. Visual Basic数据库系统开发实例导航(第二版)北京:人民邮电出版社. 2003年 [14]魏平俊,安向东等. Visual Basic管理信息系统开发案例. 西安:西安电子科技大学出版社. 2004年 附录: 企业人事管理系统源代码如下: //文件Unit1 unit Unit1; interface uses Windows, Messages, SysUtils, Va
50、riants, 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;
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818