企业人事档案管理系统的设计与实现.docx
《企业人事档案管理系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《企业人事档案管理系统的设计与实现.docx(29页珍藏版)》请在冰点文库上搜索。
企业人事档案管理系统的设计与实现
课程设计报告
企业人事档案管理系统的设计与实现
课程《数据库原理及应用》
班级
姓名
学号
指导教师
时间:
2012年6月7日至2012年6月8日
指导教师对课程设计(论文)的评语(工作态度、任务完成情况、能力水平、设计说明书(论文)的撰写和图纸质量等):
成绩
指导教师签字年月日
第一章开发背景1
第二章功能描述2
第三章业务流程分析3
第四章数据流程分析4
4.1、数据流程图4
4.2、数据字典4
第五章概念模型设计12
第六章逻辑模型设计和优化13
第七章物理设计和实验14
第八章系统测试16
第九章课程设计心得体会24
参考文献25
第一章开发背景
在经济全球化的今天,建立以客户未中心的经营战略,可以加强企业和客户间的联系。
对企业来讲,为客户提供一流的服务,是企业建立品牌,实现差别服务,取得竞争的利器。
一直以来人们使用传统人工工的方式管理会员的基本档案,这种管理方式存在着许多缺点:
保密性差,另外时间一长,将产生大量的文件和数据,对于查找,更新和维护都带来了不少的困蓝。
而通过会员管理系统爱好,消费特点,意向需求等;进而针对客户的需求,为其提供优质的个性虎服务,还能为企业的产品开发,事业发展提供可靠的市场数据,是企业经营不可或缺的一个有利工具。
同时,作为计算机应用的一部分,使用计算机对会员进行管理,具有着手工管理所无法比拟的优点。
例如:
检索迅速,查找方便,可靠性高成本低等,这些优点极大的提高了会员管理的效率,也是企业的科学化,正规化管理,存储量大,密保性好,寿命长,成先进科学技术接轨的重要条件。
目前,国内国外关于一方面的软件很多,其功能也都比较完善,但也都存在着一些问题,如:
性能不可靠,安全性差,交互能力不强等问题,在日益激烈的商场战场中难以应对真实的,残酷的竞争。
第二章功能描述
当您运行本系统,首先看到的是一个登陆界面。
用户名、密码都是由系统管理员分配,只有管理员能添加、删除用户、查询信息、修改信息以及录入员工信息。
本系统主要有以下功能:
(1)数据录入功能
在本系统中提供员工信息录入功能。
可以录入员工的姓名、性别、年龄、民族、籍贯、职务编号等信息。
(2)数据查询功能
系统需提供以下查询功能。
根据员工的编号查询员工的基本信息;根据员工的性别查询员工的信息;根据员工编号查询员工的职务变动信息。
(3)数据修改功能
在系统中管理员可以修改已有员工的信息,包括性别、年龄、民族、籍贯、职务编号等信息。
第三章业务流程分析
企业人事档案管理系统业务流程分析如图3-1所示。
图3-1企业人事档案管理系统业务流程分析
第四章数据流程分析
4.1、数据流程图
企业人事档案管理系统数据流程图如图4-1所示。
图4-1企业人事档案管理系统的数据流程
4.2、数据字典
(1)主要的数据流定义
1)数据流名称:
员工情况
位置:
员工→P1。
定义:
员工情况=姓名+性别+出生日期+民族+学历+职称。
数据流量:
根据公司的员工具体录用情况来确定。
说明:
要对每一位被聘用的新员工进行唯一编号。
2)数据流名称:
奖惩情况
位置:
P3→员工
定义:
奖惩情况=员工流水号+奖惩类型+奖惩金额+奖惩年月日。
数据流量:
根据公司的具体情况来确定。
说明:
要对每一次的奖惩记录进行唯一编号。
3)数据流名称:
奖惩批复
位置:
上级→P3
定义:
奖惩批复=奖惩类型+批复部门号+批复原因+批复日期。
数据流量:
根据公司的具体情况来确定。
说明:
具体应用中,批复原因可以省略。
4)数据流名称:
调动情况
位置:
P5→员工
定义:
调动情况=员工号+调动前职务+调动后职务+调动日期。
数据流量:
根据公司的具体情况来确定。
说明:
员工号和调动日期可以唯一确定一个调动情况。
5)数据流名称:
调动批复
位置:
上级→P5
定义:
调动批复=批复部门号+批复原因+批复日期。
数据流量:
根据公司的具体情况来确定。
说明:
批复原因可以省略。
6)数据流名称:
上班刷卡
位置:
员工→P7.1
定义:
上班刷卡=员工号+上班刷卡时间+刷卡机号。
数据流量:
根据公司的具体规模情况来确定。
说明:
上班刷卡时间会汇入到出勤记录中。
7)数据流名称:
下班刷卡
位置:
员工→P7.2
定义:
下班刷卡=员工号+下班刷卡时间+刷卡机号。
数据流量:
根据公司的具体情况来确定。
说明:
下班刷卡时间会汇入到出勤记录中。
8)数据流名称:
工资查询
位置:
P4→员工
定义:
工资查询=员工号+基本工资+奖金+罚款+超始时间+截止时间+发薪日期。
数据流量:
根据公司的具体情况来确定。
说明:
根据员工号和发薪日期可以唯一确定一个工资记录。
9)数据流名称:
请假申请
位置:
员工→P2.2
定义:
请假申请=员工号+请假时间+请假天数。
数据流量:
根据公司的具体情况来确定。
说明:
员工号和请假时间可以唯一确定一个请假记录。
10)数据流名称:
请假批复
位置:
上级→P2.2
定义:
请假批复=审批人+批复结果。
数据流量:
根据公司的具体情况来确定。
说明:
批复结果的类型只能是(批准、拒绝)。
11)数据流名称:
销假申请
位置:
员工→P2.1
定义:
销假申请=员工号+销假时间。
数据流量:
根据公司的具体情况来确定。
说明:
针对销假申请没用单独建立销假记录表,在这里将销假记录和请假记录进行了合并。
因为在一般情况下,请假是不能够进行嵌套的。
12)数据流名称:
管理员情况
位置:
管理员→P6
定义:
用户身份=员工编号。
数据流量:
根据公司的具体情况来确定。
说明:
要对每一位管理员建立唯一的账号。
13)数据流名称:
用户身份
位置:
安全管理→{P1,P2.1,P2.2,P3,P4,P5,P7.1,P7.2}
定义:
用户身份=[非法用户|内部管理员|服务管理员]
数据流量:
根据公司的具体情况来确定。
说明:
不同的用户身份对应不同的操作权限,对应着不同的安全级别。
14)数据流名称:
部门情况
位置:
上级→部门情况
定义:
部门情况=部门号+部门名称+领导人号
数据流量:
根据公司的具体情况来确定。
说明:
部门号是主码。
(2)主要的数据存储定义
1)数据存储编号:
员工记录D1
输入:
P1
输出:
P1,P7.1,P7.2,P2.1,P2.2
数据结构:
员工记录=姓名+性别+出生日期+民族+学历+职称+员工编号。
数据量和存取频度:
根据公司的具体规模情况来确定。
存取方式:
联机处理;检索和更新;以随机检索为主。
说明:
员工编号具有唯一性和非空性;性别只能是男或女;主码是员工编号。
2)数据存储编号:
请假记录D2
输入:
P2.1,P2.2
输出:
P2.1,P2.2
数据结构:
请假记录=员工号+请假时间+请假天数+销假时间。
数据量和存取频度:
根据公司的具体规模情况来确定。
存取方式:
联机处理;检索和更新;以更新操作为主。
说明:
主码设为请假时间和员工号;员工号是外码,参照表是员工记录。
3)数据存储编号:
奖惩记录D3
输入:
P3
输出:
P3
数据结构:
奖惩记录=员工流水号+奖惩类型+奖惩金额+奖惩时间+批复部门号+批复原因+批复日期。
数据量和存取频度:
根据公司的具体规模情况来确定。
存取方式:
联机处理;检索和更新;以更新操作为主。
说明:
主码设为奖惩时间和员工号;员工号是外码,参照表是员工记录。
4)数据存储编号:
工资记录D4
输入:
P4
输出:
P4
数据结构:
工资记录=员工号+基本工资+奖金+罚款+超始时间+截止时间+发薪日期。
数据量和存取频度:
根据公司的具体规模情况来确定。
存取方式:
联机处理;检索和更新;以更新操作为主。
说明:
主码设为发薪日期和员工号;员工号是外码,参照表是员工记录。
5)数据存储编号:
职务调动记录D5
输入:
P5
输出:
P5
数据结构:
职务调动记录=员工号+调动前职务+调动后职务+调动日期+批复部门号+批复原因+批复日期。
数据量和存取频度:
根据公司的具体规模情况来确定。
存取方式:
联机处理;检索和更新;以更新操作为主。
说明:
主码设为调动日期和员工号;员工号是外码,参照表是员工记录。
6)数据存储编号:
管理人员记录D6
输入:
P6
输出:
P6
数据结构:
管理人员记录=用户密码+职工号+密码+管理员账号。
数据量和存取频度:
根据公司的具体规模情况来确定。
存取方式:
联机处理;检索和更新;以更新操作为主。
说明:
主码设为管理员账号。
7)数据存储编号:
出勤记录D7
输入:
P7.1,P7.2
输出:
P7.1,P7.2
数据结构:
出勤记录=员工号+上班刷卡时间+下班刷卡时间+刷卡日期。
数据量和存取频度:
根据公司的具体规模情况来确定。
存取方式:
联机处理;检索和更新;以更新操作为主。
说明:
主码设为员工号和刷卡日期;员工号是外码,参照表是员工记录。
8)数据存储编号:
部门记录D8
输入:
P8
输出:
P8
数据结构:
部门记录=部门号+部门名称+领导人号。
数据量和存取频度:
根据公司的具体规模情况来确定。
存取方式:
联机处理;检索和更新;以检索操作为主。
说明:
主码设为部门号。
(3)主要的处理过程
1)处理过程编号:
P1
处理过程名:
档案管理
输入:
用户身份,员工记录,员工情况
输出:
员工记录
处理说明:
根据员工的聘用、解聘建立或删除员工记录,以及在后续的过程中,以管理员身份对员工的记录进行修改。
2)处理过程编号:
P2.1
处理过程名:
销假管理
输入:
销假申请,请假批复,用户身份,员工记录,销假记录
输出:
请假记录
处理说明:
根据员工的销假申请,把销假时间录入到相应的请假记录中。
3)处理过程编号:
P2.2
处理过程名:
请假管理
输入:
请假申请,请假批复,用户身份,员工记录,请假记录
输出:
请假记录
处理说明:
根据员工的请假申请和批复情况,进行请假表的登记。
4)处理过程编号:
P3
处理过程名:
奖惩管理
输入:
用户身份,奖惩批复,奖惩记录
输出:
奖惩记录,奖惩情况
处理说明:
根据奖惩批复的要求对员工进行相应的惩处,并对惩处进行记录。
5)处理过程编号:
P4
处理过程名:
工资管理
输入:
用户身份,工资记录
输出:
工资记录,工资查询
处理说明:
根据员工目前的工资情况,进行调薪的操作。
6)处理过程编号:
P5
处理过程名:
调动管理
输入:
调动批复,用户身份,职务调动记录
输出:
职务调动记录,调动情况
处理说明:
根据调动批复的内容,更改员工的职务信息,并对调动情况进行记录。
7)处理过程编号:
P6
处理过程名:
安全管理
输入:
管理员情况
输出:
D6,P1,P2.1,P2.2,P3,P4,P5,P7.1,P7.2
处理说明:
建立管理人员记录表;通过用户名和口令,确认用户身份,保证系统安全性。
8)处理过程编号:
P7.1
处理过程名:
上班管理
输入:
上班刷卡,用户身份,员工记录,出勤记录
输出:
出勤记录
处理说明:
根据输入的员工号信息,记录上班时间,并判断是否迟到。
9)处理过程编号:
P7.2
处理过程名:
下班管理
输入:
下班刷卡,用户身份,员工记录,出勤记录
输出:
出勤记录
处理说明:
根据输入的员工号信息,记录下班时间,并判断是否早退。
10)处理过程编号:
P8
处理过程名:
部门管理
输入:
部门情况,部门记录
输出:
部门记录
处理说明:
根据上级的调度,对现在公司的部门进行领导人的调换,或者是增加或删除某一部门。
(4)数据项
数据项名
数据类型
长度
取值范围
说明
代码
整型
N
N
企业人事代码
性别
字符型
2
男/女
企业人事性别
姓名
字符型
6
中文
企业人事姓名
出生日期
整型
8
1950.01~2011.01
企业人事出生日期
工作日期
整型
8
1970.01~2011.01
企业人事工作日期
工作简历
字符型
N
N
企业人事工作经历
文化程度
字符型
10
N
企业人事文化程度
所属部门
字符型
10
N
企业人事所属部门
从事专业
字符型
10
N
企业人事从事专业
职称
字符型
10
N
企业人事职称
职务
字符型
10
N
企业人事职务
民族
字符型
10
N
企业人事民族
籍贯
字符型
20
N
企业人事籍贯
第五章概念模型设计
企业人事档案管理概念模型设计图3所示。
图5-1企业人事档案管理系统的概念模型设计图
第六章逻辑模型设计和优化
根据系统的总体概念设计模型、E-R图向关系模式的转化规则和数据库的范式理论,得到系统优化后的逻辑模型图表如下:
表1部门表
字段名称
字段
数据类型
约束条件
描述
表2职务表
字段名称
字段
数据类型
约束条件
描述
表3员工类型表
字段名称
字段
数据类型
约束条件
描述
表4员工基本信息表
字段名称
字段
数据类型
约束条件
描述
第七章物理设计和实验
得到系统逻辑模型后,就该进行数据库的物理设计和实施数据库了,物理设计主要是要确定数据库的存储路径、存储结构以及如何建立索引等,可以采用系统的默认设置。
数据库实施主要包括在具体的DBMS中创建数据库和表的过程,本设计所选用的DBMS为SQLSERVER2000,有关创建数据库和关系表的SQL语句如下所示:
创建数据库
/*DataBase:
企业人事档案管理系统,创建数据库,数据库名称为企业人事档案管理系统*/
/*==============================================================*/
createdatabase企业人事档案管理系统
go
创建表
CREATETABLE工作信息(
姓名nchar(10)null,
性别nchar(10)null,
部门类型nchar(10)null,
职务nchar(10)null,
工龄nchar(10)null,
基本工资floatnull,
状态nchar(10)null,
)
go
CREATETABLE企业人员信息
(
姓名nchar(10)null,
性别nchar(10)null,
名族类型nchar(10)null,
婚姻状况nchar(10)null,
政治面貌nchar(10)null,
文化程度nchar(10)null,
所学专业nchar(10)null,
)
go
CREATETABLE用户登录(
用户名nchar(10)null,
密码nchar(10)null,
权限char(10)null,
)
Go
查询编号为1的职工姓名
selectdistinct姓名
from职工表
where编号=‘1’;
查询工资级别为2级的职工编号
select编号,工资级别
from职工表,职称表
where工资级别=‘2’;
查询与于得水工龄年数相同的职工姓名
select姓名
from职工表
where工龄年数=(select工龄年数
From职工表
Where职工姓名=‘于得水’);
统计全体职工的平均工资
selectavg(基本工资)
from职称表;
第八章系统测试
1、登录界面
图8-1登录界面
登陆界面代码如下:
privatevoidbtnLogin_Click(objectsender,EventArgse)
{
try
{
if(txtUserName.Text=="")
{
MessageBox.Show("用户名不能为空");
}
else
if(txtPwd.Text=="")
{
MessageBox.Show("密码不能为空");
}
else
if(cmbLogin.Text=="")
{
MessageBox.Show("请选择登录界面");
cmbLogin.Focus();
return;
}
else
{
if(cmbLogin.Text=="管理员"||cmbLogin.Text=="用户")
{
SqlConnectioncon=Connection.createCon();
con.Open();
SqlCommandcmd=newSqlCommand("selectcount(*)from用户登录表where用户名='"+txtUserName.Text+"'and密码='"+txtPwd.Text+"'and权限='"+cmbLogin.Text+"'",con);
Int32count=(Int32)cmd.ExecuteScalar();
if(count==1)
{
t=txtUserName.Text;
t1=cmbLogin.Text;
FrmMainmain=newFrmMain();
main.Show();
this.Hide();
Login_right=cmbLogin.Text;
}
else
{
MessageBox.Show("用户名或者密码错误!
");
}
con.Close();
}
}
}
catch(Exceptionex)
{
MessageBox.Show(ex.ToString());
}
}
2、增加员工界面
图8-2增加员工界面
增加员工界面代码如下:
privatevoidbutton1_Click(objectsender,EventArgse)
{
if(textBox1.Text=="")
{
MessageBox.Show("姓名不能为空");
}
else
{
SqlConnectioncon=Connection.createCon();
con.Open();
SqlCommandcmd=newSqlCommand("selectcount(*)from工作信息where姓名='"+textBox1.Text+"'",con);
Int32count=(Int32)cmd.ExecuteScalar();
if(count>0)
{
MessageBox.Show("该员工信息已经存在!
!
!
");
}
else
{
SqlCommandcmd1=newSqlCommand(strSql1,con);
cmd1.ExecuteNonQuery();//执行SQL语句完成SQL命令……
SqlCommandcmd2=newSqlCommand(strSql2,con);
cmd2.ExecuteNonQuery();//执行SQL语句完成SQL命令……
MessageBox.Show("添加成功,请在基本设置里面修改其他信息!
!
!
");
con.Close();
}
}
}
3、数据备份界面
图8-3数据库界面
数据备份代码如下:
privatevoidbutton1_Click(objectsender,EventArgse)
{
try
{
strg+=@"\Data";
stringsqltxt=@"BACKUPDATABASE企业人事档案管理TODisk='"+strg+"\\"+txtpath.Text+".bak"+"'";
dbasedb=newdbase();
if(db.ExecuteSQL(sqltxt))
{
MessageBox.Show("备份成功","提示",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
}
else
{
MessageBox.Show("备份失败!
");
}
}
catch(Exceptionex)
{
}
}
}
}
4、数据恢复界面
图8-4数据恢复界面
数据恢复代码如下:
privatevoidbutton1_Click(objectsender,EventArgse)
{
dbasedb=newdbase();
try
{
if(db.ExecuteSQL(str))
{
MessageBox.Show("恢复成功","提示",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
}
}
catch(Exceptionex)
{
}
finally
{
db.Dispose();
}
}
}
}
6、主界面
图8-6主界面
主界面代码如下:
privatevoidFrmMain_Load(objectsender,EventArgse)
{
if(FrmLogin.t1=="管理员")
{
修改员工信息ToolStripMenuItem.Visible=true;
修改工作信息ToolStripMenuItem.Visible=true;
增加员工ToolStripMenuItem.Visible=true;
}
}
7、修改信息界面
图8-7修改信息界面
修改信息代码如下:
privatevoidbutton1_Click(objectsender,EventArgse)
{
if(textBox1.Text=="")
{
MessageBox.Show("姓名不能为空");
}
else
{
if(textBox2.Text=="")
{
MessageBox.Show("信息不能为空");
}
else
if(comboBox1.Text=="")
{
MessageBox.Show("信息不能为空");
}
else
{
SqlConnectioncon=Connection.create