《数据库课程设计职工考勤管理信息系统--大学毕业设计论文.doc》由会员分享,可在线阅读,更多相关《数据库课程设计职工考勤管理信息系统--大学毕业设计论文.doc(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、课 程 设 计 课程名称SQL数据库系统课程设计题目名称 职工考勤管理信息系统专业班级2013级软件工程学生姓名鲍金林 赵文 杨文鑫 李伟学 号51302041041,51302041026 51302041003,51302041048指导教师刘娟2015年12月蚌埠学院计算机科学与技术系课程设计任务书课 程SQL数据库系统 课程设计班级2013级软件工程本指导教师刘 娟题 目职工考勤管理信息系统完成时间2015年12月7日至2016年1月3日主要内容 要求完成以下功能: 1能够以操作员设置的登录系统。2能对员工信息进行添加、删除、查询。3能对员工出勤、请假、加班、出差进行时间统计。4. 能
2、进行与数据库的链接。 设计报告要求1封面: 2课程设计任务书3课程设计报告: 系统总体方案 设计思路和主要步骤 各功能模块和流程图 设计代码 心得体会和参考资料说明:学生完成课程设计后,提交课程设计报告及软件,要求文字通畅、字迹工整(可以打印),文字不少于5000 字,并装订成册。版面要求1 题目用黑体三号,段后距18磅(或1行),居中对齐;2 标题用黑体四号,段前、段后距6磅(或0.3行);3 正文用小四号宋体,行距为1.25倍行距;4 标题按“一”、“”、“1”、“”顺序编号。上机时 间安排2013级软件工程本15-18周, 周二 12节 周四 34节指导地点实验室(A503,A505)
3、分工协作说明(以列表形式具体说明每个人所做的工作)课题名称学生姓名学号所做的工作职工考勤管理信息系统赵文51302041026项目框架总体设计、整体项目指导、综合设计文档编写鲍金林51302041041项目框架总体设计、整体项目指导、综合设计文档编写李伟51302041048需求分析、编码后台代码测试杨文鑫51302041003部分代码编写、分模块测试后台代码测试、整理资料、 打印 蚌埠学院计算机科学与技术系本科课程设计成绩评定表项目权重分值具体要求得分文献阅读与调查论证0.20100能独立查阅文献和从事其它调研;有收集、加工各种信息的能力设计质量0.30100设计合理、功能齐备,程序运行正常
4、,实验数据准确可靠;有较强的实际动手能力论文撰写质量0.20100设计说明书完全符合规范化要求,用A4复印纸打印成文学习态度0.20100学习态度认真,科学作风严谨,严格按要求开展各项工作,按期完成任务学术水平与创新0.10100设计有创意,有一定的学术水平或实用价值总分评语:等级: 指导教师: 年 月 日目录一 可行性研究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
5、.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七 心得体会3
6、2八 参考文献32一 可行性研究1.1 问题描述随着企业人事管理的日趋复杂和企业人员的增多,企业的考勤管理变得越来越复杂。规范的考勤管理是现代企业提高管理效益的重要保证,而传统的人工管理存在着效率低、不易统计、成本高和易出错等弊端,已经无法适应现代企业的需求。随着计算机技术和通信技术的迅速发展,将传统的人工考勤管理计算机化,建立一个高效率的、无差错的考勤管理系统,能够有效的帮助企业实现“公正考勤,高效薪资”,使企业的管理水平登上一个新的台阶。 职工考勤管理经过如下的业务流程:(1)员工基本信息管理,添加,删除,更改(2)员工考勤管理,员工根据自己的班次在上下班时分别进行出勤操作,采用手动方式或
7、者使用划卡机。由人事部门专门的人员管理出勤和退勤信息。(3)一般在每个月月初进行考勤汇总,汇总信息包括工作日的出勤情况、请假天数、出差天数、休假天数和不同性质的加班记录等。1.2 研究目的待开发的系统的名称为职工考勤管理信息系统。我们以中小型企业的考勤管理业务为依托,结合科学管理的理论,设计并开发一个企业考勤管理信息系统,提供一个科学合理的考勤管理解决方案,彻底实现无纸化作业。根据管理权限的不同,将界面分为一般职员、部门经理、系统管理员和最高管理者四个层次。(1)提供简单、方便的操作。(2)根据企业原来的考勤管理制度,为企业不同管理层次提供相应的功能。(3)通过考勤管理无纸化的实现,使企业的考
8、勤管理更加科学规范。(4)节省考勤管理的成本。(5)提高企业考勤管理的透明度和效率,防止“虚假出勤“的现象。(6)对系统提供必要的权限管理。(7)为企业实现整体信息化的其他相关系统提供必要的数据支持。 1.3 开发环境和运行环境公司考勤管理系统这运用了当前最流行的SQL SERVER2012来建表还有前台应用程序采用VISUAL STUDIOI2015编写运行和开发的。1库、基本表的建立和修改:在SQL-SERVER环境下用CREATE TABLE 建立库以及库中基本表。2数据加载: 用手工录入或导入等方法实现基本表中的数据加载。3单表查询以及多表查询:在建立的基本表中使用select基本格式
9、和聚集函数;设计合适的视图,实现多表间查询。4用SQL SERVER 2012等开发环境设计、实现系统主要功能。 1.4 预期结果和意义考勤系统能实现职工日考勤记录,记录请假信息,记录出差信息等功能,并最终所有信息归入月统计中去。本考勤系统建立了一个高效率的、无差错的考勤管理系统,能够有效的帮助企业实现“公正考勤,高效薪资”,使企业的管理水平登上一个新的台阶。 二 需求分析2.1 功能需求2.1.1 数据管理功能是设置和管理基础数据,包括加班、请假类别的定义和班次的定义,在全县范围内可以进行基础数据的添加、删除和修改。2.1.2考勤管理包括出勤动作、出勤信息的查询;上级对下级员工的出勤信息的确
10、认;生成考勤统计信息并可以根据指定的条件进行查询。实现从每日出勤到统计全部考勤信息的无纸化操作。为方便数据传递和查阅,要根据需求提供不同时间短的考勤统计信息表。2.1.3加班管理对员工的加班时间进行统计,记录开始时间和结束时间,对加班信息实现添加,删除等操作。 2.1.4 请假管理可以提出请假申请,并完善请假信息,如请假开始时间,请假结束时间,请假的次数进行管理。 2.1.5 出差管理管理者安排员工出差,对出差时间,次数的管理。 2.2 功能模块图如图2-1所示,图为功能模块图 2-1 功能模块图 2.3 系统数据流程图如图2.3所示,图为数据流程图考勤员员工经理审批请假值班出差记录上下班时间
11、安排员工出勤记录记录出勤时间2-2 数据流程图2.4 数据字典在物理结构中,数据的基本存取单位是存储记录。有了逻辑结构以后,就可以设计存储记录结构,一个存储记录可以与多个逻辑记录相对应。存储记录就包括记录的组成,数据项的类型和长度等。三 概念结构设计3.1 局部E-R图3.1.1 员工信息E-R图职工信息职称年龄姓名性别编号 图3-1 3.1.2 出勤记录 E-R图下班时间缺勤记录上班时间出勤记录 图3-23.1.3 出差记录 E-R图结束时间总计天数开始时间出差记录 图3-33.1.4 加班记录 E-R图统计时间开始时间加班记录结束时间图3-43.1.5 请假记录 E-R图结束时间统计天数开
12、始时间请假记录 图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请
13、假资料表属性图5-9请假资料表5.2.4出差资料表图5-10出差资料表属性图5-11出差资料表 六 测试6.1登录模板测试为了系统的安全,在进入系统之前首先会出现一个登录模块,用户只有在输入正确的用户名和正确的密码之后,才能进入系统。图6-1登录界面 登录代码的简单说明: private void button1_Click(object sender, EventArgs e) if (textBox1.Text = | textBox2.Text = ) MessageBox.Show(请输入用户名或密码); else string sql = select + textBox1.Text
14、 + from 登录信息表 where 密码= + textBox2.Text + ; SqlConnection con = new SqlConnection(Data Source=ZHANGHAOSQL2012;Initial Catalog=职工考勤系统;User Id=sa;Password=147258); con.Open(); SqlCommand com = new SqlCommand(sql, con); SqlDataReader sread = com.ExecuteReader(); try if (sread.Read() Form3 frm2 = new Fo
15、rm3(); frm2.Show(); this.Hide(); else MessageBox.Show(登录信息有误); textBox1.Text = textBox2.Text = ; catch finally con.Close();/关闭连接 con.Dispose();/释放连接 sread.Close();/释放资源 6.2登录后页面图6-2 登录后页面登录进入的主页面主要代码:private void button1_Click(object sender, EventArgs e) panel1.Controls.Clear(); Form2 form2 = new Fo
16、rm2(); form2.TopLevel = false; panel1.Controls.Add(form2); form2.Show(); private void button2_Click(object sender, EventArgs e) panel1.Controls.Clear(); Form4 form4 = new Form4(); form4.TopLevel = false; panel1.Controls.Add(form4); form4.Show(); private void button3_Click(object sender, EventArgs e)
17、 panel1.Controls.Clear(); Form5 form4 = new Form5(); form4.TopLevel = false; panel1.Controls.Add(form4); form4.Show(); private void button4_Click(object sender, EventArgs e) panel1.Controls.Clear(); Form7 form4 = new Form7(); form4.TopLevel = false; panel1.Controls.Add(form4); form4.Show(); private
18、void button5_Click(object sender, EventArgs e) panel1.Controls.Clear(); Form6 form4 = new Form6(); form4.TopLevel = false; panel1.Controls.Add(form4); form4.Show();6.3建立上班签到表private void button1_Click(object sender, EventArgs e) try SqlConnection conn = new SqlConnection(Data Source=ZHANGHAOSQL2012;
19、Initial Catalog=职工考勤系统;User Id=sa;Password=147258); conn.Open(); String sql = select * from 职工信息表 where 职工编号=+textBox1.Text+; SqlCommand cmd = new SqlCommand(sql, conn); cmd.ExecuteNonQuery(); SqlDataReader dr = cmd.ExecuteReader(); if (dr.HasRows) while (dr.Read() tx.Text = dr职工姓名.ToString(); else
20、MessageBox.Show(查无此人); conn.Close(); catch (Exception ex) MessageBox.Show(ex.Message); try SqlConnection conn = new SqlConnection(Data Source=ZHANGHAOSQL2012;Initial Catalog=职工考勤系统;User Id=sa;Password=147258); conn.Open(); String sql = insert into 出勤信息表(职工编号,职工姓名,上班时间)values( + textBox1.Text + ,+tx.
21、Text+, + DateTime.Now.ToShortTimeString() + ); SqlCommand cmd = new SqlCommand(sql, conn); int n=cmd.ExecuteNonQuery(); if (n 0) MessageBox.Show(签到成功,经验值+5); this.出勤信息表TableAdapter.Fill(this.职工考勤系统DataSet1.出勤信息表); conn.Close(); catch MessageBox.Show(禁止重复签到); 图6-3 出勤界面6.4职工信息表职工信息表的插入添加还有查询页面 其相关代码:
22、private void button3_Click(object sender, EventArgs e) SqlConnection conn = new SqlConnection(Data Source=ZHANGHAOSQL2012;Initial Catalog=职工考勤系统;User Id=sa;Password=147258); conn.Open(); String sql = select * from 职工信息表 where 职工编号= + textBox6.Text + ; SqlCommand cmd = new SqlCommand(sql, conn); SqlD
23、ataReader dre = cmd.ExecuteReader(); if (dre.HasRows) while (dre.Read() textBox1.Text = dre职工编号.ToString(); textBox2.Text = dre职工姓名.ToString(); textBox3.Text = dre性别.ToString(); textBox4.Text = dre年龄.ToString(); textBox5.Text = dre职称.ToString(); else MessageBox.Show(查无此人); textBox6.Text = ; this.职工信
24、息表TableAdapter.Fill(this.职工考勤系统DataSet.职工信息表); conn.Close(); conn.Dispose(); private void button4_Click(object sender, EventArgs e) try SqlConnection conn = new SqlConnection(Data Source=ZHANGHAOSQL2012;Initial Catalog=职工考勤系统;User Id=sa;Password=147258); conn.Open(); String sql = update 职工信息表 set 职工
25、姓名= + textBox2.Text + ,性别= + textBox3.Text + ,年龄= + textBox4.Text + ,职称= + textBox5.Text + where 职工编号= + textBox1.Text + ; SqlCommand cmd = new SqlCommand(sql, conn); cmd.ExecuteNonQuery(); MessageBox.Show(更新成功); conn.Close(); conn.Dispose(); textBox1.Text = ; textBox2.Text = ; textBox3.Text = ; tex
26、tBox4.Text = ; textBox5.Text = ; textBox6.Text = ; this.职工信息表TableAdapter.Fill(this.职工考勤系统DataSet.职工信息表); catch (Exception ex) MessageBox.Show(ex.Message); 图6-4 职工信息表6.5出差信息系统图6-5 出差信息系统其中各按钮代码中总时长代码: private void button3_Click(object sender, EventArgs e) try SqlConnection connn = new SqlConnection(
27、Data Source=ZHANGHAOSQL2012;Initial Catalog=职工考勤系统;User Id=sa;Password=147258); connn.Open(); String sqll = select * from 出差信息表1 where 职工编号= + textBox1.Text + ; SqlCommand cmdd = new SqlCommand(sqll, connn); SqlDataReader dr = cmdd.ExecuteReader(); if (dr.HasRows) while (dr.Read() te.Text = dr出差开始时间
28、.ToString(); tx.Text = dr出差结束时间.ToString(); catch (Exception ex) MessageBox.Show(ex.Message); try string hour; DateTime.TryParse(te.Text, out da1); DateTime.TryParse(tx.Text, out da2); tp = da2 - da1; hour = tp.TotalMinutes.ToString(); SqlConnection con = new SqlConnection(Data Source=ZHANGHAOSQL201
29、2;Initial Catalog=职工考勤系统;User Id=sa;Password=147258); con.Open(); String sql = update 出差信息表1 set 出差总时间= +hour.Substring(0,5) + 分钟 + where 职工编号= + textBox1.Text + ; SqlCommand com = new SqlCommand(sql, con); int n = com.ExecuteNonQuery(); if (n 0) this.出差信息表1TableAdapter.Fill(this.职工考勤系统DataSet3.出差信息
30、表1); MessageBox.Show(记录完成!); catch (Exception ex) MessageBox.Show(ex.Message); private void button4_Click(object sender, EventArgs e) try string s; s = this.dataGridView1.RowsdataGridView1.CurrentRow.Index.Cells0.Value.ToString(); long n = Convert.ToInt64(s); SqlConnection conn = new SqlConnection(D
31、ata Source=ZHANGHAOSQL2012;Initial Catalog=职工考勤系统;User Id=sa;Password=147258); conn.Open(); String sql = delete from 出差信息表1 where 职工编号= + n + ; SqlCommand cmd = new SqlCommand(sql, conn); cmd.ExecuteNonQuery(); MessageBox.Show(删除成功!); this.出差信息表1TableAdapter.Fill(this.职工考勤系统DataSet3.出差信息表1); conn.Close(); catch MessageBox.Show(请选择要删除的课程号); 6.6加班信息系统图6-6 加班信息系统其中删除记录代码: private void button1_Click(object sender, EventArgs e) try SqlConnection conn = new SqlConnection(Data Source=ZHANGHAOSQL2012;Initial Catalog=职工考勤系统;User Id=sa;Password=147258); conn.Open();
限制150内