数据库课程设计 人事管理系统.docx

上传人:b****2 文档编号:2824570 上传时间:2023-05-04 格式:DOCX 页数:50 大小:2.48MB
下载 相关 举报
数据库课程设计 人事管理系统.docx_第1页
第1页 / 共50页
数据库课程设计 人事管理系统.docx_第2页
第2页 / 共50页
数据库课程设计 人事管理系统.docx_第3页
第3页 / 共50页
数据库课程设计 人事管理系统.docx_第4页
第4页 / 共50页
数据库课程设计 人事管理系统.docx_第5页
第5页 / 共50页
数据库课程设计 人事管理系统.docx_第6页
第6页 / 共50页
数据库课程设计 人事管理系统.docx_第7页
第7页 / 共50页
数据库课程设计 人事管理系统.docx_第8页
第8页 / 共50页
数据库课程设计 人事管理系统.docx_第9页
第9页 / 共50页
数据库课程设计 人事管理系统.docx_第10页
第10页 / 共50页
数据库课程设计 人事管理系统.docx_第11页
第11页 / 共50页
数据库课程设计 人事管理系统.docx_第12页
第12页 / 共50页
数据库课程设计 人事管理系统.docx_第13页
第13页 / 共50页
数据库课程设计 人事管理系统.docx_第14页
第14页 / 共50页
数据库课程设计 人事管理系统.docx_第15页
第15页 / 共50页
数据库课程设计 人事管理系统.docx_第16页
第16页 / 共50页
数据库课程设计 人事管理系统.docx_第17页
第17页 / 共50页
数据库课程设计 人事管理系统.docx_第18页
第18页 / 共50页
数据库课程设计 人事管理系统.docx_第19页
第19页 / 共50页
数据库课程设计 人事管理系统.docx_第20页
第20页 / 共50页
亲,该文档总共50页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

数据库课程设计 人事管理系统.docx

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

数据库课程设计 人事管理系统.docx

数据库课程设计人事管理系统

福建工程学院

 

课程设计

 

课程:

数据库课程设计

题目:

人事管理系统

专业:

信息管理与信息系统

班级:

0903

座号:

01、02

姓名:

王美荷许飞宾

 

2011年2月21日

一、系统定义

一个公司的管理离不开人事管理,对于现代社会的公司管理,人事管理系统是不可或缺的一部分,它为人事管理部门的工作人员提供多种方式的人事查询以及统计功能,另外还提供对企业的人事调动(包括添加新员工、人员退休、人员辞职等)、人员信息的改动(包括职工增加工资、给退休员工发放退休金等)以及查询企业员工信息等操作。

二、需求分析

1、系统功能的基本要求:

1)员工各种信息的输入与修改,包括员工的基本信息、学历信息、婚姻状况信息、职称,简历,考核结果等。

2)对于转出、辞职、辞退、退休员工信息的处理;

3)按照一定的条件,查询、统计符合条件的员工信息;

2、给出系统的逻辑模型:

数据流程图、数据字典

第一层数据流

图1员工信息管理数据流

图2部门信息管理数据流

图3人事调动数据流

图4工资管理数据流

第二层数据流

三、系统设计

1、概念结构设计

画出系统E-R图。

各分E-R图

 

 

 

 

 

2、逻辑结构设计

员工(工号,名字,性别,出生日期,部门号,职务,学历,电话,ID)

部门(部门号,部门名称,部门人数,职能描述)

工资(工号,工资)

加班(员工号,月份,姓名,天数,钱)

奖金(员工号,月份,姓名,钱)

出勤表(工号,考勤日期,全勤天数,迟到天数,病假天数,事假天数)

用户表1(用户名,密码)

用户表2(用户名,密码)

考核表(工号,名字,考核时间,交际能力,专业能力,身体能力)

离职表(工号,名字,性别,出生日期,部门号,职务,学历,电话,ID)

3、系统功能模块图

4、其它设计图形工具

四、详细设计

存储过程:

Createprocedurebumengengxin1

@Dcountint,

@Dnochar

(2)

as

updatedepartment

setDcount=@Dcount

whereDno=@Dno

createprocedurebumeninsert

