数据库课程设计报告人事管理.docx

上传人:b****6 文档编号:6035428 上传时间:2023-01-03 格式:DOCX 页数:25 大小:451.06KB
下载 相关 举报
数据库课程设计报告人事管理.docx_第1页
第1页 / 共25页
数据库课程设计报告人事管理.docx_第2页
第2页 / 共25页
数据库课程设计报告人事管理.docx_第3页
第3页 / 共25页
数据库课程设计报告人事管理.docx_第4页
第4页 / 共25页
数据库课程设计报告人事管理.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

数据库课程设计报告人事管理.docx

《数据库课程设计报告人事管理.docx》由会员分享,可在线阅读,更多相关《数据库课程设计报告人事管理.docx(25页珍藏版)》请在冰豆网上搜索。

数据库课程设计报告人事管理.docx

数据库课程设计报告人事管理

 

数据库课程设计报告

人事与工资管理系统

 

班级:

 地信

序号:

    

姓名:

  

地球科学学院地信系

2014-06-21

目录

 

1概述1

2需求分析1

2.1问题陈述1

2.2功能分析1

2.3操作流程2

2.4ER模型图2

3数据库逻辑设计4

4数据库设计部分(T-SQL)6

4.1为id创建规则6

4.2创建视图sworker7

4.3创建视图tf,并建触发器7

4.4创建的主外键关系图8

5软件功能设计8

6界面设计9

6.1登陆界面9

6.2新员工信息录入10

6.3职工信息查询10

6.4个人信息修改11

6.5资源管理11

7应用程序12

7.1个人信息录入12

7.2随机生成员工号14

7.3取身份证后6位为初始密码14

7.4模糊查询14

8实验数据示例19

9心得19

 

1概述

开发环境

操作系统:

windowsXP或windows7

数据库平台:

SQLServer2008

编程工具:

MicrosoftVisualStudio2010

2需求分析

2.1问题陈述

企业人事管理系统主要用于员工个人资料的录入、职务变动的记录和管理。

使用人事管理系统,便于公司领导掌握人员的动向,及时调整人才的分配。

计算各员工每个月工实发工资计算,计算的项目包括基本工资、奖金、福利、津贴等。

2.2功能分析

(1)新员工资料的输入。

(2)自动分配员工号,并且设置初始的用户密码。

(3)人事变动的详细记录,包括岗位和部门的调整。

(4)员工信息的查询和修改,包括员工个人信息和密码等。

(5)员工基本工资的设定。

(6)资金以及褔利补贴的设置。

(7)实发工资计算公式的调整。

(8)根据出勤统计结果计算本月各项实际金额

(9)输出工资报表。

2.3操作流程

2.4ER模型图

个人资料(身份证号,姓名,性别,出生年月,年龄,联系电话,地址,

专业,毕业院校,毕业时间)

部门表(部门号,部门名称,部门基本工资比,部门全勤奖励比)

职业表(职业号,职业名称,基本工资,全勤奖)

职工表(职工号,身份证号,初始密码,现在密码,部门号,职业号码)

职位调动表(职工号,原部门号,原职业号,调动部门号,调动职业号,调动时间)

工资表(职工号,基本工资,福利,津贴,奖惩,全勤奖励,实发工资)

全勤表(职工号,全勤记录)

3数据库逻辑设计

ER模型图转换为关系表

表名

列名

说明

数据类型

是否允许空

主外键

约束

默认值

个人资料

(PersonalInfomation)PI

id

身份证号

char(18)

主键

18位数字,最后一位可为X

name

姓名

char(10)

sex

性别(1:

男,0:

女)

bit

1

birthday

出生年月

smalldatetime

age

年龄

int

根据生日自动计算

telephone

联系电话

char(11)

address

地址

char(20)

major

专业

char(10)

school

毕业院校

char(16)

graduate

毕业时间

smalldatetime

部门

(Department)DP

