还剩36页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
课程设计课程名称SQL数据库系统课程设计题目名称职工考勤管理信息系统专业班级2013级软件工程学生姓名鲍金林赵文杨文鑫李伟学号51302041041513020410265130204100351302041048指导教师刘娟2015年12月蚌埠学院计算机科学与技术系课程设计任务书课程SQL数据库系统课程设计班级2013级软件工程本指导教师刘娟题目职工考勤管理信息系统完成时间2015年12月7日至2016年1月3日主要内容要求完成以下功能1.能够以操作员设置的登录系统2.能对员工信息进行添加、删除、查询3.能对员工出勤、请假、加班、出差进行时间统计
4.能进行与数据库的链接设计报告要求1.封面2.课程设计任务书3.课程设计报告⑴系统总体方案⑵设计思路和主要步骤⑶各功能模块和流程图⑷设计代码⑸心得体会和参考资料说明学生完成课程设计后,提交课程设计报告及软件,要求文字通畅、字迹工整(可以打印),文字不少于5000字,并装订成册版面要求题目用黑体三号,段后距18磅(或1行),居中对齐;标题用黑体四号,段前、段后距6磅(或
0.3行);正文用小四号宋体,行距为
1.25倍行距;标题按“一”、“㈠”、“1”、“⑴”顺序编号上机时间安排2013级软件工程本15-18周,周二12节周四34节指导地点实验室(A503,A505)分工协作说明(以列表形式具体说明每个人所做的工作)课题名称学生姓名学号所做的工作职工考勤管理信息系统赵文51302041026项目框架总体设计、整体项目指导、综合设计文档编写鲍金林51302041041项目框架总体设计、整体项目指导、综合设计文档编写李伟51302041048需求分析、编码后台代码测试杨文鑫51302041003部分代码编写、分模块测试后台代码测试、整理资料、打印蚌埠学院计算机科学与技术系本科课程设计成绩评定表项目权重分值具体要求得分文献阅读与调查论证
0.20100能独立查阅文献和从事其它调研;有收集、加工各种信息的能力设计质量
0.30100设计合理、功能齐备,程序运行正常,实验数据准确可靠;有较强的实际动手能力论文撰写质量
0.20100设计说明书完全符合规范化要求,用A4复印纸打印成文学习态度
0.20100学习态度认真,科学作风严谨,严格按要求开展各项工作,按期完成任务学术水平与创新
0.10100设计有创意,有一定的学术水平或实用价值总分评语等级指导教师年月日目录TOC\o1-5\h\u一可行性研究
11.1问题描述
11.2研究目的
11.3开发环境和运行环境
11.4预期结果和意义2二需求分析
22.1功能需求
22.
1.1数据管理
22.
1.2考勤管理
22.
1.3加班管理
22.
1.4请假管理
22.
1.5出差管理
22.2功能模块图
32.3系统数据流程图
42.4数据字典4三概念结构设计
43.1局部E-R图
43.
1.1员工信息E-R图
43.
1.2出勤记录E-R图
53.
1.3出差记录E-R图
53.
1.4加班记录E-R图
53.
1.5请假记录E-R图
63.2总E-R图6四逻辑结构设计
74.1关系模式7五数据实施和维护
75.1数据表的创建
75.2数据表的属性
85.
2.1出勤资料表
85.
2.2加班资料表
95.
2.3请假资料表
105.
2.4出差资料表10六测试
116.1登录模板测试
116.2登录后页面
136.3建立上班签到表
156.4职工信息表
176.5出差信息系统
206.6加班信息系统
246.7请假信息系统29七心得体会32八参考文献32一可行性研究
1.1问题描述随着企业人事管理的日趋复杂和企业人员的增多,企业的考勤管理变得越来越复杂规范的考勤管理是现代企业提高管理效益的重要保证,而传统的人工管理存在着效率低、不易统计、成本高和易出错等弊端,已经无法适应现代企业的需求随着计算机技术和通信技术的迅速发展,将传统的人工考勤管理计算机化,建立一个高效率的、无差错的考勤管理系统,能够有效的帮助企业实现“公正考勤,高效薪资”,使企业的管理水平登上一个新的台阶职工考勤管理经过如下的业务流程
(1)员工基本信息管理,添加,删除,更改
(2)员工考勤管理,员工根据自己的班次在上下班时分别进行出勤操作,采用手动方式或者使用划卡机由人事部门专门的人员管理出勤和退勤信息
(3)一般在每个月月初进行考勤汇总,汇总信息包括工作日的出勤情况、请假天数、出差天数、休假天数和不同性质的加班记录等
1.2研究目的待开发的系统的名称为职工考勤管理信息系统我们以中小型企业的考勤管理业务为依托,结合科学管理的理论,设计并开发一个企业考勤管理信息系统,提供一个科学合理的考勤管理解决方案,彻底实现无纸化作业根据管理权限的不同,将界面分为一般职员、部门经理、系统管理员和最高管理者四个层次
(1)提供简单、方便的操作
(2)根据企业原来的考勤管理制度,为企业不同管理层次提供相应的功能
(3)通过考勤管理无纸化的实现,使企业的考勤管理更加科学规范
(4)节省考勤管理的成本
(5)提高企业考勤管理的透明度和效率,防止“虚假出勤“的现象
(6)对系统提供必要的权限管理
(7)为企业实现整体信息化的其他相关系统提供必要的数据支持
1.3开发环境和运行环境公司考勤管理系统这运用了当前最流行的SQLSERVER2012来建表还有前台应用程序采用VISUALSTUDIOI2015编写运行和开发的1.库、基本表的建立和修改在SQL-SERVER环境下用CREATETABLE建立库以及库中基本表2.数据加载用手工录入或导入等方法实现基本表中的数据加载3.单表查询以及多表查询在建立的基本表中使用select基本格式和聚集函数;设计合适的视图,实现多表间查询4.用SQLSERVER2012等开发环境设计、实现系统主要功能
1.4预期结果和意义考勤系统能实现职工日考勤记录,记录请假信息,记录出差信息等功能,并最终所有信息归入月统计中去本考勤系统建立了一个高效率的、无差错的考勤管理系统,能够有效的帮助企业实现“公正考勤,高效薪资”,使企业的管理水平登上一个新的台阶二需求分析
2.1功能需求
2.
1.1数据管理功能是设置和管理基础数据,包括加班、请假类别的定义和班次的定义,在全县范围内可以进行基础数据的添加、删除和修改
2.
1.2考勤管理包括出勤动作、出勤信息的查询;上级对下级员工的出勤信息的确认;生成考勤统计信息并可以根据指定的条件进行查询实现从每日出勤到统计全部考勤信息的无纸化操作为方便数据传递和查阅,要根据需求提供不同时间短的考勤统计信息表
2.
1.3加班管理对员工的加班时间进行统计,记录开始时间和结束时间,对加班信息实现添加,删除等操作
2.
1.4请假管理可以提出请假申请,并完善请假信息,如请假开始时间,请假结束时间,请假的次数进行管理
2.
1.5出差管理管理者安排员工出差,对出差时间,次数的管理
2.2功能模块图如图2-1所示,图为功能模块图2-1功能模块图
2.3系统数据流程图如图
2.3所示,图为数据流程图2-2数据流程图
2.4数据字典在物理结构中,数据的基本存取单位是存储记录有了逻辑结构以后,就可以设计存储记录结构,一个存储记录可以与多个逻辑记录相对应存储记录就包括记录的组成,数据项的类型和长度等三概念结构设计
3.1局部E-R图
3.
1.1员工信息E-R图图3-
13.
1.2出勤记录E-R图图3-
23.
1.3出差记录E-R图图3-
33.
1.4加班记录E-R图图3-
43.
1.5请假记录E-R图图3-
53.2总E-R图图3-6四逻辑结构设计
4.1关系模式职工信息(职工编号,姓名,性别,年龄,职称)出勤记录(上班打卡时间,下班打卡时间,缺勤记录)出差记录(出差开始时间,出差结束时间,统计出差时间)加班信息(加班开始时间,加班结束时间,加班时间统计)请假信息(请假开始时间,请假结束时间,请假时间统计)五数据实施和维护
5.1数据表的创建图5-1表的建立
5.2数据表的属性图5-2表的属性
5.
2.1出勤资料表图5-3出勤资料图5-4员工出勤基本资料表属性图5-5员工出勤基本资料属性
5.
2.2加班资料表图5-6加班资料表属性图5-7加班资料表
5.
2.3请假资料表图5-8请假资料表属性图5-9请假资料表
5.
2.4出差资料表图5-10出差资料表属性图5-11出差资料表六测试
6.1登录模板测试为了系统的安全,在进入系统之前首先会出现一个登录模块,用户只有在输入正确的用户名和正确的密码之后,才能进入系统图6-1登录界面登录代码的简单说明privatevoidbutton1_ClickobjectsenderEventArgse{iftextBox
1.Text==||textBox
2.Text=={MessageBox.Show请输入用户名或密码;}else{stringsql=select+textBox
1.Text+from登录信息表where密码=+textBox
2.Text+;SqlConnectioncon=newSqlConnectionDataSource=ZHANGHAO\\SQL2012;InitialCatalog=职工考勤系统;UserId=sa;Password=147258;con.Open;SqlCommandcom=newSqlCommandsqlcon;SqlDataReadersread=com.ExecuteReader;try{ifsread.Read{Form3frm2=newForm3;frm
2.Show;this.Hide;}else{MessageBox.Show登录信息有误;textBox
1.Text=textBox
2.Text=;}}catch{}finally{con.Close;//关闭连接con.Dispose;//释放连接sread.Close;//释放资源}}}
6.2登录后页面图6-2登录后页面登录进入的主页面主要代码privatevoidbutton1_ClickobjectsenderEventArgse{panel
1.Controls.Clear;Form2form2=newForm2;form
2.TopLevel=false;panel
1.Controls.Addform2;form
2.Show;}privatevoidbutton2_ClickobjectsenderEventArgse{panel
1.Controls.Clear;Form4form4=newForm4;form
4.TopLevel=false;panel
1.Controls.Addform4;form
4.Show;}privatevoidbutton3_ClickobjectsenderEventArgse{panel
1.Controls.Clear;Form5form4=newForm5;form
4.TopLevel=false;panel
1.Controls.Addform4;form
4.Show;}privatevoidbutton4_ClickobjectsenderEventArgse{panel
1.Controls.Clear;Form7form4=newForm7;form
4.TopLevel=false;panel
1.Controls.Addform4;form
4.Show;}privatevoidbutton5_ClickobjectsenderEventArgse{panel
1.Controls.Clear;Form6form4=newForm6;form
4.TopLevel=false;panel
1.Controls.Addform4;form
4.Show;}
6.3建立上班签到表privatevoidbutton1_ClickobjectsenderEventArgse{try{SqlConnectionconn=newSqlConnectionDataSource=ZHANGHAO\\SQL2012;InitialCatalog=职工考勤系统;UserId=sa;Password=147258;conn.Open;Stringsql=select*from职工信息表where职工编号=+textBox
1.Text+;SqlCommandcmd=newSqlCommandsqlconn;cmd.ExecuteNonQuery;SqlDataReaderdr=cmd.ExecuteReader;ifdr.HasRowswhiledr.Read{tx.Text=dr[职工姓名].ToString;}else{MessageBox.Show查无此人;}conn.Close;}catchExceptionex{MessageBox.Showex.Message;}try{SqlConnectionconn=newSqlConnectionDataSource=ZHANGHAO\\SQL2012;InitialCatalog=职工考勤系统;UserId=sa;Password=147258;conn.Open;Stringsql=insertinto出勤信息表职工编号职工姓名上班时间values+textBox
1.Text++tx.Text++DateTime.Now.ToShortTimeString+;SqlCommandcmd=newSqlCommandsqlconn;intn=cmd.ExecuteNonQuery;ifn0{MessageBox.Show签到成功,经验值+5;this.出勤信息表TableAdapter.Fillthis.职工考勤系统DataSet
1.出勤信息表;}conn.Close;}catch{MessageBox.Show禁止重复签到;}图6-3出勤界面
6.4职工信息表职工信息表的插入添加还有查询页面其相关代码privatevoidbutton3_ClickobjectsenderEventArgse{SqlConnectionconn=newSqlConnectionDataSource=ZHANGHAO\\SQL2012;InitialCatalog=职工考勤系统;UserId=sa;Password=147258;conn.Open;Stringsql=select*from职工信息表where职工编号=+textBox
6.Text+;SqlCommandcmd=newSqlCommandsqlconn;SqlDataReaderdre=cmd.ExecuteReader;ifdre.HasRowswhiledre.Read{textBox
1.Text=dre[职工编号].ToString;textBox
2.Text=dre[职工姓名].ToString;textBox
3.Text=dre[性别].ToString;textBox
4.Text=dre[年龄].ToString;textBox
5.Text=dre[职称].ToString;}else{MessageBox.Show查无此人;textBox
6.Text=;}this.职工信息表TableAdapter.Fillthis.职工考勤系统DataSet.职工信息表;conn.Close;conn.Dispose;}privatevoidbutton4_ClickobjectsenderEventArgse{try{SqlConnectionconn=newSqlConnectionDataSource=ZHANGHAO\\SQL2012;InitialCatalog=职工考勤系统;UserId=sa;Password=147258;conn.Open;Stringsql=update职工信息表set职工姓名=+textBox
2.Text+性别=+textBox
3.Text+年龄=+textBox
4.Text+职称=+textBox
5.Text+where职工编号=+textBox
1.Text+;SqlCommandcmd=newSqlCommandsqlconn;cmd.ExecuteNonQuery;MessageBox.Show更新成功;conn.Close;conn.Dispose;textBox
1.Text=;textBox
2.Text=;textBox
3.Text=;textBox
4.Text=;textBox
5.Text=;textBox
6.Text=;this.职工信息表TableAdapter.Fillthis.职工考勤系统DataSet.职工信息表;}catchExceptionex{MessageBox.Showex.Message;}}图6-4职工信息表
6.5出差信息系统图6-5出差信息系统其中各按钮代码中总时长代码privatevoidbutton3_ClickobjectsenderEventArgse{try{SqlConnectionconnn=newSqlConnectionDataSource=ZHANGHAO\\SQL2012;InitialCatalog=职工考勤系统;UserId=sa;Password=147258;connn.Open;Stringsqll=select*from出差信息表1where职工编号=+textBox
1.Text+;SqlCommandcmdd=newSqlCommandsqllconnn;SqlDataReaderdr=cmdd.ExecuteReader;ifdr.HasRowswhiledr.Read{te.Text=dr[出差开始时间].ToString;tx.Text=dr[出差结束时间].ToString;}}catchExceptionex{MessageBox.Showex.Message;}try{stringhour;DateTime.TryParsete.Textoutda1;DateTime.TryParsetx.Textoutda2;tp=da2-da1;hour=tp.TotalMinutes.ToString;SqlConnectioncon=newSqlConnectionDataSource=ZHANGHAO\\SQL2012;InitialCatalog=职工考勤系统;UserId=sa;Password=147258;con.Open;Stringsql=update出差信息表1set出差总时间=+hour.Substring05+分钟+where职工编号=+textBox
1.Text+;SqlCommandcom=newSqlCommandsqlcon;intn=com.ExecuteNonQuery;ifn0{this.出差信息表1TableAdapter.Fillthis.职工考勤系统DataSet
3.出差信息表1;MessageBox.Show记录完成!;}}catchExceptionex{MessageBox.Showex.Message;}}privatevoidbutton4_ClickobjectsenderEventArgse{try{strings;s=this.dataGridView
1.Rows[dataGridView
1.CurrentRow.Index].Cells
[0].Value.ToString;longn=Convert.ToInt64s;SqlConnectionconn=newSqlConnectionDataSource=ZHANGHAO\\SQL2012;InitialCatalog=职工考勤系统;UserId=sa;Password=147258;conn.Open;Stringsql=deletefrom出差信息表1where职工编号=+n+;SqlCommandcmd=newSqlCommandsqlconn;cmd.ExecuteNonQuery;MessageBox.Show删除成功!;this.出差信息表1TableAdapter.Fillthis.职工考勤系统DataSet
3.出差信息表1;conn.Close;}catch{MessageBox.Show请选择要删除的课程号;}}}}
6.6加班信息系统图6-6加班信息系统其中删除记录代码privatevoidbutton1_ClickobjectsenderEventArgse{try{SqlConnectionconn=newSqlConnectionDataSource=ZHANGHAO\\SQL2012;InitialCatalog=职工考勤系统;UserId=sa;Password=147258;conn.Open;Stringsql=select*from职工信息表where职工编号=+textBox
1.Text+;SqlCommandcmd=newSqlCommandsqlconn;cmd.ExecuteNonQuery;SqlDataReaderdr=cmd.ExecuteReader;ifdr.HasRowswhiledr.Read{tx.Text=dr[职工姓名].ToString;}else{MessageBox.Show查无此人;}conn.Close;}catchExceptionex{MessageBox.Showex.Message;}try{SqlConnectionconn=newSqlConnectionDataSource=ZHANGHAO\\SQL2012;InitialCatalog=职工考勤系统;UserId=sa;Password=147258;conn.Open;Stringsql=insertinto加班信息表职工编号职工姓名加班开始时间values+textBox
1.Text++tx.Text++DateTime.Now.ToString+;SqlCommandcmd=newSqlCommandsqlconn;intn=cmd.ExecuteNonQuery;ifn0{MessageBox.Show签到成功;this.加班信息表TableAdapter.Fillthis.职工考勤系统DataSet
5.加班信息表;}conn.Close;}catch{MessageBox.Show禁止重复签到;}}privatevoidbutton2_ClickobjectsenderEventArgse{try{SqlConnectionconnn=newSqlConnectionDataSource=ZHANGHAO\\SQL2012;InitialCatalog=职工考勤系统;UserId=sa;Password=147258;connn.Open;Stringsqll=update加班信息表set加班结束时间=+DateTime.Now.ToString+where职工编号=+textBox
1.Text+;SqlCommandcmdd=newSqlCommandsqllconnn;intn=cmdd.ExecuteNonQuery;ifn0{this.加班信息表TableAdapter.Fillthis.职工考勤系统DataSet
5.加班信息表;MessageBox.Show记录完成!;}elseMessageBox.Show信息输入有误;connn.Close;}catchExceptionex{MessageBox.Showex.Message;}}privatevoidbutton3_ClickobjectsenderEventArgse{try{SqlConnectionconnn=newSqlConnectionDataSource=ZHANGHAO\\SQL2012;InitialCatalog=职工考勤系统;UserId=sa;Password=147258;connn.Open;Stringsqll=select*from加班信息表where职工编号=+textBox
1.Text+;SqlCommandcmdd=newSqlCommandsqllconnn;SqlDataReaderdr=cmdd.ExecuteReader;ifdr.HasRowswhiledr.Read{te.Text=dr[加班开始时间].ToString;tx.Text=dr[加班结束时间].ToString;}}catchExceptionex{MessageBox.Showex.Message;}try{stringhour;DateTime.TryParsete.Textoutda1;DateTime.TryParsetx.Textoutda2;tp=da2-da1;hour=tp.TotalMinutes.ToString;SqlConnectioncon=newSqlConnectionDataSource=ZHANGHAO\\SQL2012;InitialCatalog=职工考勤系统;UserId=sa;Password=147258;con.Open;Stringsql=update加班信息表set加班总时间=+hour.Substring05+分钟+where职工编号=+textBox
1.Text+;SqlCommandcom=newSqlCommandsqlcon;intn=com.ExecuteNonQuery;ifn0{this.加班信息表TableAdapter.Fillthis.职工考勤系统DataSet
5.加班信息表;MessageBox.Show记录完成!;}}catchExceptionex{MessageBox.Showex.Message;}}
6.7请假信息系统图6-7请假信息系统其中请假结束时间的代码privatevoidbutton3_ClickobjectsenderEventArgse{try{SqlConnectionconnn=newSqlConnectionDataSource=ZHANGHAO\\SQL2012;InitialCatalog=职工考勤系统;UserId=sa;Password=147258;connn.Open;Stringsqll=select*from请假信息表3where职工编号=+textBox
1.Text+;SqlCommandcmdd=newSqlCommandsqllconnn;SqlDataReaderdr=cmdd.ExecuteReader;ifdr.HasRowswhiledr.Read{te.Text=dr[请假开始时间].ToString;tx.Text=dr[请假结束时间].ToString;}}catchExceptionex{MessageBox.Showex.Message;}try{stringhour;DateTime.TryParsete.Textoutda1;DateTime.TryParsetx.Textoutda2;tp=da2-da1;hour=tp.TotalMinutes.ToString;SqlConnectioncon=newSqlConnectionDataSource=ZHANGHAO\\SQL2012;InitialCatalog=职工考勤系统;UserId=sa;Password=147258;con.Open;Stringsql=update请假信息表3set请假总时间=+hour.Substring05+分钟+where职工编号=+textBox
1.Text+;SqlCommandcom=newSqlCommandsqlcon;intn=com.ExecuteNonQuery;ifn0{this.请假信息表3TableAdapter.Fillthis.职工考勤系统DataSet
9.请假信息表3;MessageBox.Show记录完成!;}}catch{MessageBox.Show时间太短,信息无效;SqlConnectionconnn=newSqlConnectionDataSource=ZHANGHAO\\SQL2012;InitialCatalog=职工考勤系统;UserId=sa;Password=147258;connn.Open;Stringsqll=deletefrom请假信息表3where职工编号=+textBox
1.Text+;SqlCommandcmdd=newSqlCommandsqllconnn;SqlDataReaderdr=cmdd.ExecuteReader;this.请假信息表3TableAdapter.Fillthis.职工考勤系统DataSet
9.请假信息表3;}}七心得体会本系统在信息表述上还不完备,一些模块的信息还不够详细,主要是提供的报表有限系统虽然针对中小企业的考勤管理业务对使用打卡机、指纹机进行出、退勤的企业,还需要添加一个采集打卡机和指纹机的数据模块下一步可以再熟悉系统设计风格的基础上,在各个界面上进一步添加多需要的字段和报表,或者添加采集数据的模块,以扩充系统的功能本系统的创新点在于触发器的应用,每增加一条记录,都会重新统计一下记录次数,并存入月纪录中,使得信息更加准确在设计时由于对编程语言知识的匮乏,所以数据库的界面化没有做成,如若想更加完善数据库,应该结合一些编程语言,使得操作界面更加人性化,简单化通过本次设计,我们对数据库有了更深入的了解,见证了一个系统从无到有,从漏洞百出到逐渐完善的过称,是我们所学的只是得以所用,加深了对数据库的理解,在设计过程中有很多不会的问题,通过自己查阅资料逐渐解决,这本身就是一个学习的过程,不仅学到了只是,还掌握了学习方法同时让我们认识到自己所学知识的匮乏,所以要全面发展自己的专业,一个人的能力总是有限的,所以团队合作很重要,在做设计的过程中要学习他人之长,听取他人的意见,虚心向别人请教虽然我们做的设计还不是很完善,但我们觉得很有意义,对我们今后的人生都很有帮助八参考文献
[1]胡师彦.微软SQLServer2000数据库的特点及查询优化研究[J].兰州工业高等专科学校学报
[2]王西文张广智.浅谈SQLServer应用方法和技巧[J].山东水利
[3]何思文.基于SQLServer2000的数据仓库的实现[J].广东科技
[4]白青海张善勇郑瑛.ADO与SQLSERVER2000数据库应用程序开发探讨[J].内蒙古民族大学学报自然科学版
[5]莫德举.VisualBasic程序设计.北京邮电大学出版
[6]陈志泊.数据库原理及应用教程.人民邮电出版社
[7]周屹.数据库原理及开发应用--实验与课程设计指导.清华大学出版
[8]程云志.数据库原理与SQLServer2005应用教程.机械工业出版社考勤员员工经理审批请假值班出差记录上下班时间安排员工出勤记录记录出勤时间职工信息职称年龄姓名性别编号下班时间缺勤记录上班时间出勤记录结束时间总计天数开始时间出差记录统计时间开始时间加班记录结束时间结束时间统计天数开始时间请假记录。