@Dnochar

(2),

@Dnamechar(10),

@Dcountint,

@Djianjiechar(40)

as

insertintodepartmentvalues(@Dno,@Dname,@Dcount,@Djianjie)

createPROCEDUREcharu

@Enochar(10),

@Dnochar(10),

@Enamechar(20),

@Esexchar

(2),

@Ebirchar(20),

@Ezhiwuchar(10),

@Exuelichar(10),

@Etelchar(11),

@EIDchar(18)

AS

INSERTINTOemployeeVALUES(@Eno,@Dno,@ename,@esex,@ebir,@ezhiwu,@exueli,@etel,@eid)

CreatePROCEDUREchaxun

@Enochar(10)

AS

SELECT*FROMemployee

whereEno=@Eno

createproceduregengxin

@bnochar(10),

@Enochar(10),

@Dnochar(10),

@Enamechar(20),

@Esexchar

(2),

@Ebirchar(20),

@Ezhiwuchar(10),

@Exuelichar(10),

@Etelchar(11),

@EIDchar(18)

as

updateemployee

setEno=@Eno,Dno=@Dno,Ename=@Ename,Esex=@Esex,Ebir=@Ebir,Ezhiwu=@Ezhiwu,Exueli=@Exueli,Etel=@Etel,EID=@EID

whereEno=@bno

createproceduregengxin3

@Enochar(10),

@Enamechar(20),

@datachar(10),

@jiaojichar(4),

@zhuanyechar(4),

@shentichar(4)

as

updatekaohe

setEno=@Eno,Ename=@Ename,data=@data,交际能力=@jiaoji,专业技能=@zhuanye,身体素质=@shenti

whereEno=@Enoanddata=@data

createprocedureguanliyuan5

@Gnochar(10),

@passwordchar(10)

as

updateguanliyuan

setGpassword=@password

whereGno=@Gno--andGpassword=@password

createprocedureKcharu

@enochar(10),

@enamechar(20),

@datachar(10),

@jineng1char(10),

@jineng2char(10),

@jineng3char(10)

as

insertintokaohevalues(@eno,@ename,@data,@jineng1,@jineng2,@jineng3)

createproceduresuangongzi

@Enochar(10),

@datechar

(2),

@gongzitchar(5)output

as

declare@gongziint,@money1int,@money2int,@chidaoint,@shijiaint,@bingjiaint,@gongzi1int,@Jmoneyint,@Amoneyint

select@chidao=chidao,@bingjia=bingjia,@shijia=shijia,@gongzi1=gongzi,@Jmoney=Jmoney,@Amoney=AmoneyfromyuegongziwhereEno=@EnoandJyuefen=@date

if@chidao>3

begin

set@money1=(@chidao-3)*10

end

else

set@money1=0

set@money2=(@shijia+@bingjia)*50

set@gongzi=@gongzi1+@Jmoney+@Amoney-@money1-@money2

set@gongzit=convert(varchar(5),@gongzi)

print'钱'+@gongzit

createPROCEDUREtianjia

@Dnochar(10),

@Dnamechar(20),

@Dcountint,

@jianjiechar(40)

AS

INSERTINTOdepartmentVALUES(@Dno,@dname,@Dcount,@jianjie)

createprocedureyuangong1

@Ynochar(10),

@passwordchar(10)

as

updateyuangong

setYpassword=@password

whereYno=@Yno

createprocedureyuangongalter

@Enochar(10),

@Enamechar(10),

@Esexchar

(2),

@Etelchar(11)

as

updateemployee

setEname=@Ename,Esex=@Esex,Etel=@Etel

whereEno=@Eno

 

触发器

CREATETRIGGERtrig_lizhi

ONemployee

FORDELETE

AS

print'开始备份数据,请稍后......'

IFNOTEXISTS(SELECT*FROMsysobjects

WHEREname='lizhi')

SELECT*INTOlizhiFROMdeleted

ELSE

INSERTINTOlizhiSELECT*FROMdeleted

print'备份数据成功,备份表中的数据为:

'

SELECT*FROMlizhi

GO

CreateTRIGGERtrig_zhuanchu

ONemployee

FORupdate

