当前位置:文档之家› 软件工程综合实验报告(考勤管理系统)

软件工程综合实验报告(考勤管理系统)

宿迁学院三系综合性实验实验报告课程名称软件工程学生所在系部年级2 专业班级学生姓名 任课教师 实验成绩计算机系制实验学期2008至2009 学年第学期计算机系学号员工考勤管理系统通过软件工程综合实验,使学生认识到在软件系统实际开发中运用软件工程方法的意 义,加深对软件工程所学知识的理解,初步掌握进行软件系统开发的基本方法,培养学生分析问题、解决实际问题的能力, 为毕业设计以及将来从事软件项目开发与管理工作打下 定的基础。

、设备与环境操作系统:Win dowsX P/C& 数据库:SQL Server2000。

编程工具:DEK PHI 7编程环境三、实验内容及分析1需求工程 1.1功能需求考勤管理是企业管理中非常重要的一环。

作为公司主管考勤的人员能够通过考勤管理系统 清楚的看到公司员工编号,姓名,部门以及签到时间、签离时间以及是否迟到、早退等诸多信 息。

还能够通过所有员工的出勤记录比较来发现企业管理和员工作业方面的诸多问题。

更是员 工工资及福利待遇方面重要的参考依据。

具体操作流程如下:超级用户登录本系统, 输入用户名和密码,系统进行验证,验证通过的话进入程序主界面, 在主界面对普通用户的信息进行录入, 超级用户需要输入普通用户的部门和编号进行录入, 过系统验证通过后该员工签到成功, 下班签离时超级用户先输入该普通用户的部门和编号,果该员工今天已经签到, 那样签离成功。

同时超级用户可以查询员工所有信息、某段时间内员 工的出勤情况。

本系统是一个可靠性高、可用性强的系统,能够处理基本的功能和非功能故障。

关于用 户信息的安全性和保密性提供了基本保障。

1.2数据流图用户的需求具体表现在对个人信息的提供、编辑、处理和查询上。

这就要求数据库能够满 足各种信息的输入、输出和处理。

通过分析考勤管理系统的实际内容和要求,得到一下数据流实验题目 2009年5月31日、实验目的实验时间 实验地点软件工程实验室图1顶层数据流图M 户痒X卿I 佶思益到霸団倍息 :舉剖尊岛细娱'第肉结累■5^>t ■■営的结梨:i ■ :_■「"T■ --11 = ■別除針I△考動用Kra 贱块■桂®仇I说河紂I 信总超级用戶-杳询箱媒他餌优化后的结构图为:其中编号的具体内容为:1、合格的登录信息2、程序主界面3、签到成功的返回信息4、合格的签到信息5、签离成功的返回信息6、合格的签离信息7、合格的删除条件8、删除成功信息9、合格的查询条件 10、查询结果22数据库设计本系统设计到普通用户, 也就是员工,和超级用户两类用户。

超级用户可以管理员工的签到签离操作,也可以查询员工的个人情况和出勤情况。

员工只需要告诉超级员工自己的部门和编号就可以完成签到和签离操作。

根据实际应用的需要,最大限度的提高系统的性能, 涉及5张表,分别是超级用户表、普通用户表、部门表、考勤表和考勤历史表。

2.2.1表结构分别如下:名称字段类型为空性备注a 、登录信息 b 、不合格登录信息 不合格签到信息d 、签到信息e 、不合格签离信息 P 、t、签离信息 g 合格登录信息 合格查询条件 合格签离信息、不合格删除条件 h 、删除条件i 、查询条件k 、不合格查询条件 程序主界面信息I 合格签到信息r 、、删除成功信息j 、合格删除条件0、查询结果 签到成功返回结果 s 、签离成功返回结果本系统这个表之间一定存在这某种相互制约的关系,下图为各表之间的关系图:2.2.3用到的比较重要的存储过程、触发器以及索引。

wat_insert 代码为:use ygkqgocreate proc wat_i nsert@num varchar(10),@gtime datetime as insert into worker_atte nd(nu m,gtime) values( @num ,@gtime) Go当用户选择签离,并且点击确认按钮后,执行将该员工的信息插入到考勤表中的存储过程otime_i nsert 代码为:use ygkqgocreate proc otime_ insert@num varchar(10),@otime varchar(50) asup date worker_atte nd set otime=@otime where num=@num Go2.3详细设计本系统是用del phi 制作完成的。

具体实现如下pGcuserHF 丸parcitarae sexbirdatf placeSUserT EU 迪mmsname ssexibirdttesplacsA 、超级用户需要先输入自己的用户名和密码,等待系统验证通过后才能登录系统主界面。

超级用户的用户名和密码是存放在数据库中的一个表中的。

据库。

B 、在系统主界面超级用户可以实现普通用户签到操作和签离操作,可以对普通用户的出勤情况进行修改和查询。

超级用户对普通用户进行签到操作时, 要先输入该员工的部门编号,然后输入该员工的编号。

