数据库课程设计 人事管理系统.docx
- 文档编号:11771790
- 上传时间:2023-04-01
- 格式:DOCX
- 页数:50
- 大小:2.48MB
数据库课程设计 人事管理系统.docx
《数据库课程设计 人事管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计 人事管理系统.docx(50页珍藏版)》请在冰豆网上搜索。
数据库课程设计人事管理系统
福建工程学院
课程设计
课程:
数据库课程设计
题目:
人事管理系统
专业:
信息管理与信息系统
班级:
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库课程设计 人事管理系统 数据库 课程设计