sql数据库课程设计工资管理系统_第1页
sql数据库课程设计工资管理系统_第2页
sql数据库课程设计工资管理系统_第3页
sql数据库课程设计工资管理系统_第4页
sql数据库课程设计工资管理系统_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

word)sql河南城建学院《数据库技术及其应用》课程设计报告书题目:工资管理系统系部:数理系专业:数学与应用数学班级:姓名:学号:指导教师:

--------------河南城建学院2013年 1 月 11日目录第一章选题的背景和意义 11选题的背景 11.2选题的意义 1第二章 数据库结构设计 2需求分析 2概念结构设计 3第三章 程序代码实现 7创建表 7数据导入: 10查询功能的实现: 11其他实现: 16第四章课程设计总结 16参考文献: 17第一章 选题的背景和意义1选题的背景计算机技术对企业内部员工进行方便的管理,这样有诸多好处,各层管理人员可以对企业众多的员工信息进行动态的管理,例如基本资料的修改,添加,删除,查询等。有利于减少错误,减轻人事部门的任务,提高效率,节约人力资源,降低企业成本。1.2选题的意义工资管理有关的信息随之急剧增加。在这种情况下单靠人工来处理员工的工资不但显得力不从心,而且极容易出错。如何设计一个小型企业工资的数据库管理系统,由计算机代替人工执行一系列诸如增加新员工,删除旧员工,工资查询,统计等操作。这样就使办公人员可以轻松快捷地完成工资管理的任务。便,功能实用,能同时满足财务部门、单位其他相关部门及代发单位三方对数据的管理及需求的系统。企业的目标就是在于利用数据库编程设计一个操作方便、简单实用的工资管理系统。查询,对人事的管理及工资发放中的应发工资合计等项目由系统自动进行计算;同时系统还可对人事及工资管理情况进行多角度查询。充分发挥了其小却精的特点,通过对这个数据库的编程,也是企业认识到了自己在很多方面的不足,也掌握了很多应用方面的技巧。第二章 数据库结构设计需求分析每一位职工的各项工资条款的发放,以及企业工资的统计,使企业运用现代化技术创造更多更高的经济效益,在此基础上开发一个工资管理系统。实现本单位财务部门对工资发放的集中管理。可供财务人员对本单位的人员进行增加、修改、删除、更新、查询,对工资发放中的应发工资合计,同时本系统还可以对工资发放情况进行多角度查询,能够按不同的条件进行查询。总体需求(1).建立对企业员工工资全面管理的信息系统;(2).对所有的职工提供全面管理;(3).对系统的安全提供全面管理;(4).对职工信息的添加、删除提供全面管理;功能需求对工资记录进行录入。对工资信息进行查找。对多个工资记录进行浏览。对记录进行满足各种实际需要的修改。数据介绍静态数据:职工基本信息,职工出缺勤信息。数据库介绍职工基本信息数据库:包括职工的工号,姓名,所属部门职工出缺勤信息数据库:包括职工的工号,姓名,缺勤次数功能描述职工基本信息管理系统:职工出勤管理系统:职工工资管理系统:安全性分析采用严格的用户验证与权限控制,用户需要通过身份验证才能进入本系统,没用权限的用户不能使用本系统,每个用户只能修改自己的密码,保密性良好,确保系统安全可靠。负责人1负责人1部门工号基本1资姓名nn11员工1工资加班工资部门号(完整word版)sql数据库课程设计工资管理系统图2-1员工工资管理系统关系图员工n员工n从事11工种1工作工资设置11n 1工作时间核准部门图2-2ER关系图逻辑结构设计将管理系统的E-R图转换为关系数据库的数据模型,其关系模式为:员工档案(,其中员工编号为主键,部门号为外键;出勤记录(,出勤编号为主键,员工号为外键;)工资记录(,工资编)部门记录(,部门编号为主键。将工资管理系统定名为“工word)sql物理结构设计计表结构。员工(姓名,工号,部门,工种,性别,生日,电话工种(工种号,基本工资,时加班津贴)月工作时间(工号,每日上班时间,每日下班时间部门(部门号,负责人,负责人电话)表2-1员工字段名字段名类型宽度小数主键/索引参照表约束Null值文本型10↑(主)文本型10部 门 号 文本型20(dps)文本型12文本型2男or女生(birth)日日期型电话(tele)文本型11字段名部门号(字段名部门号(dps)类型宽度小数主键/索引参照表约束Null值部门(dp)负责人(rs)负责人电话文本型文本811文本型10↑(主)文本型20(rt)(rt)型字段名工种(字段名工种(ws)类型文本型宽度12小数主键/索引↑(主)参照表约束Null值部门(dp)文本型20基本工资文本型4(fs)时加班津贴(sub)文本型4表2-4月工作时间(每个月生成一个表)字段名字段名工号(id)类型文本型宽度10小数主键/↑参照表员工约束Null月初上班时间(st1)月初下班时间(dt1)---------------------------------------月末上班时间(st1)月末下班时间(dt1)日期型日期型日期型日期型日期型日期型日期型(1)给每个表实施主键约束:主键约束、非空值约束 ;员工:工号为主键,所以此项非空 ;部门:部门名称为主键,所以此项非空 工资:工号为主键,所以此项非空。外键约束(完整word版)sql数据库课程设计工资管理系统员工表中,工号、部门名称为外键。惟一约束每个表的主键需定义为惟一性: 对于工资表,因为工号是主键,联系着员工表,所以建唯一性。图2-3数据关系图第三章 程序代码实现创建表:表一:departmentCreatetabledbo.departmentdpnchar(20)collateChinese_prc_ci_asnull,dpsnchar(10) collateChinese_prc_ci_asnotnull,rsnchar(8) collateChinese_prc_ci_asnotnull,rtnchar(11) collateChinese_prc_ci_asnotnull,Constrant pk_部门表primarykeyclusteredword)sql[dps]ascwith(ignore_dup_key=off)onprimaryonprimary表二:monthtimeCREATETABLE[dbo].[monthtime]([id][nchar](10)COLLATEChinese_PRC_CI_ASNOTNULL,[st1][datetime]NULL,[dt1][datetime]NULL,[st2][datetime]NULL,[dt2][datetime]NULL,[st3][datetime]NULL,[dt3][datetime]NULL,[st4][datetime]NULL,[dt4][datetime]NULL,[st5][datetime]NULL,[dt5][datetime]NULL,[st6][datetime]NULL,[dt6][datetime]NULL,[st7][datetime]NULL,[dt7][datetime]NULL,[st8][datetime]NULL,[dt8][datetime]NULL,[st9][datetime]NULL,[dt9][datetime]NULL,[st10][datetime]NULL,[dt10][datetime]NULL,[st11][datetime]NULL,[dt11][datetime]NULL,[st12][datetime]NULL,[dt12][datetime]NULL,[st13][datetime]NULL,[dt13][datetime]NULL,[st14][datetime]NULL,[dt14][datetime]NULL,[st15][datetime]NULL,[dt15][datetime]NULL,[st16][datetime]NULL,[dt16][datetime]NULL,[st17][datetime]NULL,[dt17][datetime]NULL,[st18][datetime]NULL,[dt18][datetime]NULL,[st19][datetime]NULL,[dt19][datetime]NULL,[st20][datetime]NULL,[dt20][datetime]NULL,[st21][datetime]NULL,[dt21][datetime]NULL,[st22][datetime]NULL,[dt22][datetime]NULL,[st23][datetime]NULL,[dt23][datetime]NULL,[st24][datetime]NULL,[dt24][datetime]NULL,[st25][datetime]NULL,[dt25][datetime]NULL,[st26][datetime]NULL,[dt26][datetime]NULL,[st27][datetime]NULL,[dt27][datetime]NULL,[st28][datetime]NULL,[dt28][datetime]NULL,[st29][datetime]NULL,[dt29][datetime]NULL,[st30][datetime]NULL,[dt30][datetime]NULL,CONSTRAINT[PK_月工作时间表]PRIMARYKEYCLUSTERED([id]ASC)WITH(IGNORE_DUP_KEY=OFF)ON[PRIMARY])ON[PRIMARY]表三:professionCREATETABLE[dbo].[profession]([ws][nchar](12)COLLATEChinese_PRC_CI_ASNOTNULL,[dp][nchar](20)COLLATEChinese_PRC_CI_ASNULL,[sub][int]NULL,[fs][int]NULL,CONSTRAINT[PK_工种表]PRIMARYKEYCLUSTERED([ws]ASC)WITH(IGNORE_DUP_KEY=OFF)ON[PRIMARY])ON[PRIMARY]表四: workerCREATETABLE[dbo].[worker]([sn][nchar](10)COLLATEChinese_PRC_CI_ASNULL,[id][nchar](10)COLLATEChinese_PRC_CI_ASNOTNULL,[dps][nchar](10)COLLATEChinese_PRC_CI_ASNULL,[ws][nchar](12)COLLATEChinese_PRC_CI_ASNULL,[sex][nchar](2)COLLATEChinese_PRC_CI_ASNULL,[birth][datetime]NULL,[tele][nchar](11)COLLATEChinese_PRC_CI_ASNULL,(完整word版)sql数据库课程设计工资管理系统CONSTRAINT[PK_员工表]PRIMARYKEYCLUSTERED([id]ASC)WITH(IGNORE_DUP_KEY=OFF)ON[PRIMARY])ON[PRIMARY]GO数据导入:部门(dp)

部门号

表3-1department负责人(rs)

负责人电话(rt)研发部 1000 张鹏程稽核部宣传部

1001 李晨1002 魏晨表3-2monthtime表3-3profession工种(ws)部门(dp)时 加 班津贴基本工资(fs)(sub)干事宣传部1003500经理稽核部1004500文书稽核部903000表3-4worker查询功能的实现:

(完整word版)sql数据库课程设计工资管理系统对其进行编辑和删除。因此该模块的主要功能是对考勤机发来的原始数据的存储和对现有考勤记录的显示。由于考勤数据量较大再用窗体的显示方法显然是不合适的,因此这里通过列表控件来显示记录集中的数据。企业进行考勤的目的是为了有效控制员工的迟到、早退及旷工等不良现象。但不能简单的根据某员工缺少某天的考勤记录就认定该员工违反工作纪律。例如:员工在请过事病假并得到领导批准、因工作需要外派而不能在有效时间内赶回公司刷卡的现象就应在月末汇总时剔除在外。(1)计算每个员工的工资,生成临时表如下(每个月统计结果:表3-5工资条姓名姓名工号基本工资加班津贴其他补贴迟到早退 假SQL查询语言如下:将有考勤机获得的员工上班时间(我们在此仅取五天的上下班情况)由年月日时分转换成有时分,形成一个新表格员工号,月初上班时间,月末下班时间)新表格中的时间不含有年月日,以便于与上班时间比较和简化存储量。new_table表格的SQL语言形成如下:use工资管理系统goselectidas"员工号",convert(varchar(10),st1,108)as"1日上班时间",convert(varchar(10),dt1,108)as"1日下班时间",convert(varchar(10),st2,108)as"2日上班时间",convert(varchar(10),dt2,108)as"2日下班时间",convert(varchar(10),st3,108)as"3日上班时间",convert(varchar(10),dt3,108)as"3日下班时间",convert(varchar(10),st4,108)as"4日上班时间",(完整word版)sql数据库课程设计工资管理系统convert(varchar(10),dt4,108as4as5as5monthtime表3-6上下班时间表形成每个月的考勤表,利用上面形成的表格做为参照表,建立考勤表(退,加班,请假,缺勤情况(即上下班时间为空值时仅视为缺勤)use工资管理系统goselectidcasewhendatediff(minute,convert(varchar(10),st1,108),'8:00')<0then'迟到'whenconvert(varchar(10),st1,108)isnullthen'缺勤'else'正常'end as"1号上班情况",casewhendatediff(minute,convert(varchar(10),dt1,108),'18:00')>0then'早退'whendatediff(minute,'18:00',convert(varchar(10),dt1,108))>=0anddatediff(minute,'18:00',convert(varchar(10),dt1,108))<25whendatediff(minute,'18:00',convert(varchar(10),dt1,108))>=25加班'end as"1号下班情况",casewhendatediff(minute,convert(varchar(10),st2,108),'8:00')<0then'迟到'whenconvert(varchar(10),st2,108isnullthenendas2casewhendatediff(minute,convert(varchar(10),dt2,108),'18:00')>0then'早退'(完整word版)sql数据库课程设计工资管理系统whendatediff(minute,'18:00',convert(varchar(10),dt2,108))>=0anddatediff(minute,'18:00',convert(varchar(10),dt2,108))<25whendatediff(minute,'18:00',convert(varchar(10),dt2,108))>=25endas2casewhendatediff(minute,convert(varchar(10),st3,108),'8:00')<0then'迟到'whenconvert(varchar(10),st3,108isnullthenendas3casewhendatediff(minute,convert(varchar(10),dt3,108),'18:00')>0then'早退'whendatediff(minute,'18:00',convert(varchar(10),dt3,108))>=0anddatediff(minute,'18:00',convert(varchar(10),dt3,108))<25whendatediff(minute,'18:00',convert(varchar(10),dt3,108))>=25加班'end as"3号下班情况",casewhendatediff(minute,convert(varchar(10),st4,108),'8:00')<0then'迟到'whenconvert(varchar(10),st4,108)isnullthen'缺勤'else'正常'end as"4号上班情况",casewhendatediff(minute,convert(varchar(10),dt4,108),'18:00')>0then'早退'whendatediff(minute,'18:00',convert(varchar(10),dt4,108))>=0anddatediff(minute,'18:00',convert(varchar(10),dt4,108))<25whendatediff(minute,'18:00',convert(varchar(10),dt4,108))>=25加班'end as"4号下班情况",casewhendatediff(minute,convert(varchar(10),st5,108),'8:00')<0then'迟到'whenconvert(varchar(10),st5,108)isnullthen'缺勤'else'正常'end as"5号上班情况",casewhendatediff(minute,convert(varchar(10),dt5,108),'18:00')>0then'早退'(完整word版)sql数据库课程设计工资管理系统whendatediff(minute,'18:00',convert(varchar(10),dt5,108))>=0anddatediff(minute,'18:00',convert(varchar(10),dt5,108))<25whendatediff(minute,'18:00',convert(varchar(10),dt5,108))>=25加班'end as"5号下班情况"frommonthtime生成表格如下:表3-7考勤表piovt(在此统计五天的工作时间SQL语言程序如下:对于加班时间不足一小时的,不统计在加班时间之内。生成表如下:use工资管理系统goselectworker.sn,monthtime.id,datediff(minute,st1,dt1)as"1号工作时间",datediff(minute,st2,dt2)as"2号工作时间",datediff(minute,st3,dt3as3as4as5月时间总表frommonthtime,workerwhereworker.id=monthtime.id

(完整word版)sql数据库课程设计工资管理系统表3-8工作时间统计表计算每个员工的每个月的工资形成如下表格:表3-9工资表内容姓名 工号 基本工 加班津贴 其他补贴 加班总时资SQL程序如下:在计算工资时,我们暂不考虑周末及节假日的工资情形,分暂不在程序的求解

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论