企业人事档案管理系统的设计与实现_第1页
企业人事档案管理系统的设计与实现_第2页
企业人事档案管理系统的设计与实现_第3页
企业人事档案管理系统的设计与实现_第4页
企业人事档案管理系统的设计与实现_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

企业人事档案管理系统的设计与实现课程设计报告企业人事档案管理系统的设计与实现课 程 数据库原理及应用班 级 姓 名 学 号 指导教师 时间:2012 年 6 月7 日 至 2012 年 6 月8 日指导教师对课程设计(论文)的评语(工作态度、任务完成情况、能力水平、设计说明书(论文)的撰写和图纸质量等): 成绩 指导教师签字 年 月 日目 录第一章 开发背景1第二章 功能描述2第三章 业务流程分析3第四章 数据流程分析44.1、数据流程图44.2、数据字典4第五章 概念模型设计 12第六章 逻辑模型设计和优化13第七章 物理设计和实验14第八章系统测试16第九章课程设计心得体会24参考文献 2525第一章 开发背景在经济全球化的今天,建立以客户未中心的经营战略,可以加强企业和客户间的联系。对企业来讲,为客户提供一流的服务,是企业建立品牌,实现差别服务,取得竞争的利器。一直以来人们使用传统人工工的方式管理会员的基本档案,这种管理方式存在着许多缺点:保密性差,另外时间一长,将产生大量的文件和数据,对于查找,更新和维护都带来了不少的困蓝。而通过会员管理系统爱好,消费特点,意向需求等;进而针对客户的需求,为其提供优质的个性虎服务,还能为企业的产品开发,事业发展提供可靠的市场数据,是企业经营不可或缺的一个有利工具。同时,作为计算机应用的一部分,使用计算机对会员进行管理,具有着手工管理所无法比拟的优点。例如:检索迅速,查找方便,可靠性高成本低等,这些优点极大的提高了会员管理的效率,也是企业的科学化,正规化管理,存储量大,密保性好,寿命长,成先进科学技术接轨的重要条件。目前,国内国外关于一方面的软件很多,其功能也都比较完善,但也都存在着一些问题,如:性能不可靠,安全性差,交互能力不强等问题,在日益激烈的商场战场中难以应对真实的,残酷的竞争。第二章 功能描述当您运行本系统,首先看到的是一个登陆界面。用户名、密码都是由系统管理员分配,只有管理员能添加、删除用户、查询信息、修改信息以及录入员工信息。本系统主要有以下功能:(1)数据录入功能在本系统中提供员工信息录入功能。可以录入员工的姓名、性别、年龄、民族、籍贯、职务编号等信息。(2)数据查询功能系统需提供以下查询功能。根据员工的编号查询员工的基本信息;根据员工的性别查询员工的信息;根据员工编号查询员工的职务变动信息。(3)数据修改功能 在系统中管理员可以修改已有员工的信息,包括性别、年龄、民族、籍贯、职务编号等信息。 第三章 业务流程分析 企业人事档案管理系统业务流程分析如图3-1所示。员工信息姓名联系电话出生日期性别身份证号民族婚姻状况年龄籍贯政治面貌员工号家庭住址婚姻状况员工号配偶姓名联系方式结婚时间工作单位出生日期政治面貌员工学历员工号学历专业毕业学校毕业时间职位设置职位代号职位描述职位名称部门经理部门名称部门代号结婚授予分配n111n11n11拥有设置部门设置 图3-1 企业人事档案管理系统业务流程分析第四章 数据流程分析4.1、数据流程图 企业人事档案管理系统数据流程图如图4-1所示。姓名NNM1111111职工管理员工龄表奖惩职称表洗理费查看查看修改查看修改查看修改查看查看查看查看修改编号金额编号性别出生日期住址账号房补基本工资职称名工资级别内容职务补助密码工龄年数工龄津贴金额性别1N1111 图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)数据项 数据项名数据类型 长度取值范围说明代码整型NN企业人事代码性别字符型2男/女企业人事性别姓名字符型6中文企业人事姓名出生日期整型81950.012011.01企业人事出生日期工作日期整型81970.012011.01企业人事工作日期工作简历字符型NN企业人事工作经历文化程度字符型10N企业人事文化程度所属部门字符型10N企业人事所属部门从事专业字符型10N企业人事从事专业职称字符型10N企业人事职称职务字符型10N企业人事职务民族字符型10N企业人事民族籍贯字符型20N企业人事籍贯 第五章 概念模型设计企业人事档案管理概念模型设计图3所示。图5-1 企业人事档案管理系统的概念模型设计图第六章 逻辑模型设计和优化根据系统的总体概念设计模型、E-R图向关系模式的转化规则和数据库的范式理论,得到系统优化后的逻辑模型 图表如下: 表1 部门表 字段名称字段数据类型约束条件描述 表2 职务表字段名称字段数据类型约束条件描述 表3 员工类型表 字段名称字段数据类型约束条件描述 表4员工基本信息表 字段名称字段数据类型约束条件描述 第七章 物理设计和实验得到系统逻辑模型后,就该进行数据库的物理设计和实施数据库了,物理设计主要是要确定数据库的存储路径、存储结构以及如何建立索引等,可以采用系统的默认设置。数据库实施主要包括在具体的DBMS中创建数据库和表的过程,本设计所选用的DBMS为SQL SERVER2000,有关创建数据库和关系表的SQL语句如下所示:创建数据库/* DataBase:企业人事档案管理系统, 创建数据库,数据库名称为企业人事档案管理系统*/*=*/create database 企业人事档案管理系统go创建表CREATE TABLE 工作信息(姓名 nchar(10) null,性别 nchar(10) null,部门类型 nchar(10) null,职务 nchar(10) null,工龄 nchar(10) null,基本工资 float null,状态 nchar(10) null,) goCREATE TABLE企业人员信息 (姓名 nchar(10) null,性别 nchar(10) null,名族类型 nchar(10) null,婚姻状况 nchar(10) null,政治面貌 nchar(10) null,文化程度 nchar(10) null,所学专业 nchar(10) null,)goCREATE TABLE 用户登录(用户名 nchar(10) null,密码 nchar(10) null,权限 char(10) null,)Go查询编号为1的职工姓名select distinct 姓名from 职工表where 编号=1;查询工资级别为2级的职工编号select 编号,工资级别from 职工表,职称表where 工资级别= 2;查询与于得水工龄年数相同的职工姓名select 姓名from 职工表where 工龄年数=( select 工龄年数 From 职工表 Where 职工姓名= 于得水);统计全体职工的平均工资select avg(基本工资)from 职称表;第八章 系统测试1、登录界面 图8-1 登录界面登陆界面代码如下:private void btnLogin_Click(object sender, EventArgs e) 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=用户) SqlConnection con = Connection.createCon(); con.Open(); SqlCommand cmd = new SqlCommand(select count(*)from 用户登录表 where 用户名= + txtUserName.Text + and 密码= + txtPwd.Text + and 权限=+cmbLogin.Text+, con); Int32 count = (Int32)cmd.ExecuteScalar(); if (count = 1) t = txtUserName.Text; t1 = cmbLogin.Text; FrmMain main = new FrmMain(); main.Show(); this.Hide(); Login_right = cmbLogin.Text; else MessageBox.Show(用户名或者密码错误!); con.Close(); catch (Exception ex) MessageBox.Show(ex.ToString(); 2、增加员工界面图8-2 增加员工界面增加员工界面代码如下:private void button1_Click(object sender, EventArgs e) if (textBox1.Text = ) MessageBox.Show(姓名不能为空); else SqlConnection con = Connection.createCon(); con.Open(); SqlCommand cmd = new SqlCommand(select count(*) from 工作信息 where 姓名= + textBox1.Text + , con); Int32 count = (Int32)cmd.ExecuteScalar(); if (count 0) MessageBox.Show(该员工信息已经存在!); else string strSql1 = insert into 企业人员信息 (姓名) values( + textBox1.Text.ToString() + ); string strSql2 = insert into 工作信息 (姓名) values( + textBox1.Text.ToString() + ); SqlCommand cmd1 = new SqlCommand(strSql1, con); cmd1.ExecuteNonQuery();/ 执行SQL语句完成SQL命令 SqlCommand cmd2 = new SqlCommand(strSql2, con); cmd2.ExecuteNonQuery();/ 执行SQL语句完成SQL命令 MessageBox.Show(添加成功,请在基本设置里面修改其他信息!); con.Close(); 3、数据备份界面图8-3 数据库界面数据备份代码如下:private void button1_Click(object sender, EventArgs e) try string strg = Application.StartupPath.ToString(); strg += Data; string sqltxt = BACKUP DATABASE 企业人事档案管理 TO Disk= + strg + + txtpath.Text + .bak + ; dbase db = new dbase(); if (db.ExecuteSQL(sqltxt) MessageBox.Show(备份成功, 提示, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); else MessageBox.Show(备份失败!); catch (Exception ex) MessageBox.Show(ex.Message.ToString(); 4、数据恢复界面 图8-4 数据恢复界面数据恢复代码如下:private void button1_Click(object sender, EventArgs e) dbase db = new dbase(); try string str = use master restore database 企业人事档案管理 from Disk= + textBox1.Text.Trim() + ; if (db.ExecuteSQL(str) MessageBox.Show(恢复成功, 提示, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); catch (Exception ex) MessageBox.Show(ex.Message.ToString(); finally db.Dispose(); 6、主界面 图8-6 主界面主界面代码如下:private void FrmMain_Load(object sender, EventArgs e) if (FrmLogin.t1 = 管理员) 修改员工信息ToolStripMenuItem.Visible = true; 修改工作信息ToolStripMenuItem.Visible = true; 增加员工ToolStripMenuItem.Visible = true; 7、修改信息界面图8-7 修改信息界面修改信息代码如下:private void button1_Click(object sender, EventArgs e) if (textBox1.Text = ) MessageBox.Show(姓名不能为空); else if (textBox2.Text = ) MessageBox.Show(信息不能为空); else if (comboBox1.Text = ) MessageBox.Show(信息不能为空); else SqlConnection con = Connection.createCon(); con.Open(); SqlCommand cmd = new SqlCommand(select count(*) from 工作信息 where 姓名= + textBox1.Text + , con); Int32 count = (Int32)cmd.ExecuteScalar(); if (count = 0) MessageBox.Show(没有该员工!); else string strSql1 = update 工作信息 set + comboBox1.Text.ToString() + = + textBox2.Text.ToString() + where 姓名= + textBox1.Text + ; SqlCommand cmd1 = new SqlCommand(strSql1, con); cmd1.ExecuteNonQuery();/ 执行SQL语句完成SQL命令 con.Close(); MessageBox.Show(修改成功!); con.Close(); 8、密码修改界面 图8-8 修改密码界面修改密码代码如下:private void button1_Click(object sender, EventArgs e) SqlConnection con = Connection.createCon(); con.Open(); SqlCommand com = con.CreateCommand(); com.CommandText = select * from 用户登录表 where 用户名= + FrmLogin.t + ; SqlDataReader r = com.ExecuteReader(); if (r.Read() != false) string t1 = r.GetString(1).ToString().Trim(); if (textBox1.Text != t1) con.Close(); MessageBox.Show(输入密码错误!); else if (textBox2.Text != textBox3.Text) MessageBox.Show(密码确认失败!); else con.Close(); SqlConnection cn = Connection.createCon(); cn.Open(); SqlCommand cmd = cn.CreateCommand(); cmd.CommandText = update 用户登录表 set 密码= + textBox2.Text + where 用户名= + FrmLogin.t + ; cmd.ExecuteNonQuery(); MessageBox.Show(密码修改成功!); 9、权限设置界面图8-9 权限设置界面权限设置代码如下:private void button1_Click(object sender, EventArgs e) SqlConnection con = Connection.createCon(); con.Open(); SqlCommand com = con.CreateCommand(); com.CommandText = select * from 用户登录表 where 用户名= + textBox1.Text + ; SqlDataReader r = com.ExecuteReader(); if (r.Read() = false) con.Close(); MessageBox.Show(不存在该用户!); else con.Close(); SqlConnection cn = Connection.createCon(); cn.Open(); SqlCommand cmd = cn.CreateCommand(); cmd.CommandText = update 用户登录表 set 权限= + comboBox1.Text + where 用户名= + textBox1.Text + ; cmd.ExecuteNonQuery(); MessageBox.Show(权限设置成功!); 第九章 课程设计心得体会通过这次课程设计,加强了我们动手、思考和解决问题的能力。在整个设计过程中,我们通在设计过程中,经常会遇到这样那样的情况,就是心里想老着这样的接法可以行得通,总是实现不了,因此耗费在这上面的时间用去很多。我沉得做课程设计同时也是对课本知识的巩固和加强,由于课本上的知识太多,平时课间的学习并不能很好的理解和运用各个控件的功能,而且考试内容有限,所以在这次课程设计过程中,我们了解了很多元件的功能,并且对于其在数据库中的使用有了更多的认识。平时看课本时,有时问题老是弄不懂,做完课程设计,那些问题就迎刃而解了。而且还可以记住很多东西。比如一些芯片的功能,平时看课本,这次看了,下次就忘了,通过动手实践让我们对各个元件映象深刻。实践是认识的动力和最终

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论