AS

declare@zhiwuchar(10),@nochar(10)

SELECT@zhiwu=Ezhiwu,@no=DnoFROMinserted

CREATETRIGGERtrig_jiaban

ONyuegongzi

FORINSERT

AS

SELECTEno,Ename,tianshu,Ayuefen,AmoneyintojiabanFROMinserted

selectEno,Ename,Jmoney,Jyuefenintojiangjinfrominserted

selectEno,Ename,Jyuefen,chidao,bingjia,shijia

创建月工资表

selectjiaban.Eno,jiaban.Ename,salary.gongzi,jiaban.tianshu,jiaban.Amoney,chuqin.chidao,chuqin.bingjia,chuqin.shijia,jiangjin.Jmoney,jiangjin.Jyuefen

intoyuegongzifromjiaban,jiangjin,chuqin,salary

wheresalary.Eno=jiaban.Enoandjiaban.Eno=jiangjin.Enoandjiangjin.Eno=chuqin.Eno

andjiaban.Ayuefen=chuqin.dataandchuqin.data=jiangjin.Jyuefen

GROUPBYsalary.Eno,jiaban.Eno,jiangjin.Eno,jiaban.tianshu,chuqin.Eno,jiaban.Ayuefen,chuqin.data,jiangjin.Jyuefen,salary.gongzi,jiaban.Amoney,chuqin.chidao,chuqin.bingjia,chuqin.shijia,jiangjin.Jmoney,jiangjin.Jyuefen,jiaban.Ename

 

主要的表

1、出勤表

2、部门表

3、员工表

4、管理员登入用户表

5、加班表

6、奖金表

7、考核表

8、离职表

9、固定工资表

10、员工登入表

11、算工资的表

12、转出表

五、系统实现与测试

1、开发平台和工具选择

说明选择原因、环境要求等。

2、系统测试

连接数据库的代码:

procedureTForm1.Button1Click(Sender:

TObject);

begin

datamodule3.adoconnection1.Close;

datamodule3.adoconnection1.ConnectionString:

='provider=SQLOLEDB.1;Password="'+edit3.Text+'";PersistSecurityInfo=true;UserID='+edit2.Text+';InitialCatalog='+combobox1.text+';DataSource='+edit1.Text;

datamodule3.adoquery1.Connection:

=datamodule3.adoconnection1;

datamodule3.adoconnection1.LoginPrompt:

=false;

datamodule3.datasource1.DataSet:

=datamodule3.adoquery1;

dbgrid1.DataSource:

=datamodule3.datasource1;

form2.show;

end;

procedureTForm1.ComboBox1DropDown(Sender:

TObject);

var

i:

integer;

begin

datamodule3.adoconnection1.ConnectionString:

='provider=SQLOLEDB.1;Password="'+edit3.Text+'";PersistSecurityInfo=true;UserID='+edit2.Text+';InitialCatalog=master;DataSource='+edit1.Text;

datamodule3.adoconnection1.LoginPrompt:

=false;

datamodule3.adoquery2.Connection:

=datamodule3.adoconnection1;

datamodule3.adoconnection1.LoginPrompt:

=false;

datamodule3.adoquery2.Close;

datamodule3.adoquery2.sql.Clear;

datamodule3.adoquery2.SQL.Add('select*fromsysdatabases');

datamodule3.adoquery2.Open;

fori:

=0todatamodule3.adoquery2.RecordCount-1do

begincombobox1.Items.Add(datamodule3.adoquery2.FieldValues['name']);

datamodule3.adoquery2.Next;

end;

end;

end.

登入界面的代码:

procedureTForm2.Button1Click(Sender:

TObject);

begin

ifradiobutton1.Checkedthen

begin

datamodule3.adoquery1.Close;

datamodule3.adoquery1.SQL.Clear;

datamodule3.adoquery1.SQL.Add('select*fromguanliyuan');