点击确认后系统将本人的签到时间插入到考勤表中。

正确性。

勤表中则拒绝进行操作。

C 、主界面对信息的查询。

对信息的查询包括员工个人信息、员工出勤信息和部门信息。

有暂时实现该功能。

D 、主界面对考勤信息的删除操作。

删除操作包括删除当天所有签到信息、签离信息以及删除某个人的信息。

这个是通过存储过程来实现的。

3系统实现 3.1展示屏的设计在一个窗体上放一张图片,然后在图片上加相应的文字说明,增加一个timer 控件,在timer 的on time 编写相应的代码。

效果图为:3.2 登录界面的设计登录界面需要用户名和密码的验证,因此需要连接数据库,需要用到相应的控件,连接上所以运行本程序时要先连接数员工的部门编号以及员工的编号也是存储在数据库中的,在员工输入之后会核对员工输入信息的进行签离操作是针对已经签到的员工进行的,所以如果用户选择的员工编号没有出现在考这个是通过在一个新窗体中打开数据库中的表实现的。

对于比较详细的查询操作, 这里没“编号”组合框的代码同上面的类似,这里就不予列列出。

数据库,在“确定”按钮的单击事件中输入相应代码:varsuser, password:stri ng; begin suser:=form2.Edit1.Text;p assword:=form2.Edit2.Text; adoquery1.Close;adoquery1.SQL.CIear;adoquery1.SQL.Add('select mm='+""+password+""); adoquery1. Open;if adoquery1.RecordCo un t=0 the n beginapp licati on. MessageBox('edit1.SetFocus;end else beginform2.Hide; form3.Show; en d; en d;将该窗体的边界风格设置为suser,mm from SUser where suser='+""+suser+""+'and 用户名与密码错误,请重新输入','提示',mb_ok); 3.3 主界面的设计控件的放置如下图所示, 在“部门”组合框的ondropdown 事件中获得数据库中关于部门的信息,代码为:var i,j:i nteger; begincombobox1.Clear; adoquery1.sql.Clear;adoquery1.sQL.Add('select disti net * from de p'); //adoqueryl. Open;j:= adoqueryI.RecordCo unt; //recordco untif j>0 the nbegin adoqueryl.first; for i:=0 to j-1 do begincombobox1.ltems.Add(adoquery1.FieldList[0].asstri ng);// adoqueryl.Next; en d; end elseapp licati on. MessageBox(' end;从数据库的dep 表中读取数据 为读取的记录数 增加部门编号没有部门的信息’,’提示',mb_ok);bsnone ,效果图为:-else if radiobutt on4 .Checked the n begi n// 选择签离操作adoqueryl.SQL.CIear; adoquery1.SQL.Add('seIectnum="'+combobox2.Text+""); adoqueryl. Open; if adoqueryI.RecordCo un t>0 the n begin with ADOStored Procl do begin Close; P rocedureName:='otime_i nsert'; P arameters.CIear; P arameters.Refresh; P arameters .P aramByName(' @nu m').Value:= combobox2.Text; P arameters .P aramByName('@otime').VaIue:= time();// Exec Proc; en d;// 判断是否早退if formatdatetime('hh:mm:ss',time) <=('18:00:00') the n edit6.Text:=' 是' else edit6.Text:=' end else app licati on. MessageBox(' end elseapp licati on. MessageBox(' // 没有选择签离还是签到 end else beginfrom worker attend 插入签离时间 该人没有签到不能签离!where','出错啦! ',mb_ok)请选择签到还是签离','提示',mb_ok);该界面的关键功能是“确认”按钮,单击此按钮后将数据插入到考勤表中,并且显示该 员工的个人信息和其是否迟到早退的情况,代码为:adoqueryl.SQL.CIear;adoquery1.SQL.Add('select * from cuser where num="'+combobox2.Text+""); adoqueryl. Open; //获取输入的员工号的记录if adoqueryI.RecordCo un t>0 the n beginedit1.Text:=(adoquery1.FieldList[2].asstri ng);//edit2.Text:=(adoquery1.FieIdList[l].asstri ng);edit3.Text:=(adoquery1.FieIdList[3].asstri ng); edit4.Text:=(adoquery1.FieIdList[4].asstri ng); if radiobutt on 3.Checked the n begin// 签到操作with ADOStored Procl do begin Close; // 将这条记录插入到考勤表中 P rocedureName:='wat_ in sert'; P arameters.CIear; P arameters.Refresh;P arameters .P aramByName(' @nu m').Value:= combobox2.Text; P arameters. ParamByName('@gtime').Value:= time(); Exec Proc; en d; // 判断是否迟到if formatdatetime('hh:mm:ss',time) <=('9:00:00') the n edit5.Text:=' 是' elseedit5.Text:='end 显示员工相关信息app licati on. MessageBox(' combobox2.SetFocus;“删除当前所有签到记录”按钮与“删除所有签离记录”按钮的单击事件的代码相似。

相关主题