08070002数据库人事管理课程设计.docx
《08070002数据库人事管理课程设计.docx》由会员分享,可在线阅读,更多相关《08070002数据库人事管理课程设计.docx(18页珍藏版)》请在冰点文库上搜索。
![08070002数据库人事管理课程设计.docx](https://file1.bingdoc.com/fileroot1/2023-4/29/f29a9f90-4cf9-4198-9c1e-fd0717a46db6/f29a9f90-4cf9-4198-9c1e-fd0717a46db61.gif)
08070002数据库人事管理课程设计
一、公司人事管理信息系统问题综述
1.问题提出
人事管理信息系统往往广泛用于各种工商企事业单位,几乎每个进行了信息化建设的单位都具有人事管理信息系统。
一直以来人们使用传统人工的方式管理员工档案,这种管理方式存在着许多缺点,譬如:
效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
人事管理信息系统的出现轻而易举的解决了传统管理人员档案的方法的缺点。
伴随着人事管理信息系统的广泛应用,它已经成为了任何一家企业公司都不可缺少的组成部分,它的存在使得管理者更容易了解自己公司的员工,便于分配人员,易于进行调整。
所以人事管理信息系统能够为管理人员提供充足的信息和快捷的查询手段。
2、公司人事管理信息系统基本背景
本课程设计针对这些企事业单位所共有的信息来设计和开发人事管理信息系统,该系统提供了包括部门信息管理、员工基本信息管理、员工主要家庭成员信息管理、员工主要教育与工作经验管理、员工考勤管理、员工工作考评管理、系统用户管理等7个部分。
其中系统管理用于管理使用该系统的用户,以及权限的分配,从而为系统提供一定的安全性。
员工管理包括员工本人的基本信息、家庭状况、学历资料、工作记录等项目,全面合理地反映员工的人事档案,并可以随时查询人事档案。
考勤管理,可以及时反映员工的出勤情况。
本设计所涉及到的人事管理系统是从实际中提取出来的一个简单的管理系统,具体到不同的企业,会有不同的要求。
二、系统需求分析
要求:
用简炼的文字描述系统主要功能,画出该系统数据流图。
管理员登陆人事管理系统后,使得管理者更容易了解自己公司的员工,易于实现调整,为管理人员提供充足的信息和快捷的查询手段。
可以实现对部门信息管理、员工考勤管理、员工基本信息管理等等功能。
其中部门信息管理包括添加部门信息(包括部门编号、部门名称、部门职能描述和上级部门信息)、修改部门信息、删除部门信息、查看部门信息等等。
功能模块:
数据流图:
三、系统总体设计
要求:
画出系统总体结构图。
四、数据库设计
1、数据库概念结构设计,画出E-R图。
根据系统的功能可以得到数据需求:
员工的基本信息表:
包括:
员工编号、姓名、性别、民族、生日、政治面貌、文化程度、婚姻状况等。
部门的基本信息表:
包括:
部门编号、部门名称、部门职能描述、上级部门编号等。
员工考勤表:
包括:
考勤月份、员工编号、全勤天数、出差天数等。
员工工作考评表:
包括:
考评月份、总体评价、奖励事由等。
用户信息表:
包括:
用户名、密码、用户类型等。
通过对数据库基本信息的分析,建立E-R图如下:
2、逻辑结构设计,将上述概念模型转换为关系模式,并进行优化分析。
将E-R图进行总结、归纳,建立如下关系图:
部门表(部门编号、部门名称、部门职能描述、上级部门编号)
员工基本信息表(员工编号、姓名、性别、民族、政治面貌、文化程度、籍贯、身份证号、所在部门编号、职务、备注)
员工考勤表(考勤月份、员工编号、全勤天数、出差天数、病假天数、事假天数、迟到时间、加班天数、备注信息)
员工工作考评表(考评月份、员工编号、总体评价、奖励事由、奖励金额、处罚事由、处罚金额、备注信息)
用户信息表(用户名、密码、用户类型)
表结构及数据词典的设计:
表1员工信息表(Employees)
字段名称
数据类型
长度
说明
Emp_id
int
4
员工编号
Emp_Name
char
8
姓名
Sex
char
2
性别
Nationality
char
6
民族
Political_Party
Varchar(40)
Varchar(40)
政治面貌
Emp_Birth
char
4
出生日期
Family_Place
char
10
籍贯
Id_Card
char
18
身份证号
Dep_Id
int
4
所在部门编号
Title
char
8
职务
Memo
char
200
备注
表2部门表(Departments)
字段名称
数据类型
长度
说明
Dep_id
int
4
部门编号
Dep_name
char
10
部门名称
Descripe
char
50
部门职能描述
Upperld
int
4
上级部门编号
表3员工考勤表(Checkin)
字段名称
数据类型
长度
说明
CheckDate
int
4
考勤月份
Emp_Id
int
4
员工编号
qqDays
int
4
全勤天数
ccDays
int
4
出差天数
bjDays
int
4
病假天数
sjDays
int
4
事假天数
cdMinutes
int
4
迟到次数
OtDays
int
4
加班天数
Memo
char
200
备注信息
表4员工考评表(Evaluation)
字段名称
数据类型
长度
说明
EvaMonth
int
4
考评月份
Emp_id
int
4
员工编号
ztEva
Char
2
总体评价
jlReason
Char
40
奖励事由
jlAmount
int
4
奖励金额
cfReason
Char
40
处罚事由
cfAmount
int
4
处罚金额
Memo
Char
200
备注信息
表5用户信息表(Users)
字段名称
数据类型
长度
说明
UserName
char
8
用户名
Pwd
char
20
密码
User_type
char
10
用户类型
3、物理设计,选择实施环境,即选择SQLServer2000作为本信息系统的数据库管理系统。
createdatabase人事管理
on
(name=人事管理_data,
filename='D:
\人事管理\人事管理.mdf',
size=10mb,
maxsize=50mb,
filegrowth=10%)
logon
(name=人事管理_log,
filename='D:
\人事管理\人事管理.LDF',
size=10mb,
maxsize=20mb,
filegrowth=10%)
createtableEmployees
(Emp_idintprimarykey,
Emp_Namechar(8),
Sexchar
(2),
Emp_Birthdatetime,
Nationalitychar(6),
Political_Partychar(4),
Family_Placechar(10),
Id_Cardchar(18),
Dep_Idint,
Titlechar(8),
Memochar(200),
);
createtableDepartments
(Dep_idintprimarykey,
Dep_namechar(10),
Descripechar(50),
Upperldint,
);
createtableCheckin
(Emp_Idintprimarykey,
CheckDateint,
qqDaysint,
ccDaysint,
bjDaysint,
sjDaysint,
cdMinutesint,
OtDaysint,
Memochar(200),
);
createtableEvaluation
(Emp_Idintprimarykey,
EvaMonthint,
ztEvachar
(2),
jlReasonchar(40),
jlAmountint,
cfReasonchar(40),
cfAmountint,
Memochar(200),
);
createtableUsers
(UserNamechar(8),
Pwdchar(20),
User_typechar(10),
primarykey(UserName,Pwd),
);
五、系统详细设计
要求:
含功能需求、用户界面设计、程序代码设计与分析、运行结果。
通过对公司实际情况分析,公司人事管理系统应该具备录入新职员并对其相应信息进行修改的能力,以及对该职员其他方面信息进行查询和修改的功能。
我设计的人事管理系统可以实现对对员工基本信息查询,考勤状况查询,考评查询,并且还可以进行员工信息的添加,所在部门进行调整,以及对其考勤状况进行清除等功能。
通过对以上功能的分析,编写出具有相应功能的代码。
管理员登陆界面代码:
privatevoidbutton1_Click(objectsender,EventArgse)
{
if(textBox1.Text=="peng"&&textBox2.Text=="456123")
{
(newForm1()).Show();
}
else
{
MessageBox.Show("用户名或密码错误或为空,请重新输入");
}
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
Application.Exit();
}
员工基本信息查询的代码:
privatevoidbutton1_Click(objectsender,EventArgse)
{
SqlConnectionthisConnection=newSqlConnection("DataSource=localhost;IntegratedSecurity=SSPI;InitialCatalog=人事管理");
SqlCommandthisCommand=newSqlCommand("select*fromEmployeeswhereEmp_id='"+textBox1.Text+"'",thisConnection);
SqlDataAdapterthisAdapter=newSqlDataAdapter();
thisAdapter.SelectCommand=thisCommand;
DataSetthisDataSet=newDataSet();
thisConnection.Open();
thisAdapter.Fill(thisDataSet,"Employees");
dataGridView1.DataSource=thisDataSet.Tables[0];
thisConnection.Close();
}
添加新员工的代码:
privatevoidbutton2_Click(objectsender,EventArgse)
{
SqlConnectionthisConnection=newSqlConnection("DataSource=localhost;IntegratedSecurity=SSPI;InitialCatalog=人事管理");
SqlCommandthisCommand=newSqlCommand("insertintoEmployees(Emp_id,Emp_Name,Sex,Dep_Id,Nationality)values('"+textBox2.Text+"','"+textBox3.Text+"','"+textBox4.Text+"','"+textBox5.Text+"','"+comboBox1.Text+"')",thisConnection);
SqlDataAdapterthisAdapter=newSqlDataAdapter();
thisAdapter.SelectCommand=thisCommand;
DataSetthisDataSet=newDataSet();
thisConnection.Open();
thisAdapter.Fill(thisDataSet,"Employees");
if(thisDataSet!
=null)
{
MessageBox.Show("人员成功录入!
");
}
thisConnection.Close();
}
删除员工的代码:
privatevoidbutton8_Click(objectsender,EventArgse)
{
SqlConnectionthisConnection=newSqlConnection("DataSource=localhost;IntegratedSecurity=SSPI;InitialCatalog=人事管理");
SqlCommandthisCommand=newSqlCommand("deletefromEmployeeswhereEmp_Id='"+textBox11.Text+"'",thisConnection);
SqlDataAdapterthisAdapter=newSqlDataAdapter();
thisAdapter.SelectCommand=thisCommand;
DataSetthisDataSet=newDataSet();
thisConnection.Open();
thisAdapter.Fill(thisDataSet,"Employees");
if(thisDataSet!
=null)
{
MessageBox.Show("员工删除成功!
");
}
thisConnection.Close();
}
对员工部门进行调整的代码:
privatevoidbutton3_Click(objectsender,EventArgse)
{
SqlConnectionthisConnection=newSqlConnection("DataSource=localhost;IntegratedSecurity=SSPI;InitialCatalog=人事管理");
SqlCommandthisCommand=newSqlCommand("updateEmployeessetDep_Id='"+textBox8.Text+"'whereEmp_id='"+textBox6.Text+"'andEmp_Name='"+textBox7.Text+"'",thisConnection);
SqlDataAdapterthisAdapter=newSqlDataAdapter();
thisAdapter.SelectCommand=thisCommand;
DataSetthisDataSet=newDataSet();
thisConnection.Open();
thisAdapter.Fill(thisDataSet,"Employees");
if(thisDataSet!
=null)
{
MessageBox.Show("部门修改成功!
");
}
thisConnection.Close();
}
考勤状态查询的代码:
privatevoidbutton6_Click(objectsender,EventArgse)
{
SqlConnectionthisConnection=newSqlConnection("DataSource=localhost;IntegratedSecurity=SSPI;InitialCatalog=人事管理");
SqlCommandthisCommand=newSqlCommand("select*fromCheckinwhereEmp_id='"+textBox1.Text+"'",thisConnection);
SqlDataAdapterthisAdapter=newSqlDataAdapter();
thisAdapter.SelectCommand=thisCommand;
DataSetthisDataSet=newDataSet();
thisConnection.Open();
thisAdapter.Fill(thisDataSet,"Checkin");
dataGridView1.DataSource=thisDataSet.Tables[0];
thisConnection.Close();
}
员工考勤清除的代码:
privatevoidbutton5_Click(objectsender,EventArgse)
{
SqlConnectionthisConnection=newSqlConnection("DataSource=localhost;IntegratedSecurity=SSPI;InitialCatalog=人事管理");
SqlCommandthisCommand=newSqlCommand("deletefromCheckinwhereEmp_Id='"+textBox10.Text+"'andCheckDate='"+comboBox2.Text+"'",thisConnection);
SqlDataAdapterthisAdapter=newSqlDataAdapter();
thisAdapter.SelectCommand=thisCommand;
DataSetthisDataSet=newDataSet();
thisConnection.Open();
thisAdapter.Fill(thisDataSet,"Checkin");
if(thisDataSet!
=null)
{
MessageBox.Show("考勤清除成功!
");
}
thisConnection.Close();
}
员工考评查询的代码:
privatevoidbutton7_Click(objectsender,EventArgse)
{
SqlConnectionthisConnection=newSqlConnection("DataSource=localhost;IntegratedSecurity=SSPI;InitialCatalog=人事管理");
SqlCommandthisCommand=newSqlCommand("select*fromEvaluationwhereEmp_id='"+textBox1.Text+"'",thisConnection);
SqlDataAdapterthisAdapter=newSqlDataAdapter();
thisAdapter.SelectCommand=thisCommand;
DataSetthisDataSet=newDataSet();
thisConnection.Open();
thisAdapter.Fill(thisDataSet,"Evaluation");
dataGridView1.DataSource=thisDataSet.Tables[0];
thisConnection.Close();
}
退出该系统的代码:
privatevoidbutton4_Click(objectsender,EventArgse)
{
Application.Exit();
}
用visualstudio2008启动和调试上面代码,代码都运行无误。
六、系统使用说明
要求:
说明本系统使用的方法,含用户名、密码、及路径的设置情况等。
该系统主要功能是可以对公司人员进行查询,增加,删除,修改。
打开主程序运行该系统,首先进入登录界面:
正确键入用户名和密码后可成功进入铝矿公司人事管理系统主界面:
(如果键入的用户名和密码错误,则会出现提示信息“用户名或密码错误或为空,请重新输入”)
下面使用该人事管理系统进行员工添加操作:
(员工编号:
1115,姓名:
张伟,性别:
男,所在部门号:
2,民族:
汉)
对刚增加的员工信息进行查询:
对员工部门进行调整:
删除员工信息:
点“退出”按钮,即可退出该人事管理系统。
参考文献
要求:
含著作、教材、期刊论文等,一般不少于10篇。
1.于永彦,于长辉,于坤.C++程序设计——面向对象程序设计学习辅导资料之二.淮阴工学院:
淮阴工学院教务处,2007(12):
1~36
2.郑阿奇等.VisualC++实用教程.北京:
电子工业出版社,2000。
3.王珊,萨师煊。
数据库系统概论。
高等教育出版社。
4.毛昶熙,周名德等.闸坝工程水力学与设计管理.北京:
水利电力出版社。
5.唐红亮.SQLServer数据库设计与系统开发教程[M].北京:
清华大学出版社,2007.10.
6.乔彪,赵云虎,赵映明.高校学生管理信息系统的构建与应用[J].内蒙古农业大学学报(社会科学版),2003,4
(2):
23-25.
7.李涛.C++:
面向对象程序设计.北京:
高等教育出版,2006
(2).
8.顾明远.学校学生管理运作全书[M].开明出版社,1995,58-65.
9.苗春义.Java项目开发全程实录[M].北京:
清华大学出版社,2004.6.10.Tanzi,Vito.Theoryandpolicy:
AcommentonDixieandoncurrenttaxtheory.InternationalMonetaryandFundStaffPaper(IMF),Vol.39,No.4,1992:
957-966
11.JoshuaBloch.EffectiveJavaProgrammingLanguageGuide.2001.5
12.BruceEckel.ThinkinginJava(3rdEdition).2002.12