datamodule3.adoquery1.SQL.Add('whereGno='''+edit1.text+'''andGpassword='''+edit2.Text+'''');

datamodule3.adoquery1.Open;

ifdatamodule3.adoquery1.RecordCount>0then

begin

form1.hide;

form4.show;

end

else

showmessage('用户名不存在或者权限错误,请查证后输入');

edit2.Clear

end

else

ifradiobutton2.Checkedthen

begin

datamodule3.adoquery1.Close;

datamodule3.adoquery1.SQL.clear;

datamodule3.adoquery1.SQL.add('select*fromyuangong');

datamodule3.adoquery1.SQL.add('whereYno='''+edit1.text+'''andYpassword='''+edit2.text+'''');

datamodule3.adoquery1.Open;

ifdatamodule3.adoquery1.RecordCount>0then

begin

form1.hide;

form5.show;

end

else

showmessage('用户名不存在或者权限错误,请查证后输入');

edit2.Clear;

end;

end;

procedureTForm2.Button2Click(Sender:

TObject);

begin

form2.Close;

end;

end.

代码:

procedureTForm4.N2Click(Sender:

TObject);

begin

form6.show;

end;

procedureTForm4.RadioButton1Click(Sender:

TObject);

begin

form6.Show;

end;

procedureTForm4.RadioButton2Click(Sender:

TObject);

begin

form7.show;

end;

procedureTForm4.RadioButton6Click(Sender:

TObject);

begin

form4.close;

end;

procedureTForm4.RadioButton3Click(Sender:

TObject);

begin

form8.show;

end;

procedureTForm4.RadioButton4Click(Sender:

TObject);

begin

form12.show;

end;

procedureTForm4.RadioButton5Click(Sender:

TObject);

begin

form10.show;

end;

end.

代码:

procedureTForm5.RadioButton5Click(Sender:

TObject);

begin

form5.close;

end;

procedureTForm5.RadioButton1Click(Sender:

TObject);

begin

form14.show;

end;

procedureTForm5.RadioButton4Click(Sender:

TObject);

begin

form17.show;

end;

procedureTForm5.RadioButton3Click(Sender:

TObject);

begin

form15.show;

end;

procedureTForm5.RadioButton2Click(Sender:

TObject);

begin

form16.show;

end;

end.

代码:

procedureTForm6.Button5Click(Sender:

TObject);

begin

form6.close;

end;

procedureTForm6.Button1Click(Sender:

TObject);

begin

withDataModule3.ADOquery3do

begin

Close;//修改SQL语句之前先关闭Query组件

SQL.Clear;//清除旧的SQL语句

sql.Add('execcharu'+''''+edit1.text+''','''+edit2.text+''','''+edit3.text+''','''+edit4.text+''','''+edit5.text+''','''+edit6.text+''','''+edit7.text+''','''+edit8.text+''','''+edit9.Text+'''');

ExecSQL;

Close;

SQL.Clear;

SQL.Add('SELECT*FROMemployee');

Open;

end;

end;

procedureTForm6.Button3Click(Sender:

TObject);

begin

datamodule3.adoquery3.Connection:

=datamodule3.adoconnection1;

datamodule3.datasource1.DataSet:

=datamodule3.adoquery3;

dbgrid1.DataSource:

=datamodule3.datasource1;

withDataModule3.ADOquery3do

begin

Close;//修改SQL语句之前先关闭Query组件

SQL.Clear;//清除旧的SQL语句

sql.Add('select*fromemployee');

sql.Add('whereEno='''+edit10.text+'''');

open;

end;

end;

procedureTForm6.Button2Click(Sender:

TObject);

begin

withDataModule3.ADOquery3do

begin

Close;//修改SQL语句之前先关闭Query组件

SQL.Clear;//清除旧的SQL语句

sql.Add('execgengxin'+''''+edit10.text+''','''+edit1.text+''','''+edit2.text+''','''+edit3.text+''','''+edit4.text+''','''+edit5.text+''','''+edit6.text+''','''+edit7.text+''','''+edit8.text+''','''+edit9.Text+'''');

ExecSQL;

Close;

SQL.Clear;

SQL.Add('SELECT*FROMemployee');

sql.Add('whereEno='''+edit10.text+'''');

Open;

end;

end;

procedureTForm6.Button4Click(Sender:

TObject);

begin

form11.show;

end;

procedureTForm6.DBGrid1CellClick(Colu

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

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2