




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计报告 题 目 考勤管理系统 -课程设计报告 课 程 名 称 软件项目实践(一) 院 部 名 称 信息技术学院 专 业 计算机科学与技术 班 级 09计算机科学与技术(1) 学 生 姓 名 xxx 学 号 09221060xx 课程设计地点 b407 课程设计学时 40 指 导 教 师 xx 1导言1、1系统开发目的 考勤系统进行企业管理越来越适应企业的需要,集信息的输入,显示,修改,删除等各种处理,信息维护方便,给公司可以带来很大的便利。1、2背景 考勤管理系统利用计算机管理考勤工作,大大降低了工作人员的工作量,提高工作效率,对于员工们的出勤率有个明显的记录,对于公司的职员也有基本了解根据出勤情况可以计算员工的实际工资。 2、考勤管理系统的需求分析 作为一个考勤系统最重要的功能当数考勤了也就是能够将员工上班签到的日期与时间记录下来。当然记录下签到信息后,应该具有其他的辅助功能比ii1查询员工某天的签到情况”、”修改签到情况”、”员工的维护”、”公司上班时间的设置”等下面就本系统完成的功能做一个简单的需求分析。 2、1签到功能这是最核心的功能。当员工上班后,输入自己的员工号进行签到操作就可以把到达公司的时间记录下来并且保存到数据库中,以备查询。在签到过程中,需要记录的信息包括员工号、签到的日期和签到的具体时间,最好能把签到的结果记录下来这些结果包括以下几种:正常、迟到、出差、请假、旷班。 2、2查询功能 签到功能中要求将员工上班的签到情况记录下来也就是供以后查询用。若要查询某个员工在某段时问或者某天的出勤情况,只要输入员工号,并输入要查询的日期即可将此员工在当天的出勤情况显示出来 2、3修改功能 对于出勤到公司的员工来说通过签到即可将签到信息记录下来,并且只有两种结果”正常”和”迟到”。可是对于因为某种原因(出差、请假等)不能到公司的员工来说,因为没有签到就没有当天的出勤记录。为此增加了修改功能,主管人员可以对员工的信息进行修改,将每个员工的出差请假等情况记录下来。 3、应用环境 客户机为普通pccpu:p(r) 2.1ghz;内存:2gwindowxp等分辨率适应屏幕。4、功能规格1) 考勤管理2) 基本信息输入3) 考勤统计4) 日志查询及统计5、性能需求确保可靠性,保证信息的正确完整,有严格的管理权限只有系统规定人员才可以进入查询,防止非法侵入和数据的丢失。6、参考资料1. 软件工程案例教程,韩万江等,机械工业出版社;2.需求分析与系统设计,lesxek a.maciasxek著,机械工业出版社;3.软件测试技术概论,古乐、史九林,清华大学出版社;4.软件测试 第2版,paul c.jorgensen,机械工业出版社。7.基本设计概念7.1系统整体设计思想 本系统按照.net体系标准进行设计与开发。采用ood(面向对象)设计方法,将系统中的所有参与者都视为对象,根据需求调研报告来确定每个对象的属性与方法,和对象之间的关系。整个系统采用细粒度概念来设计对象,拆分功能复杂的对象,使每个对象的功能单一化,以提高系统的可扩展性。7.2系统安全设计 为了防范黑客及其它非法入侵,以及考勤信息的泄漏,本系统在安全控制上采用杀毒软件和分级用户权限管理并行的方式。8、需求规定考勤管理根据用户需求,系统功能结构如下:考勤管理系统录入考勤信息息删除考勤信息息系统管理考勤信息修改2改考勤信息检查索权限管理系统配置信息检索报表生成8-1结构图9、各功能分析9、1增加考勤记录 功能描述:1.上班时间打卡信息录入 a. 8点之前打卡员工到勤信息的录入b. 8:00 8:30之间员工迟到信息的录入 c.8:30之后员工到达或不到(缺勤)信息的录入(即录入时已认为缺勤,是否到达的信息不由系统控制)2. 下班时间打卡信息录入 a . 16:00之前员工打卡离开记为缺勤信息的录入 b. 17:30之前员工打卡离开记为早退信息的录入 录入限制条件:1. 打卡器首先向系统输入员工的编号,由系统自动录入,已有考勤信息的,考勤信息则是只读的,反之则可写的。2. 当处于固定时间段时,无法录入其他时间段的信息。当考勤信息已先行录入时,查询考勤系统,已只读显示考勤情况。9、2考勤信息的删除功能描述:当考勤系统处错误的时候,要能够调出并删除这些记录。例如,当员工发现自己的考勤信息有错误时,可以向自己的上级反映,以便及时删除。9、3系统管理权限管理 a. 普通员工可以查询自己某一天或某一时间段内的到岗情况; b. 初级管理员(部门负责人)可以修改并查询该部门的某个员工在某一天或某一时间段的到岗情况,是否存在违规,如有违规,违规类型是什么; c. 高级管理员(总负责人)拥有初级管理员的能力,并可对初级管理员进行任务的分派,增加和删除。9. 4考勤信息修改系统功能:当员工的考勤信息录入不当时,这时应该及时向上级反映,上机根据情况修改该员工的考勤信息。1.1员工应被授予任何时候查询自己的考勤信息的权限,以便及时发现自己的考勤信息中的错误及遗失。1.2员工没有修改自己的考勤信息的权限,只有在发现自己的信息出现错误后及时向管理员反映,以便管理员能够及时修改系统错误。9、5考勤信息检索10、功能描述:对公司所有员工的到岗信息进行查询10-1系统流程图11、实现功能介绍:能够按照页面所列项的and或者or进行查询,查询结果可以显示出:a. 普通员工可以查询自己某一天或某一时间段内的到岗情况;b. 初级管理员(部门负责人)可以修改并查询该部门的某个员工在某一天或某一时间段的到岗情况,是否存在违规,如有违规,违规类型是什么;c. 高级管理员(总负责人)拥有初级管理员的能力,并可对初级管理员进行任务的分派,增加和删除。12、查询结果页面表头如下:1. 员工姓名2. 员工编号3. 所属部门4. 处罚日期5. 违规次数6. 违规类型13、详细设计概述 根据需求分析画出uml建模如下;13-1 uml模型系统e-r图13-2 e-r图活动图13-3活动图14、数据库设计 14、1数据库需求分析针对本系统,通过对企业考勤管理的内容和数据流程分析,设计的数据项和数据结构如下所示:1. 员工考勤信息。包括的数据项有员工号、缺勤时间、缺勤天数、缺勤类别。2. 缺勤类型信息。包括的数据项有缺勤类型、名称、描述等。 14、2数据库逻辑结构设计在上面的实体以及实体之间关系的基础上,形成数据库中的表格以及各个表格之间的关系。考勤管理系统数据库中各个表格的设计结果如下面的几个表格所示。每个表格表示在数据库中的一个表。表1为考勤管理表表1 考勤管理表格kq列名数据类型可否为空说明emp_novarchar(6)not null员工号(主键)qq_datevarchar(6)not null时间qq_daynumbernumber(3,1)null缺勤天数qq_lbvarchar(6)null缺勤类别qq_reasonvarchar(6)null缺勤理由表2为缺勤管理表表2 缺勤类别表格qqlb列名数据类型可否为空说明qq _lbvarchar(3)not null缺勤类别(主键)qq_mcvarchar(10)null名称qq_msvarchar(10)null缺勤类型描述表3为考勤管理表kq表2 员工基本情况表格yg列名数据类型可否为空说明emp_novarchar(6)not null员工号(主键)emp_namevarchar(10)null员工姓名emp_zwvarchar(10)null员工职务emp_departmentvarchar(10)null员工部门14、3数据库结构的实现经过前面的需求分析和概念结构设计后,得到数据库的逻辑结构,现在就可以在sql server2000数据库系统中实现该逻辑结构,这是利用sql server2000数据库系统中的sql 查询分析器实现的。具体功能实现模块代码模块 /* * 当点击上班按钮时执行此方法 * * */private void btnshangban_click(object sender, system.eventargs e)string id,name=,selsql,selsql2,selsql3,insertsql,strtoday,strtime,strpwd=,strhour,strminute,strcidao,strkuanggong;string stryear,strmon;int count=0;id=ddid.selecteditem.text.trim();strtoday=system.datetime.today.toshortdatestring();strtime=system.datetime.now.toshorttimestring();strhour=system.datetime.now.hour.tostring();strminute=system.datetime.now.minute.tostring();stryear=system.datetime.now.year.tostring();strmon=system.datetime.now.month.tostring();selsql=select name from usermessage where id=+id+;selsql2=select name from kaoqin where id=+id+ and kqdate=+strtoday+;selsql3=select password from usermessage where id=+id+;if(txtname.text.equals()info.text=请选择用户编号!;elsecon.open();com=new oledbcommand(selsql3,con);reader=com.executereader();while(reader.read()strpwd=reader.getstring(0);reader.close();com.dispose();con.close();if(txtpwd.text.equals(strpwd)con.open();com=new oledbcommand(selsql2,con);reader=com.executereader();while(reader.read()count+;reader.close();com.dispose();con.close();if(count=0)con.open();com=new oledbcommand(selsql,con);reader=com.executereader();while(reader.read()name=reader.getstring(0);reader.close();com.dispose();con.close();if(system.convert.toint32(strhour)9 | (system.convert.toint32(strhour)=9 & system.convert.toint32(strminute)0)strkuanggong=旷工;strcidao=否;else if(system.convert.toint32(strhour)8 | (system.convert.toint32(strhour)=8 & system.convert.toint32(strminute)30)strcidao=迟到;strkuanggong=0;elsestrkuanggong=0;strcidao=否;insertsql=insert into kaoqin values(+id+,+name+,+strtoday+,+strtime+,0,+strcidao+, , , ,+strkuanggong+,+stryear+,+strmon+);con.open();com=new oledbcommand(insertsql,con);com.executenonquery();com.dispose();con.close();info.text=考勤成功!;elseinfo.text=系统已经记录您的考勤信息,不能重新记录!;elseinfo.text=用户密码错误!;con.close();上班实现模块 /* * 当点击下班按钮时执行此方法* * */private void btnxiaban_click(object sender, system.eventargs e)string id,selsql,selsql2,selsql3,selsql4,selsql5,strpwd=,insertsql,strtoday,strtime,strhour,strminute,strzaotui,strkuanggong;int count=0,count2=0,count3=0,count4=0;id=ddid.selecteditem.text.trim();strtoday=system.datetime.today.toshortdatestring();strtime=system.datetime.now.toshorttimestring();strhour=system.datetime.now.hour.tostring();strminute=system.datetime.now.minute.tostring();selsql=select name from kaoqin where id=+id+ and kqdate=+strtoday+ and lgdate=0;selsql2=select name from kaoqin where id=+id+ and kqdate=+strtoday+;selsql3=select password from usermessage where id=+id+;selsql4=select name from kaoqin where id=+id+ and dgdate=0 and kqdate=+strtoday+;selsql5=select name from kaoqin where id=+id+ and kg=旷工;if(txtname.text.equals()info.text=请选择用户编号!;elsecon.open();com=new oledbcommand(selsql3,con);reader=com.executereader();while(reader.read()strpwd=reader.getstring(0);reader.close();com.dispose();con.close();if(txtpwd.text.equals(strpwd)con.open();com=new oledbcommand(selsql4,con);reader=com.executereader();while(reader.read()count3+;reader.close();com.dispose();con.close();if(count3!=0)info.text=系统没有记录您今天的上班信息,因此不能记录您的下班信息!;elsecon.open();com=new oledbcommand(selsql2,con);reader=com.executereader();while(reader.read()count2+;reader.close();com.dispose();con.close();if(count2=0)info.text=系统没有记录您今天的上班信息,因此不能记录您的下班信息!;elsecon.open();com=new oledbcommand(selsql,con);reader=com.executereader();while(reader.read()count+;reader.close();com.dispose();con.close();if(count!=0)con.open();com=new oledbcommand(selsql5,con);reader=com.executereader();while(reader.read()count4+;reader.close();com.dispose();con.close();if(count4=0)if(system.convert.toint32(strhour)17)strkuanggong=旷工;strzaotui=否;else if(system.convert.toint32(strhour)=17 & system.convert.toint32(strminute)30)strzaotui=早退;strkuanggong= ;elsestrkuanggong= ;strzaotui=否;insertsql=update kaoqin set lgdate=+strtime+,zt=+strzaotui+,kg=+strkuanggong+,cd=否 where id=+id+ and kqdate=+strtoday+;con.open();com=new oledbcommand(insertsql,con);com.executenonquery();com.dispose();con.close();info.text=考勤成功!;elsestring insert=update kaoqin set lgdate=+strtime+ where id=+id+ and kqdate=+strtoday+;con.open();com=new oledbcommand(insert,con);com.executenonquery();com.dispose();con.close();info.text=考勤成功!;elseinfo.text=系统已经记录您的考勤信息,不能重新记录!;elseinfo.text=用户密码错误!;con.close();事假实现模块 /* * 当点击事假按钮时执行此方法* * */private void btnshijia_click(object sender, system.eventargs e)string id,selsql,selsql2,strpwd=,insertsql,strtoday,strtime,strhour,strminute,stryear,strmon;int count=0;id=ddid.selecteditem.text.trim();strtoday=system.datetime.today.toshortdatestring();strtime=system.datetime.now.toshorttimestring();strhour=system.datetime.now.hour.tostring();strminute=system.datetime.now.minute.tostring();stryear=system.datetime.now.year.tostring();strmon=system.datetime.now.month.tostring();selsql=select password from usermessage where id=+id+;selsql2=select name from kaoqin where id=+id+ and kqdate=+strtoday+;insertsql=insert into kaoqin values(+id+,+txtname.text+,+strtoday+,0,0,否,否, ,事假, ,+stryear+,+strmon+);if(txtname.text.equals()info.text=请选择用户编号!;elsecon.open();com=new oledbcommand(selsql,con);reader=com.executereader();while(reader.read()strpwd=reader.getstring(0);reader.close();com.dispose();con.close();if(txtpwd.text.equals(strpwd)con.open();com=new oledbcommand(selsql2,con);reader=com.executereader();while(reader.read()count+;reader.close();com.dispose();con.close();if(count=0)con.open();com=new oledbcommand(insertsql,con);com.executenonquery();com.dispose();con.close();info.text=考勤成功!;elseinfo.text=系统已经记录您的考勤信息,不能重新记录;elseinfo.text=用户密码错误!;con.close();病假实现模块 /* * 当点击病假按钮时执行此方法* * */private void btnbingjia_click(object sender, system.eventargs e)string id,selsql,selsql2,strpwd=,insertsql,strtoday,strtime,strhour,strminute,stryear,strmon;int count=0;id=ddid.selecteditem.text.trim();strtoday=system.datetime.today.toshortdatestring();strtime=system.datetime.now.toshorttimestring();strhour=system.datetime.now.hour.tostring();strminute=system.datetime.now.minute.tostring();stryear=system.datetime.now.year.tostring();strmon=system.datetime.now.month.tostring();selsql=select password from usermessage where id=+id+;selsql2=select name from kaoqin where id=+id+ and kqdate=+strtoday+;insertsql=insert into kaoqin values(+id+,+txtname.text+,+strtoday+,0,0,否,否,病假, , ,+stryear+,+strmon+);if(txtname.text.equals()info.text=请选择用户编号!;elsecon.open();com=new oledbcommand(selsql,con);reader=com.executereader();while(reader.read()strpwd=reader.getstring(0);reader.close();com.dispose();con.close();if(txtpwd.text.equals(strpwd)con.open();com=new oledbcommand(selsql2,con);reader=com.executereader();while(reader.read()count+;reader.close();com.dispose();con.close();if(count=0)con.open();com=new oledbcommand(insertsql,con);com.executenonquery();com.dispose();con.close();info.text=考勤成功!;elseinfo.text=系统已经记录您的考勤信息,不能重新记录;elseinfo.text=用户密码错误!;con.close();旷课实现模块 /* * 当点击旷工按钮时执行此方法* * */private void button1_click(object sender, system.eventargs e)string id,selsql,selsql2,strpwd=,insertsql,strtoday,strtime,strhour,strminute,stryear,strmon;int count=0;id=ddid.selecteditem.text.trim();strtoday=system.datetime.today.toshortdatestring();strtime=system.datetime.now.toshorttimestring();strhour=system.datetime.now.hour.tostring();strminute=system.datetime.now.minute.tostring();stryear=system.datetime.now.year.tostring();strmon=system.datetime.now.month.tostring();selsql=select password from usermessage where id=+id+;selsql2=select name from kaoqin where id=+id+ and kqdate=+strtoday+;insertsql=insert into kaoqin values(+id+,+txtname.text+,+strtoday+,0,0,否,否, , ,旷工,+stryear+,+strmon+);if(txtname.text.equals()info.text=请选择用户编号!;elsecon.open();com=new oledbcommand(selsql,con);reader=com.executereader();while(reader.read()strpwd=reader.getstring(0);reader.close();com.dispose();con.close();if(txtpwd.text.equals(strpwd)con.open();com=new oledbcommand(selsql2,con);reader=com.executereader();while(reader.read()count+;reader.close();com.dispose();con.close();if(count=0)con.open();com=new oledbcommand(insertsql,con);com.executenonquery();com.dispose();con.close();info.text=考勤成功!;elseinfo.text=系统已经记录您的考勤信息,不能重新记录;elseinfo.text=用户密码错误!;con.close();15、任务概述15、1目标 调试程序的正确性,对需要改进的地方进行调整,确保程序与需求分析相匹配,对以前的设计程序成果做一个书面总结。16、运行环境1)单机运行 数据库:sql 2000 操作系统:win98/2000/me/xp/nt/2003 2)联网运行 数据库:ms sql server 2000以上企业版/标准版 工作站操作系统:win98/2000/me/xp/nt 服务器操作系统:window nt/2000/2003 server 17、测试环境 18、测试时间、地点时间:3月27地点:b40719、测试内容说明 19、1测试
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 回顾高中师生情谊的优美语句摘抄
- 数字化时代下文化遗产展示与传播在文化遗产地文化产业发展中的应用报告
- 工业互联网平台AR交互技术在工业设备状态监测与预警中的应用研究报告001
- 2025年元宇宙社交平台社交电商模式创新与挑战报告
- 咨询工程师宏观课件下载
- 咨询工程师培训视频课件
- 咨询工程师串讲课件
- 2025年医药企业研发外包(CRO)模式药物研发生物技术产品研发报告
- 2025年医药企业研发外包(CRO)技术转移与人才培养报告
- 2025年医药流通企业供应链优化与成本控制智能供应链管理供应链管理政策法规影响报告
- (2025)发展对象考试试题附及答案
- 2025家庭装饰装修合同范本
- (高清版)DZT 0145-2017 土壤地球化学测量规程
- 冰淇淋行业招商策划
- 口腔临床药物学:自制制剂、防龋药物
- 安徽省技能人才评价考评员考试题库
- 网络域名及域名解析PPT课件
- 浙江省2016年10月物理学业水平考试试题
- 苏州大学物理化学真题
- 《FABI、ACE、CPR介绍话术》
- 装饰装修自评报告
评论
0/150
提交评论