dnumber

部门号

char

(2)

主键

dname

部门名称

char(8)

radio

基本工资比

float

1

scale

部门全勤奖励比

float

1

职业表

(Profession)PF

pnumber

职业号

char

(2)

pname

职业名称

char(8)

basic

基本工资

int

1500

qqj

全勤奖

int

200

职工表

(Worker)W

number

职工号(入职年份+)

char(10)

主键

id

身份证号

char(18)

来源于个人信息表

fpassword

初始密码

char(6)

身份证后6位

password

现密码

char(6)

与初始密码相同

dnumber

部门号

char

(2)

来源于部门表

pnumber

职业号

char

(2)

来源于职业表

职工调动表(TransformeWorker)TW

 

number

职工号

char(10)

主键

来源于职工表

fdnumber

原部门号

char

(2)

主键

来源于职工表

fpnumber

原职业号

char

(2)

主键

来源于职工表

ndnumber

新部门号

char

(2)

主键

来源于部门表

npnumber

新职业号

char

(2)

主键

来源于职业表

time

调动时间

smalldatetime

主键

系统当前时间

出勤表

(Attendance)AT

number

职工号

char(10)

主键

来源于职工表

record

全勤记录(工作日)

int

0

工资表

(SalaryTable)ST

number

职工号

char(10)

主键

来源于职工表

sbasic

基本工资

float

根据部门与职业计算

职业

welfare

福利

int

0

allowance

津贴

int

0

reward

奖惩

int

0

faa

全勤奖励

float

根据部门、职业和出勤时间计算

salary

实发工资

float

4数据库设计部分(T-SQL)

4.1为id创建规则

限制身份号码为18且第一位不能为0和不能为100000000000000000

USEPA

GO

CREATERULEru_id

AS

(@idlike'[1-9][0-9][0-9][0-9][0-9][0-9][1-2][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'

or@idlike'[1-9][0-9][0-9][0-9][0-9][0-9][1-2][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][X]')

and@idnotlike'[1][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0]'

GO

EXECsp_bindrule'ru_id','PI.id'

GO

4.2创建视图sworker

USEPA

GO

CREATEVIEWsworkerWITHENCRYPTION

AS

SELECTPI.idas'身份证号',numberas'工号',nameas'姓名',sexas'性别',ageas'年龄',majoras'专业',schoolas'学校',xuelias'学历',dnameas'部门',pnameas'职务',W.dnumberas'部门号',W.pnumberas'职务号'

FROMPI,W,DP,PF

WHEREPI.id=W.idANDW.dnumber=DP.dnumberANDW.dnumber=PF.pnumber

GO

4.3创建视图tf,并建触发器

实现向视图插入数据时实现向职工调动表插入相应记录

USEPA

GO

CREATEVIEWtf

as

SELECTnumber,ndnumber,npnumber

fromTW

GO

USEPA

GO

CREATETRIGGERT

ONtfinsteadofinsert

AS

BEGIN

DECLARE@NCHAR(8),@DNCHAR

(2),@PNchar

(2)

select@N=number,@DN=ndnumber,@PN=npnumberfrominserted

INSERTINTOTW(number,ndnumber,npnumber)VALUES(@N,@DN,@PN)

UPDATEWSETdnumber=@DN,pnumber=@PNwherenumber=@N

END

4.4创建的主外键关系图

 

5软件功能设计

人事管理系统

资源管理

新员工入职

工资管理

信息管理

 

信息录入

分配职务

职工信息查询

个人信息修改

部门管理

职业管理

职工调动管理

职工调动查询

报表输出

工资计各算项设定

 

6界面设计

6.1登陆界面

6.2新员工信息录入

6.3职工信息查询

6.4个人信息修改

6.5资源管理

7应用程序

7.1个人信息录入

privatevoidbutton1_Click(objectsender,EventArgse)

