《企业员工信息管理毕业论文.doc》由会员分享,可在线阅读,更多相关《企业员工信息管理毕业论文.doc(17页珍藏版)》请在三一办公上搜索。
1、员工信息管理系统毕业论文摘 要人类经济的高速发展使得计算机在社会的各个领域发挥着极其重要的作用。信息管理系统也越来越多的出现的人们的工作和生活中,基于角色的权限管理在信息管理系统的开发中得到广泛应用,并且在现在信息管理系统的实现中表现在较好的灵活性和安全性,应用角色权限管理可使不同身份用户登录验证后具有不同的交互界面,提高了系统的易用性和健壮性。本系统采用Visual 2005作为系统开发环境,并使用C#语言,以SQL Server 为后台数据库的开发体系结构。主要实现了管理员通过维护用户信息,角色信息,并对用户赋予系统的角色权限,可以对部门信息、员工信息进行维护,对工资信息进行管理,查询和统
2、计等功能。关键字:基于角色的权限管理; Visual 2005; C#; SQL ServerABSTRACTThe human economys high speed development causes the computer to play the extremely vital role in societys each domain. In the information management system also more and more appearances peoples work and the life, obtains the widespread applica
3、tion based on the role jurisdiction management in information management systems development, and realizes in the present information management system displays in the good flexibility and the security, after the application role jurisdiction management may enable the different status user registers
4、 the confirmation, to have the different interactive contact surface, enhanced systems usability and the toughness.This system uses the Visual 2005 to take the system development environment, and uses the C# language, take SQL Server as the backstage database development architecture. Mainly has rea
5、lized the manager through the maintenance user information, the role information, and entrusts with systems role jurisdiction to the user, may to the department information, the staff information carry on the maintenance, carries on the management to the wages information, functions and so on inquir
6、y and statistics.Key words: Based on role jurisdiction management, Visual 2005, C#, SQL Server目 录1 系统概述 11.1 系统背景介绍 11.2 项目提出的意义 11.3 相关技术及工具介绍 11.3.1 角色访问控制简介 11.3.2 C#简介 31.3.3 数据库SQL Server简介 31.3.4 Microsoft Visual Studio2005简介 52 需求分析 72.1可行性分析 72.2 数据库需求分析 72.3 系统功能需求分析 83 系统设计 93.1系统总体设计 93.1
7、.1 系统总体设计要求 93.1.2 系统总体架构 93.1.3 系统总体结构设计原则 103.2 系统功能总体设计 103.2.1 基础信息管理 103.2.2 业务信息管理 113.2.3 查询信息管理 113.2.4 系统信息管理 113.3 界面设计 113.3.1 界面设计规范 113.3.2 界面布局设计 123.4 数据流图 123.5 数据字典 124 系统详细设计 154.1 主要功能模块详细设计 154.1.1部门信息管理 154.1.2 员工信息管理 154.1.3 员工工资管理 164.1.4 员工信息查询 174.1.5 员工工资查询 174.1.6 角色信息管理 1
8、84.1.7 角色权限管理 194.1.8 用户信息管理 194.2 数据库结构设计 194.2.1 概念结构设计 194.2.2 概念结构设计的方法选择 204.2.3 系统的E-R图 204.3数据库实现及数据关系图 235 系统实现 255.1 运行环境 255.2 登陆界面 255.3 系统主界面 255.4 部门信息管理 265.5 员工信息管理 285.6 员工工资管理 305.7 员工信息查询 335.8 员工工资查询 335.9 角色信息管理 355.10 角色权限管理 365.11 用户信息管理 395.12 修改密码 416 系统测试 436.1 软件测试的意义 436.2
9、 软件测试的重要性 436.3 软件测试的范围 436.4 软件测试的方法 446.5 软件测试的目的和原则 447 总结 46参考文献 47致 谢 49功能设计分析:在遵循上述原则的基础上,根据系统处理业务的不同,将该系统分为基础信息管理、业务信息管理、查询信息管理、系统信息管理四个子系统,其中基础信息管理包括部门信息管理和员工信息管理;业务信息管理包括员工工资管理;查询信息管理包括部门信息查询、员工信息查询、员工工资查询和员工工资统计;系统信息管理包括角色信息管理、菜单信息管理、角色权限管理和用户信息管理。图3-1是系统设计的总体框架图,通过图示的形式,描述了系统各部分的功能模块结构关系。
10、图中的每一个模块都能够独立地实现其具体的功能。3.2.1 基础信息管理(1) 部门信息管理:对部门信息进行维护,添加和删除操作。(2) 员工信息管理:对员工信息进行维护,添加和删除操作。3.2.2 业务信息管理(1)员工工资管理:对员工工资进行维护,添加、修改和删除操作。3.2.3 查询信息管理(1)部门信息查询:可以通过输入部门名称,查询出符合条件的部门信息。(2)员工信息查询:可以通过输入姓名、职位或员工号,查询出符合条件的员工信息。(3)员工工资查询:可以通过选择发放月份或输入员工号,查询出符合条件的员工工资信息。(4)员工工资统计:可以按发放月份统计出每个月发放的工资总额。3.2.4
11、系统信息管理(1)角色管理:对角色信息进行维护,添加、删除操作。(2)菜单信息管理:可以查看系统菜单列表中的各个子节点。(3)角色权限设置:可以对各个角色进行系统权限的设置。通过设置权限信息,拥有相应角色的用户只能对系统进行相应功能的操作。(4)用户信息管理:对使用该系统的用户信息进行管理,添加和删除操作。数据结构分析:(1)数据库名为Cnet05_Jsgl.mdf(2)根据系统的分析,数据库表需要设置如下:表3-1 角色表序号字段名类型长度索引备注1. 角色代码IntPKey2. 角色名称Varchar50表3-2 菜单表序号字段名类型长度索引备注1. 菜单代码IntPKey2. 菜单名称V
12、archar50显示给用户的3. 上级菜单代码Int一共三级 一级 系统菜单 二级 详细菜单三级 页面按钮4. 窗体名称varchar显示给用户的5. 窗体程序名Varchar数据库中存储的6. 菜单程序名Varchar数据库中存储的表3-3 角色权限表序号字段名类型长度索引备注1. 代码IntPKey2. 角色代码Int3. 菜单代码Int表3-4 用户表序号字段名类型长度索引备注1. 用户帐号VarcharPKey2. 角色代码Int关联 角色3. 密码Varchar表3-5 部门表序号字段名类型长度索引备注1. 部门代码IntPKey2. 部门名称Varchar50介绍:表3-6 员工信
13、息表序号字段名类型长度索引备注1. 员工号Varchar50PKey2. 姓名Varchar503. 性别Varchar104. 职位Varchar505. 入职日期Datetime6. 员工介绍Varchar2557. 联系方式Varchar508. 部门代码Int关联 部门表3-7 员工工资表序号字段名类型长度索引备注1. 流水号IntPKey2. 发放时间DateTime3. 员工号Varchar504. 发放月份VarcharYYYY年MM月5. 岗位工资Float6. 绩效工资Float7. 奖金Float8. 保险扣除Float9. 税收扣除Float10. 罚金Float11.
14、最终金额Float前台功能介绍:5.3 系统主界面成功登陆系统以后,显示系统的主界面,包括标题:基于角色的员工工资管理系统;菜单:基础信息管理、业务信息管理、查询信息管理和系统信息管理;快捷按钮:员工信息、员工工资、员工信息查询、员工工资查询、修改密码、重新登陆和退出系统;下方为工作区。如图所示:5.4 部门信息管理在系统主界面点击基础信息管理里的部门信息管理,系统显示部门信息列表对话框,包括部门名称输入框,列表有部门代码和部门名称;添加、删除和取消按钮。通过此对话框可以添加和删除部门信息。如图所示:以下是引用片段:其关键代码实现如下:private void BmList_Load(obje
15、ct sender, EventArgs e)/设置当前登陆人员是否存在按钮的使用权限if (db.Get(select * from View_Menu where 窗体程序名= + this.Name + and 菜单程序名= + BtnAdd.Name + and 角色代码= + db.strJsid + ).Rows.Count 0)BtnAdd.Enabled = true;elseBtnAdd.Enabled = false;if (db.Get(select * from View_Menu where 窗体程序名= + this.Name + and 菜单程序名= + btnD
16、el.Name + and 角色代码= + db.strJsid + ).Rows.Count 0)btnDel.Enabled = true;elsebtnDel.Enabled = false;/绑定部门列表this.dataGridView1.DataSource = db.Get(select * from 部门);this.dataGridView1.Columns1.Width=200; private void BtnAdd_Click(object sender, EventArgs e)/判断信息不能重复if (db.Get(select * from 部门 where 部门
17、名称 =+ textBox1.Text +).Rows.Count 0 )MessageBox.Show(部门名称重复);textBox1.Text = ;return;/保存新部门信息db.Exec(insert into 部门(部门名称) values( + textBox1.Text + );this.dataGridView1.DataSource = db.Get(select * from 部门);textBox1.Text = ;员工信息管理功能介绍:5.5 员工信息管理在系统主界面点击基础信息管理里的员工信息管理,系统显示人员信息列表页面,包括新人员、人员信息和取消按钮,列表包
18、括员工号、姓名、性别、职位、入职日期、联系方式、部门名称和员工介绍;点击【新人员】按钮或选择列表中的某一记录,点击【人员信息】按钮,显示人员信息维护页面,输入各项信息,点击【保存】按钮,该人员信息添加完成;点击【删除】按钮,删除相应信息。如图所示:以下是引用片段:其关键代码实现如下:private void RyEdit_Load(object sender, EventArgs e)/绑定显示部门列表comboBox2.ValueMember = 部门代码;comboBox2.DisplayMember = 部门名称;comboBox2.DataSource = db.Get(select
19、* from 部门);if (m员工号 != )/显示当前的员工信息DataTable dt = new DataTable();dt = db.Get(select * from 员工信息 where 员工号= + m员工号 + );if (dt.Rows.Count 0)textBox1.ReadOnly = true;textBox1.Text = dt.Rows0员工号.ToString();textBox2.Text = dt.Rows0姓名.ToString();comboBox1.Text = dt.Rows0性别.ToString();textBox3.Text = dt.Ro
20、ws0职位.ToString();dateTimePicker1.Value = Convert.ToDateTime(dt.Rows0入职日期.ToString();textBox5.Text = dt.Rows0联系方式.ToString();textBox4.Text = dt.Rows0员工介绍.ToString();comboBox2.SelectedValue = dt.Rows0部门代码.ToString();private void BtnAdd_Click(object sender, EventArgs e)/根据标志 添加或修改 员工信息if (m员工号 = )/添加新员
21、工if (db.Get(select * from 员工信息 where 员工号= + textBox1.Text + ).Rows.Count 0)MessageBox.Show(员工帐号重复);return;db.Exec(insert into 员工信息(员工号,姓名,性别,职位,入职日期,员工介绍,联系方式,部门代码) values(+ textBox1.Text +, + + textBox2.Text +,+ comboBox1.Text +,+ textBox3.Text +,+ dateTimePicker1.Value +,+ textBox4.Text +, + + tex
22、tBox5.Text +,+ comboBox2.SelectedValue +);else/修改员工信息db.Exec(update 员工信息 set 姓名= + textBox2.Text + ,性别= + comboBox1.Text + ,职位= + textBox3.Text + , + 入职日期= + dateTimePicker1.Value + ,员工介绍= + textBox4.Text + ,联系方式= + textBox5.Text + , + 部门代码= + comboBox2.SelectedValue + where 员工号= + m员工号 + );this.Clo
23、se();员工工资管理介绍:5.6 员工工资管理在系统主界面点击业务信息管理里的员工工资管理,或点击快捷按钮【员工工资】,显示员工工资列表页面,包括发放月份、员工号、姓名、职位、发放时间、岗位工资、绩效工资、奖金、保险扣除、税收扣除,以及新工资、工资信息和取消按钮,通过选择发放月份进行过滤列表显示;点击【新工资】按钮或选择列表中的某一记录,点击【工资信息】按钮,显示员工工资登记页面,输入各项信息,点击【保存】按钮,该员工工资登记完成;点击【删除】按钮,删除相应信息。如图所示:以下是引用片段:其关键代码实现如下:private void BtnAdd_Click(object sender, E
24、ventArgs e)/根据不同的标志 添加或修改 员工工资信息if (m流水号 = )/添加新员工if (db.Get(select * from 员工工资 where 员工号= + comboBox2.SelectedValue + and 发放月份= + comboBox1.Text + ).Rows.Count 0)MessageBox.Show(此员工的工资已经存在);return;db.Exec(insert into 员工工资(发放时间,员工号,发放月份,岗位工资,绩效工资,奖金,保险扣除,税收扣除,罚金,最终金额) values( + DateTime.Now.ToShortD
25、ateString() + , + + comboBox2.SelectedValue + , + comboBox1.Text + , + textBox3.Text + , + textBox4.Text + , + textBox2.Text + , + + textBox7.Text + , + textBox6.Text + , + textBox9.Text + ,+ textBox8.Text +);else/修改员工信息db.Exec(update 员工工资 set 岗位工资= + textBox3.Text + ,绩效工资= + textBox4.Text + ,奖金= +
26、textBox2.Text + , + 保险扣除= + textBox7.Text + ,税收扣除= + textBox6.Text + ,罚金= + textBox9.Text + ,最终金额= + textBox8.Text + where 流水号= + 流水号 + );this.Close();private void btnDel_Click(object sender, EventArgs e)/删除当前的员工工资信息db.Exec(delete 员工工资 where m流水号= + 流水号 + );this.Close();private void textBox3_TextCha
27、nged(object sender, EventArgs e)/计算员工的工资信息trytextBox8.Text = Convert.ToString(Convert.ToDecimal(textBox3.Text) + Convert.ToDecimal(textBox4.Text) + Convert.ToDecimal(textBox2.Text) - Convert.ToDecimal(textBox7.Text) - Convert.ToDecimal(textBox6.Text) - Convert.ToDecimal(textBox9.Text);catch 员工信息查询介绍
28、:5.7 员工信息查询在系统主界面点击查询信息管理里的员工信息查询,或点击快捷按钮【员工信息查询】,显示员工查询页面,包括员工号、姓名、性别、职位、入职日期、联系方式、部门名称、员工介绍,查询条件输入框:姓名、职位、员工号,以及查询和取消按钮。如图所示:以下是引用片段:其关键代码实现如下:private void BtnAdd_Click(object sender, EventArgs e)/绑定显示员工信息列表this.dataGridView1.DataSource = db.Get(SELECT 员工信息.员工号, 员工信息.姓名, 员工信息.性别, 员工信息.职位,convert(v
29、archar(10),员工信息.入职日期,121) as 入职日期, 员工信息.联系方式,部门.部门名称,员工信息.员工介绍 FROM 员工信息 INNER JOIN 部门 ON 员工信息.部门代码 = 部门.部门代码 where 姓名 like %+ textBox1.Text +% and 职位 like %+textBox2.Text +% and 员工号 like %+ textBox3.Text +%);this.dataGridView1.Columns7.Width = 300; 5.8 员工工资查询在系统主界面点击查询信息管理里的员工工资查询,或点击快捷按钮【员工工资查询】,显
30、示员工工资查询页面,包括发放月份、员工号、姓名、职位、发放时间、最终金额、岗位工资、绩效工资、奖金、保险扣除,查询条件输入框:员工号,选择列表:发放月份;以及查询和取消按钮。如图所示:角色信息管理模块介绍:5.9 角色信息管理在系统主界面点击系统信息管理里的角色信息管理,系统显示角色管理列表对话框,包括角色名称输入框,列表有角色代码和角色名称;添加、删除和取消按钮。通过此对话框可以添加和删除角色信息。如图所示:以下是引用片段:其关键代码实现如下:private void BtnAdd_Click(object sender, EventArgs e)/判断角色是否重复if (db.Get(se
31、lect * from 角色 where 角色名称 = + textBox1.Text + ).Rows.Count 0)MessageBox.Show(角色名称重复);textBox1.Text = ;return;/添加角色db.Exec(insert into 角色(角色名称) values( + textBox1.Text + );this.dataGridView1.DataSource = db.Get(select * from 角色);textBox1.Text = ;private void btnDel_Click(object sender, EventArgs e)/删
32、除角色db.Exec(delete 角色 where 角色名称= + textBox1.Text + );textBox1.Text = ;this.dataGridView1.DataSource = db.Get(select * from 角色);private void dataGridView1_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)/显示角色this.textBox1.Text = this.dataGridView1.Rowse.RowIndex.Cells1.Value.ToString()
33、; private void JsList_Load(object sender, EventArgs e)/显示角色列表this.dataGridView1.DataSource = db.Get(select * from 角色);this.dataGridView1.Columns1.Width = 200; 角色权限管理模块介绍:5.10 角色权限管理在系统主界面点击系统信息管理里的角色权限设置,系统显示角色权限设置页面,包括角色名称选择列表,系统菜单列表各级节点;设置和取消按钮。通过此页面可以对各个角色拥有的权限进行设置。如图所示:以下是引用片段:其关键代码实现如下:private
34、void AddNode(TreeNode tParent)/利用递归函数 递归显示树状菜单列表DataTable dt = new DataTable();dt = db.Get(select * from 菜单 where 上级菜单代码 = + tParent.Tag + );for (int i = 0; i dt.Rows.Count; i+)TreeNode tmp = new TreeNode();tmp.Text = dt.Rowsi菜单名称.ToString();tmp.Tag = dt.Rowsi菜单代码.ToString();tmp.ImageIndex = 1;tmp.S
35、electedImageIndex = 1;tParent.Nodes.Add(tmp);AddNode(tmp);待添加的隐藏文字内容1private void SetValue(TreeNode tNode,int intTag)/利用递归函数 设置上一次的角色菜单项if (Convert.ToInt32( tNode.Tag) = intTag)tNode.Checked=true ;return;for (int i = 0; i tNode.Nodes.Count; i+)SetValue(tNode.Nodesi, intTag); private void GetValue(Tr
36、eeNode tNode, int intJs)/利用递归函数 保存本次的角色菜单项if (tNode.Checked)db.Exec(insert into 角色权限(角色代码,菜单代码) values( + intJs + , + Convert.ToInt32(tNode.Tag.ToString() + );for (int i = 0; i 0)MessageBox.Show(用户帐号重复);textBox1.Text = ;return;/添加新的用户帐号信息db.Exec(insert into 用户(用户帐号,角色代码,密码) values( + textBox1.Text +
37、 ,+ comboBox1.SelectedValue +,000000);this.dataGridView1.DataSource = db.Get(SELECT 用户.用户帐号, 用户.角色代码, 角色.角色名称 FROM 用户 INNER JOIN 角色 ON 用户.角色代码 = 角色.角色代码);textBox1.Text = ;private void dataGridView1_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)/显示当前的用户信息if (dataGridView1.Rows.Count=
38、0 ) return;this.textBox1.Text = this.dataGridView1.Rowse.RowIndex.Cells0.Value.ToString();boBox1.SelectedValue = this.dataGridView1.Rowse.RowIndex.Cells1.Value.ToString(); private void btnDel_Click(object sender, EventArgs e)/删除当前用户信息db.Exec(delete 用户 where 用户帐号= + textBox1.Text + );textBox1.Text =
39、;this.dataGridView1.DataSource = db.Get(SELECT 用户.用户帐号, 用户.角色代码, 角色.角色名称 FROM 用户 INNER JOIN 角色 ON 用户.角色代码 = 角色.角色代码);修改密码功能介绍:5.12 修改密码在系统主界面点击快捷按钮【修改密码】,则显示修改密码页面,包括新密码、确认密码输入框,修改和取消按钮。通过此页面当前操作人员可以对自己的密码进行修改。如图所示:以下是引用片段:其关键代码实现如下:private void BtnAdd_Click(object sender, EventArgs e)/修改密码if (textBox1.Text != textBox2.Text)MessageBox.Show(密码不一致);return;db.Exec(update 用户 set 密码=+ textBox1.Text + where 用户帐号=+ db.strID +);MessageBox.Show(修改成功,下次使用);this.Close();