版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、福建工程学院课程设计课 程:数据库专周_题目: :人事管理系统设计专 业:计算机科学与技术班级:_座 号:_姓名:_20112011 年 0606 月 0808 日、系统定乂一个公司的管理离不开人事管理,对于现代社会的公司管理, 人事管理系统是不可或缺的一部分,它为人事管理部门的工作人员提供多种方式的人事查询以及统计功能,另外还提供对企业的人事调动 (包括添加新员工、 人员退休、人员辞职等)、人员信息的改动(包括职 工增加工资、给退休员工发放退休金等)以及查询企业员工信息等操作公司管理者可以通过人事管理系统对所有的员工信息进行操作。普通用户只能查看自己的信息(不能对自己的信息进行操作)。二、需
2、求分析1) 员工各种信息的输入与修改,包括员工的基本信息、学历信息、婚姻状况信息、职 称,简历,考核结果等。2)对于转出、辞职、辞退、退休员工信息的处理;3)按照一定的条件,查询、统计符合条件的员工信息;数据流程图:数据字典:对数据流图中出现的对象、处理、存储、数据流进行文字说明解释数据项工资表数据项名数据项含义说明别名数据类型基本工资职工一个月应拿的工资jbgzMoney奖金为公司做贡献奖励jbjiMoney退休金职工退休后一个月应拿的钱jbbackMoney惩罚金职工一个月被因某些原因被扣的工资jbcfMoney员工信息号编X职登来用cc用系联箱由用系联aimme管理员号编员二管份身的人个
3、一别识m un Em e码密员二管登来用z(cc用系联箱由用系联aimme退休表号编工员份身的人个一别识h h c c字名工员份身的人个一别识22)22)z(egae金休退eeoo m数据结构数据结构名含义说明组成人事管理管理公司人事调动员工+员工信息+工资+考勤数据流数据流名说明数据流来源数据流去向组成人员调动记录职工信息变动员工信息表人事部工资发放记录职工的所得金钱变动工资表员工信息表数据存储数据存储名说明编号输入数据流输出数据流组成(数据结构)数据量存取 频度存取 方式人员调 动 记录职工信息 变动R001人事部人事部员工信息表1001/周手工 记录工资信 息记录职工的所 得金钱变动W0
4、01人事部员工表人事部+员工信息表1/月银行 记录处理过程处理过程名说明输入输出处理奖金制度对公司有大贡献的员工奖励(参见公司制度)惩罚制度对违反公司制度的员工惩罚(参见公司制度)2、逻辑结构设计将ER图(或其他概念设计图)转换为具体的DBMS寸应的关系模式:职工(职工编号,姓名,性别,年龄,职务名称,所在部门,电话,家庭住址,籍贯)考勤(迟到,早退,旷工,请假)员工(员工编号,姓名,年龄,性别,职务名称,电话,邮箱)人事部门(个人简历,岗位调动,记事,家庭关系)三、系统设计1、概念结构设计系统ER图:|职工广n考勤、1、家庭住址姓名职务名称加班申请职工编号年龄请假申请迟到籍贯早退性别所在部门
5、n电话n请假属于管理属于管理员编号11个人简历1性别姓名11人事部门管理员管理电话职务名称邮箱年龄管理岗位调动工资管理业绩管理记事关联编号 电话 销售业绩备注家庭关系称呼姓名 关系 单位职务 备注编号 签发日期 签发人 调任日期部门岗位 就职状态备注起始时间结束时间单位/院校部门 职务备注事件发生时间 填写人记事内容n3、系统功能模块图普通用户模块:作为普通用户登入只能查询与自己相关的信息,不能对信息进行修改。管理员模块:作为拥有最高权限的用户,可以查看所有员工的信息,以及对所有员工信息进行修改和增加用户。下设人事系统子模块。人事系统子模块:作为人事管理系统中最重要的模块,可以记录所有员工的基
6、本信息,记录员工家庭成员信息,记录员工职位调动,记录员工为公司所做的重大事件,以及对公司的贡献,还有记录员工的考勤情况。4、其它设计图形工具Delphi 7。0,Microsoft visio 20035、关键代码流程图登陆流程图査i(憎崑m m- -Id illa a_HiJ転丄咗息皆理灯|广甲1i2r r1-閃I-儒一一 i人小仁世叩诸首理开始如何算工资触发器流程图(四、详细设计主要的SQL语句:1.创建数据库:create database pers onGo2.创建员工工表create table employee(empInum varchar(11),emplmm varchar(
7、10).(emplname varchar(10),emplage varchar(3), emplsex char(2),emplphone varchar(11) unique, emplmail varchar(30),empladdress varchar(50), judge varchar(10),primarykey(emplnum) )3.创建工资表create table gongzi(gznum varchar(11), gzname varchar(10),jbgz money, jbjl money,jbback money, jbcf money,month_tota
8、lmoney,leaving char(10),primary key(gznum,gzname),foreign key(gznum)references employee(emplnum)on deletecascade on update cascade)4.创建个人简历表create table gerenjianli(genum varchar(11),gename varchar(10),face varchar(10),marry varchar(10), school varchar(20),bumen varchar(20), zhiwu varchar(20),gbeizu
9、 varchar(50),primary key(genum),foreign key(genum) references employee(emplnum)on delete cascade on update cascade)5.创建家庭关系表create table famillyfamnum varchar(11) ,famname varchar(10), fnamevarchar(10),mname varchar(10), fdanwei varchar(20), fbeizuvarchar(30),primary key(famnum,famname), foreignkey(
10、famnum) references employee(emplnum)on delete cascade,on update cascade,)6.创建记事表create table note(nnum varchar(11) ,nname varchar(10),happentimedatetime,notename varchar(10),noting varchar(50), primarykey(nnum,nname),foreign key(nnum) referencesemployee(emplnum) on delete cascade on update cascade)7
11、.创建考勤记录表create table kaoqin(knum varchar(11),kname varchar(10), kqtime datetime,qingjia varchar(10), days smallint,-时间多少shenhe varchar(10), -审核begintime datetime,overtimedatetime,beizu varchar(50), primary key(knum,kname),(foreign key(knum)references employee(emplnum)on deletecascade on update casca
12、de)8.创建岗位调动表create table gwdiaodongon update cascade)11.创建销售表create table sell(snum varchar(11) primary key sname varchar(20), sphone varchar(11), sqty varchar(10),sbeizu varchar(40),foreign key(snum)references employee(emplnum)on delete cascadeon update cascadegwnum varchar(11), gwname varchar(10),
13、qianfatime datetime, qianfaname varchar(10), diaorenriqi datetime, bumen varchar(20), gangwei varchar(20),beizuvarchar(50),primary key(gwnum,gwname),foreign key(gwnum)references employee ondelete cascadeemplnum)on updatecascade)9。 创建退休表createtable retire(renum charrename varcharreage int checkreback
14、 money,rephone varchar(11readdress varchar10) primary key,(20),reage60),),40),)10。 创建加班申请表create table jiaban(jbnum varcharjbname varcharshenhe varchar11)(20), (20),begintimedatetime,overtimedatetime, beizu varchar(50foreign key(jbnum on deletecascadeprimary key,),)references employeeemplnum)工资表修改触发
15、器create trigger trig_gongzi on gongzifor updateasdeclarebeforem ymonth int,aftermy monthin t,mygz numvarchar(11),myjbgz varchar(10),myjbjl int,mybback int,beforemyjbcfint,aftermyjbcf intdeclarea1 int,a2 int,b1 int,b2 int,c1 int,c2 intselectmygznum=gznumbeforemymonth=month_total,a1=jbgz,b1=jbjl,c1=jb
16、cf from deletedselect mygznum=gznu,maftermymonth=month_total,a2=jbgz,b2=jbjl,c2=jbcf frominsertedif(beforemy mon thaftermymo nth or a1a2 orb1b2 orc1c2)beginupdate gon gzi set mon th_total=a2+b2-c2 where gznum=mygz numendgo工资插入触发器create trigger trig_gongzi_insert on gongzifor insertasdeclaremygznum v
17、archar(11),myjbgz varchar(10),myjbjl intdeclare a1 int,b1 intselectmygznum=gznum a1=jbgz,b1=jbjl from insertedupdate gon gzi set mon th_total=a1+b1-jbcf where gznum=mygz numgo考勤表插入触发器create trigger trig_kaoqin on kaoqinfor insertasdeclareleixing varchar(10),allday int,myknum varchar(11)selectmyknum=
18、knum,leixing=qingjia,allday=days from insertedif(leixing=病假) update gongzi set jbcf=allday衣20 where gznum=myknumif(leixing=事假)update gongzi set jbcf=allday*50where gznum=myknumif(leixing=长假)update gongzi set jbcf=allday*(jbgz/30) where gznum=myknumif(leixing=早退) update gongzi set jbcf=allday衣40 wher
19、e gznum=myknumif(leixing=旷工)update gongzi set jbcf=allday衣100 where gznum=myk numupdate gongzi set month_total=jbgz+jbjl-jbcf where gznum=myknum go考勤表修改触发器create trigger trig_kaoqin_update on kaoqin for updateasdeclarebeforeleixingvarchar(10),afterleixingvarchar(10) , beforeallday int,afterallday in
20、t,myknum varchar(11)selectmyknum=knum,beforeleixing=qingjia,beforeallday=days fromdeletedgo退休员工更新触发器create trigger tri_retire_update on employeefor updateasdeclareacha(10),b varchar(20 ), cvarchar(3 ), a1char(10),b1 varchar(20),c1 varchar(3)declarereph one varchar(11),readdress varchar(40),reback in
21、tselect a=emplnum,b=emplname c=emplage from deletedselecta1=empInum b1=empInamec1=emplage from insertedselectrephone=emplphone, readdress=empladdress from employee whereempl num=a1 and emplage=c1select reback=month_total/3 from gongzi where gznum=a1if(cmafterleixing=qingjia,afterallday=days if(befor
22、eleixing begin if(afterleixing= gznum=myknum if(afterleixing= gznum=myknum if(afterleixing=afterleixing or beforeallday病假)事假长假)fromafteralldayinserted)update gongzi set jbcf=afterallday) update gongzi set jbcf=update gongzi set jbcf=20 where afterallday afteralldaywhere gznum=myknum if(afterleixing=
23、 gznum=myknum if( afterleixing= gznum=myknum update gongzi setmonth_total=jbgz+jbjl-jbcf where gznum=myknum end早退旷工)50 where(jbgz/30) update gongzi set jbcf= afterallday*40 whereupdate gongzi set jbcf=afterallday*100 wherego员工退休金触发器SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER triggerdbo。tri_re
24、tireon dbo。employeefor deleteasdeclare a char(10),b varchar(20),c varchar(3),d money,phone varchar(11) , add varchar(40)select a=empInum,b=empIname, c=emplage from deleted;select d=month_total/3 from gongzi;select phone=emplphone,add=empladdress from employee;if(c60)insert into retire(renum,rename,r
25、eage,reback,rephone,readdress)values(a,b,c,d,phone, add)销售业绩插入触发器普通员工注册存储过程create procedure pro_emplnewa varchar(11),s varchar(11),d varchar(10),f varchar(3),g char(2),h varchar(11),j varchar(30),k varchar(50)asinsert into employee values(as,d,f,g,h,j,k,普通员工);go退休金查询存储过程create procedure pro_retirena
26、me varchar(10)asselect renum职工编号,rename职工姓名,reage职工年龄,reback退休金,rephone电话,readdress地址from retirewhere rename=name;go修改密码存储过程create procedure promimanumber varchar(11),loginmima varchar(11),oldmima varchar(11),newmimal varchar(11)asif logi nm ima=oldmima andn ewmimaH =beginupdate employee set emplmm=
27、n ewmima1 where emp lnum=nu mbe;en d;go五、系统实现与测试1、开发平台和工具选择开发平台:Delphi 7工具:Microsoft visio 2003,Microsoft SQL Server 2005使用说明:使用Delphi 7能够简单快捷的设计出数据库平台,美观,易操作,而且是我 们刚刚所学的,刚好可以用上。使用Microsoft visio 2003可以更好的画出E-R图、数据流 图和功能模块图。2、系统测试人事管理系统登入界面:有三种登入选择:管理员登入、普通员工登入、退休员工登入人事管理主界面:管理员登入普通员工登入员工注册界面(管理员操作)
28、弓工H卜刚 miHFGqqi贾Bh耐1KTta弓a辰丁左執1彌 ItfH 用壬|E*03041013!1?14吴世程2D!?IBS Bl 19374 SJQiBIBZZqq Earn匸蘿丄30t1M4ia ID*swZOiw1 U( (n 374( OEI BZSSqq.cofnfctttCTttI3M1DI41X14M?D1刈忙別訝l&qq rwn-?aw1 MAO I fl J74 74 Q|1q佃邮.KJV 1 fFFK4 =7DR1 MRU 1 1 nfil szdq q rwnwairrD3041DI41E1234Hipq?Ds1Bi034374 &74DG1 B74
29、qq ram1309101 41 til 234ZD1mS37406ie?qqx4MTiIJ(1110ll.岗位调动(管理员操作)0309101415茎世懐u.r杏右所有忙息增加洁空11L、褥云壬怎口0 Jlk41UHH* =UJUSIUHISE!整企.|诅呼曰呱矣世kUO2/IU昊fl惟2UU/1(JI翌土日邛ZDD/7l;DU7/9家庭关系信息处理(管理员操作)馆加03U91014行W户亢L怖弓1用二迪备Ml如onomsun鼻覽49个ib户U3V9I0141记事管理(管理员操作)销售业绩管理(管理员操作)我增添模糊查找功能和详细查找模块查询操作界面加班申请(普通员工操作)2J详.+.=査询跡基專需jC&iajainn r;3皿遜删谨冋 Nf|卜|忙宀皿弋业门J-JULz1U lL Jtf.三卡卑户+户退休员工退休金查询(退休员工操作)澤退休员工退丈全童词厶 一 空 虚2_Q 母六、课程设计总结1、说明设计心得、想法建议等.2、如果为多人同组,在此说明组内分工和每个成员的完成情况。吴世健:在开始设计数据库时,进行了资料的搜集,了解了我们这次所选择的人事管理系 统的架构和组成,接着开始数据库需求分析,完成概念、逻辑结构设计。接着就设计数据流 图、数据字典、E-R图以及ER图向DBM咲系模式转换,系统模块设计,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论