{

OpenFileDialogopenFileDialog=newOpenFileDialog();openFileDialog.InitialDirectory=Environment.GetFolderPath(Environment.SpecialFolder.Personal);

openFileDialog.Filter="jpg图片|*.jpg|gif图片|*.gif|所有文件(*.*)|*.*";

if(openFileDialog.ShowDialog(this)==DialogResult.OK)

{

stringFileName=openFileDialog.FileName;

pictureBox1.Image=Image.FromFile(FileName);

textBox9.Text=FileName;

}

}

 

publicvoidbutton2_Click(objectsender,EventArgse)

{

if(textBox1.Text==""||textBox2.Text==""||textBox3.Text=="")

{

MessageBox.Show("请输入完整!

");

return;//如果没输入完整则返回

}

stringsqlStr;

SqlConnectionconn=newSqlConnection(strcon);

if(textBox9.Text.Trim()!

="")//如果选择了照片

{sqlStr="insert[PI]([id],[name],[sex],[birthday],[telephone],[address],[major],[school],[xueli],[graduate],[photo])values(@ID,@Name,@Sex,@Birthday,@Telephone,@Address,@Major,@School,@Xueli,@Gradulate,@Photo)";//设置Sql语句

}

else//如果没现在照片{sqlStr="insert[PI]([id],[name],[sex],[birthday],[telephone],[address],[major],[school],[xueli],[graduate])values(@ID,@Name,@Sex,@Birthday,@Telephone,@Address,@Major,@School,@Xueli,@Gradulate)";//设置Sql语句

}

SqlCommandcmd=newSqlCommand(sqlStr,conn);//添加参数cmd.Parameters.Add("@ID",SqlDbType.Char,18).Value=textBox1.Text.Trim()cmd.Parameters.Add("@Name",SqlDbType.Char,10).Value=textBox2.Text.Trim();

if(radioButton1.Checked==true)

{

cmd.Parameters.Add("@Sex",SqlDbType.Bit).Value=true;

}

elseif(radioButton2.Checked==true)

{

cmd.Parameters.Add("@Sex",SqlDbType.Bit).Value=false;

}

else

{

MessageBox.Show("请选择性别");

}cmd.Parameters.Add("@Birthday",SqlDbType.Date).Value=Convert.ToDateTime(textBox3.Text.Trim());cmd.Parameters.Add("@Telephone",qlDbType.Char,11).Value=textBox4.Text.Trim();cmd.Parameters.Add("@Address",SqlDbType.Char,20).Value=textBox5.Text.Trim();

cmd.Parameters.Add("@Major",SqlDbType.Char,10).Value=textBox6.Text.Trim();

cmd.Parameters.Add("@School",SqlDbType.Char,16).Value=textBox7.Text.Trim();

cmd.Parameters.Add("@xueli",SqlDbType.Char,4).Value=comboBox1.Text;cmd.Parameters.Add("@Gradulate",SqlDbType.Date).Value=Convert.ToDateTime(textBox8.Text.Trim());

if(textBox9.Text.Trim()!

="")

{

FileStreamfs=null;

fs=newFileStream(textBox9.Text.Trim(),FileMode.Open,FileAccess.Read);

MemoryStreammem=newMemoryStream();

byte[]data1=newbyte[fs.Length];

fs.Read(data1,0,(int)fs.Length);

cmd.Parameters.Add("@Photo",SqlDbType.Image);//这里选择Image类型

cmd.Parameters["@Photo"].Value=data1;//把照片变化成字节数组

}

try

{

conn.Open();//打开数据库连接

cmd.ExecuteNonQuery();//执行SQL语句

MessageBox.Show("保存成功!

");

this.pITableAdapter.Fill(this.pADataSet24.PI);

}

catch(Exceptionex)

{

MessageBox.Show("出错!

"+ex.Message);

}

finally

{

conn.Close();//关闭数据库连接

}

}

7.2随机生成员工号

DateTimenow=DateTime.Now;//取当前时间

Stringstr1=Convert.ToString(now.Year);//取当前时间的年份并转换为字符串

System.Randoma=newRandom(System.DateTime.Now.Millisecond);

intRandKey=a.Next(10000);//用当前时间做种子生成4位随机号码

Stringstr2=Convert.ToString(RandKey);

cmd.Parameters.Add("@Number",SqlDbType.Char,8).Value=str1+str2;//组合为员工号

7.3取身份证后6位为初始密码

cmd.Parameters.Add("@Fpassword",SqlDbType.Char,6).Value=str3.Substring(12,6);

cmd.Parameters.Add("@Password",SqlDbType.Char,6).Value=str3.Substring(12,6);

7.4模糊查询

(按部门、职业、性别任意组合查询)

privatevoidbutton1_Click(objectsender,EventArgse)

{

intSEX;

intD;

intP;

StringDn;

StringPn;

if(comboBox3.Text=="男"){SEX=1;}

elseif(comboBox3.Text=="女"){SEX=1;}

elseSEX=-1;

if(comboBox1.Text==""){D=0;}

elseD=1;

Dn=comboBox1.Text;

if(comboBox2.Text==""){P=0;}

elseP=1;

Pn=comboBox2.Text;

if(D==0&&P==0&&SEX==-1)

{

MessageBox.Show("请输入查询条件!

");

return;//如果没输入完整则返回

}

SqlConnectionconn=newSqlConnection(strcon);

if(D==1&&P==0&&SEX==-1)

{

stringsqlStrSelect="select[工号],[身份证号],[姓名],[性别],[年龄],[专业],[学校],[学历],[职务]from[sworker]where[部门号]='"+Dn+"'";

try

{

SqlDataAdapteradapter=newSqlDataAdapter(sqlStrSelect,conn);

DataSetdstable=newDataSet();

adapter.Fill(dstable,"testTable");

dataGridView1.DataSource=dstable.Tables["testTable"];

dataGridView1.Show();

}

catch(Exceptionex)

{

MessageBox.Show(ex.Message);

}

finally

{

conn.Close();

}

}

if(D==1&&P==0&&SEX!

=-1)

{

stringsqlStrSelect="select[工号],[身份证号],[姓名],[年龄],[专业],[学校],[学历],[职务]from[sworker]where[部门号]='"+Dn+"'and[性别]='"+SEX+"'";

try

{

SqlDataAdapteradapter=newSqlDataAdapter(sqlStrSelect,conn);

DataSetdstable=newDataSet();

adapter.Fill(dstable,"testTable");

dataGridView1.DataSource=dstable.Tables["testTable"];

dataGridView1.Show();

}

catch(Exceptionex)

{

MessageBox.Show(ex.Message);

}

finally

{

conn.Close();

}

}

if(D==1&&P==1&&SEX!

=-1)

{

stringsqlStrSelect="select[工号],[身份证号],[姓名],[年龄],[专业],[学校],[学历]from[sworker]where[部门号]='"+Dn+"'and[性别]='"+Pn+"'and[职务号]='"+Pn+"'";

try

{

SqlDataAdapteradapter=newSqlDataAdapter(sqlStrSelect,conn);

DataSetdstable=newDataSet();

adapter.Fill(dstable,"testTable");

dataGridView1.DataSource=dstable.Tables["testTable"];

dataGridView1.Show();

}

catch(Exceptionex)

{

MessageBox.Show(ex.Message);

}

finally

{

conn.Close();

}

}

if(D==1&&P==1&&SEX==-1)

{

stringsqlStrSelect="select[工号],[身份证号],[姓名],[性别],[年龄],[专业],[学校],[学历]from[sworker]where[部门号]='"+Dn+"'and[职务号]='"+Pn+"'";

try

{

SqlDataAdapteradapter=newSqlDataAdapter(sqlStrSelect,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 机械仪表

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1