《人事考勤管理系统课程设计12936.docx》由会员分享,可在线阅读,更多相关《人事考勤管理系统课程设计12936.docx(70页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、课程设计计 人事考勤勤管理系系统 目录录第一部分分:开发发背景.3第二部分分:系统统分析33第三部分分:系统统设计.99第四部分分:公共共类设计计.15第五部分分:主题题窗设计计.116第六部分分:用户户登录模模块设计计.17第七部分分:用户户管理模模块设计计20第八部分分:部门门管理模模块设计计23第九部分分:人员员信息管管理模块块设计.322第十部分分:考勤勤模块设设计400第十一部部分:考考勤汇总总模块设设计45第十二部部分:后后续补充充部分: 一一些过程程的具体体实现方方法总结结及图片片解释:.551第十三部部分:心心得.511人事考勤勤管理系系统 开发背景景随着公司司业务不不断发展展
2、,员工工数量不不断增加加,人事事考勤方方面的管管理已成成为公司司管理中中的重要要部分,但但传统的的人事考考勤制度度已不能能有效地地管理员员工的出出勤状况况,急需需一套人人事考勤勤管理的的有效工工具人事考考勤管理理系统。 二、系统统分析1) 需求分析析 通过对对人事考考勤管理理过程的的研究和和分析,要要求本系系统应该该具有以以下功能能。a) 用户登录录。b) 部门信息息录入c) 人员信息息管理d) 考勤信息息录入e) 考勤信息息汇总。2) 系统功能能描述用户需要要输入用用户名和和密码进进入人事事考勤管管理系统统,对各各部门、员工的的基本信信息进行行维护和和管理。在考勤勤管理模模块中录录入员工工当
3、天的的考勤信信息,同同时可对对年、月月、员工工进行查查询。此此外,还还可以通通过考勤勤汇总查查询模块块对员工工某月的的考勤记记录进行行汇总,计计算出员员工月工工作天数数、早退退、迟到到的天数数。 三、系统统设计1) 系统目标标人事考勤勤管理系系统以实实现员工工日常出出勤信息息管理为为设计目目标,加加以强大大的数据据库管理理功能,可可以极大大地提高高人事部部门的日日常工作作效率。本系统统在设计计时满足足以下几几点:a) 采用人机机对话的的操作方方式,信信息查询询灵活、方便、快捷、准确,数数据存储储安全可可靠。b) 对考勤信信息的操操作简单单,可以以方便地地进行添添加、修修改、和和删除。c) 可以
4、录入入员工信信息、部部门信息息。d) 对员工的的考勤信信息按月月汇总计计算。e) 对用户输输入的数数据,系系统进行行严格的的数据检检验,尽尽可能排排除人为为错误。f) 系统最大大限度地地实现了了易维护护性和易易操作性性。g) 系统运行行稳定、安全可可靠。2) 系统功功能结构构人事考勤勤管理系系统的功功能结构构如图所所示:人事考勤管理系统考勤数据录入考勤信息汇总用户管理部门信息管理员工信息管理3) 业务流图图人事考勤勤管理系系统业务务流程图图如图:用户退出登录员工信息管理员工考勤管理修改密码部门管理用户管理考勤查询4)系统统预览:人事考勤勤管理系系统由多多个功能能模块组组成,下下面仅列列出一些些
5、典型的的功能模模块,其其他模块块以后陆陆续列出出:a) 部门管理理模块如如图:主要管理理各部门门之间的的结构信信息b) 用户管理理模块如如图:用于用户户的一些些操作管管理c) 人员信息息管理如如图:主要用于于维护员员工的基基本信息息d) 考勤管理理模块如如图: 用于记记录人事事考勤的的信息e) 考勤汇总总查询如如图:对员工的的考勤信信息进行行汇总统统计4) 数据库设设计A. 数据库分分析人事考勤勤系统采采用SQQL SServver 20008 数数据库,数数据库名名称为 tb_perrsonn 在数数据库中中建立四四个表存存储不同同的信息息,如图图:B. 数据库概概念设计计根据介绍绍的需求求
6、分析和和系统设设计,规规划处本本系统中中使用的的数据库库实体对对象,分分别以管管理员为为实体,部部门实体体和考勤勤实体等等。下面面是实体体E-RR图。a) 管理员实实体管理员包包括编号号,用户户,密码码。管理理员实体体E-RR图用户编号密码管理员 b)部部门实体体部门实体体包括编编号,部部门名称称,备注注信息和和上级部部门编号号。部门门实体EE-R图图上级部门管理备注信息部门名称部门编号部门管理c)员工工实体员工编号自动编号员工实体体包括自自动编号号,员工工编号,员员工姓名名,照片片,性别别和生日日等信息息。员工工E-RR图性别生日员工姓名照片员工d)考勤勤实体上班时间考勤实体体包括人人员姓名
7、名,考勤勤信息,上上班时间间,下班班时间下班时间下班考勤时间人员姓名上班考勤时间考勤日期C.数据据库逻辑辑设计a) 管理员信信息表(ttab_useer),用用于保存存管理员员的信息息,如图图:b) 部门信息息表(ttab_Deppt)用用于记录录部门的的信息,如如图:C) 考考勤信息息表(ttab_cheeck)用用于记录录考勤信信息c) 员工信信息表(ttab_Empployyeess)保存存公司员员工信息息,如图图: 四、公共共类设计计本系统采采用ADDO连接接数据库库。为了了能够方方便的使使用ADDO建立立数据库库连接并并进行相相应的数数据操作作,在公公共类中中对系统统中是使使用的AA
8、DO操操作进行行了封装装。在系系统中建建立了AADO的的两个公公共类CCADOOConnnecctioon和CCADOODattaSeet,这这两个类类定义在在ADOO.h头头文件中中,实现现在ADDO.ccpp文文件中。ACAADOCConnnecttionn类CADOOConnnecctioon类是是用来连连接数据据库的,实实现了对对_Coonneectiion接接口的封封装。CCADOOConnnecctioon类在在头文件件中的定定义如下下: #impportt CC:PProggramm FiilessCoommoon FFileesSSysttemadoomssadoo15.dll
9、l no_nammesppacee reenamme(EOFF,adooEOFF)classs CCADOOConnnecctioonprivvatee:staaticc vooid IniitADDO();/初始化化ADOOstaaticc vooid UnIInittADOO();prottectted:_CoonneectiionPPtr m_CConnnecttionn;/指针接接口publlic:BOOOL IIsOppen();/判断断是否与与数据库库连接_CoonneectiionPPtr GettConnnecctioon();/获取连连接接口口CSttrinng GGetSS
10、QLCConSStr();/获取取SQLL连接字字符串BOOOL OOpenn(CSStriing ConnStrr);/建立立数据库库连接CADDOCoonneectiion();virrtuaal CADDOCoonneectiion();CADOOConnnecctioon类的的实现代代码如下下:CADOOConnnecctioon * GeetCoonneectiion()/GettConnnecctioon函数数是一个个全局函函数,用用于返回回全局数数据库连连接对象象的的指指针retturnn &gg_Coonneectiion;CADOOConnnecctioon:CADDOCoo
11、nneectiion()/CADDOCoonneectiion方方法是构构造方法法,用于于初始化化OLEE和创建建_Coonneectiion接接口指针针IniitADDO();m_CConnnecttionn.CrreatteInnstaancee(AADODDB.CConnnecttionn);CADOOConnnecctioon:CAADOCConnnecttionn()/CCADOOConnnecctioon方法法是构造造方法,用用于取消消OLEE 的初初始化和和释放_Connnecctioon接口口指针if (IssOpeen()m_Connnecctioon-Cloose();m_
12、CConnnecttionn = NULLL;UnIInittADOO();voidd CAADOCConnnecttionn:IInittADOO()/InnitAADO是是一个静静态方法法,用于于初始化化OLEEiff (CConCCounnt+ = 0) CCoInnitiialiize(NULLL);voidd CAADOCConnnecttionn:UUnInnitAADO()/UnIInittADOO是一个个静态方方法,用用于取消消初始化化OLEEiff (-CoonCoountt = 0) CoUUninnitiialiize();BOOLL CAADOCConnnecttion
13、n:OOpenn(CSStriing ConnStrr)/通过指指定的数数据库连连接字符符串于SSQL数数据库建建立连接接if (IssOpeen()m_Connnecctioon-Cloose();m_CConnnecttionn-OOpenn(_bsttr_tt)CoonSttr,aadMoodeUUnknnownn);retturnn IssOpeen();CStrringg CAADOCConnnecttionn:GGetSSQLCConSStr()/生成数数据库连连接需要要的字符符串CSttrinng SStr;Strr.Foormaat(Proovidder=SQLLOLEEDB.
14、1;IInteegraatedd Seecurrityy=SSSPI;Perrsisst SSecuuritty IInfoo=Faalsee;Innitiial Cattaloog=ttb_ppersson;Datta SSourrce=LONNGFEEI-PPCSQLLEXPPRESSS);retturnn Sttr;_ConnnecctioonPttr CCADOOConnnecctioon:GettConnnecctioon()/该该方法用用于返回回_Coonneectiion接接口指针针retturnn m_Connnecctioon;BOOLL CAADOCConnnecttion
15、n:IIsOppen()/判断当当前数据据库连接接对象与与数据库库的连接接状态lonng SStatte;m_CConnnecttionn-gget_Staate(&Sttatee);if (Sttatee = addStaateOOpenn)reeturrn ttruee;retturnn faalsee;CADOODattaSeet类的的定义如如下:classs CCADOODattaSeetprottectted:_ReecorrdseetPttr mm_DaataSSet;/数数据集接接口指针针CADDOCoonneectiion *m_Connnecctioon;/数据据库连接接对象
16、publlic:BOOOL OOpenn(CSStriing SQLLStrr,innt LLockkTyppe);/打打开记录录集voiid DDeleete();/记录录删除intt GeetReecorrdNoo();/获获取记录录集行号号voiid mmovee(innt nnInddex);/移动记记录指针针voiid SSavee();/保保存对记记录集的的修改voiid SSetFFielldVaaluee(CSStriing FieeldNNamee,_vvariiantt_t Vallue);/设置字字段的值值voiid AAddNNew();/添加加新纪录录BOOOL NN
17、extt();/记记录集指指针指向向下一个个记录FieeldssPtrr GeetFiieldds();/获取记记录集字字段集合合intt GeetReecorrdCoountt();/获获取记录录集中记记录数量量voiid SSetCConnnecttionn(CAADOCConnnecttionn *ppConn);/设置置记录集集的数据据库连接接对象BOOOL OOpenn(CSStriing SQLLStrr);/打开开记录集集CADDODaataSSet();virrtuaal CADDODaataSSet();privvatee:BOOOL IIsOppen();CADOODatt
18、aSeet类的的实现如如下:CADOODattaSeet:CADDODaataSSet()/该方法法为记录录集实现现类的构构造方法法,在该该方法中中实现记记录集接接口对象象的创建建m_DDataaSett.CrreatteInnstaancee(AADODDB.RRecoordsset);CADOODattaSeet:CAADODDataaSett()/实现现记录集集的关闭闭与接口口的释放放if (IssOpeen()m_DattaSeet-Cloose();m_DDataaSett = NULLL;m_CConnnecttionn = NULLL;voidd CAADODDataaSett:
19、SSetCConnnecttionn(CAADOCConnnecttionn *ppConn)/设置记记录集所所连接的的数据库库连接类类的对象象m_CConnnecttionn = pCoon;int CADDODaataSSet:GeetReecorrdCoountt()/获取取记录集集中数据据的数量量if (IssOpeen()reeturrn mm_DaataSSet-GeetReecorrdCoountt();elssereeturrn 00;BOOLL CAADODDataaSett:OOpenn(CSStriing SQLLStrr)/打开数数据集if (IssOpeen()m_D
20、attaSeet-Cloose();/*/m_DDataaSett-OOpenn(_bbstrr_t(SQLLStrr),_vvariiantt_t(IDDisppatcch*)g_CConnnecttionn.GeetCoonneectiion(), truue),aadOppenKKeysset, addLocckOpptimmisttic, addCmddTexxt);retturnn IssOpeen();/*/BOOLL CAADODDataaSett:IIsOppen()/判断数数据集是是否处于于打开状状态lonng SStatte;m_DDataaSett-gget_Staate
21、(&Sttatee);if (Sttatee = addStaateOOpenn)reeturrn ttruee;retturnn faalsee;FielldsPPtr CADDODaataSSet:GeetFiieldds()/用用来获取取记录集集中字段段的集合合retturnn m_DattaSeet-GettFieeldss();BOOLL CAADODDataaSett:NNextt()/记录录集指针针下移一一位if (m_DattaSeet-adooEOFF)reeturrn ffalsse;m_DDataaSett-MMoveeNexxt();retturnn trrue;voi
22、dd CAADODDataaSett:AAddNNew()m_DDataaSett-AAddNNew();voidd CAADODDataaSett:SSetFFielldVaaluee(CSStriing FieeldNNamee, _varriannt_tt Vaaluee)/想记录录集中指指定的字字段赋值值m_DDataaSett-PPutCColllectt(_bsttr_tt)FiielddNamme,VValuue);voidd CAADODDataaSett:SSavee()/保存存记录集集数据所所做的修修改m_DDataaSett-UUpdaate();voidd CAADOD
23、DataaSett:mmovee(innt nnInddex)/将将记录集集的当前前指针移移动到指指定的索索引位置置m_DDataaSett-MMoveeFirrst();m_DDataaSett-MMovee(nIIndeex);int CADDODaataSSet:GeetReecorrdNoo()/获取取记录集集中的当当前行号号retturnn m_DattaSeet-AbssoluutePPosiitioon;voidd CAADODDataaSett:DDeleete()/删除记记录集中中的当前前行m_DDataaSett-DDeleete(adAAffeectCCurrrentt)
24、;BOOLL CAADODDataaSett:OOpenn(CSStriing SQLLStrr, iint LocckTyype)if (IssOpeen()m_DattaSeet-Cloose();/*/m_DDataaSett-OOpenn(_bbstrr_t(SQLLStrr),_varriannt_tt(IIDisspattch*)g_Connnecctioon.GGetCConnnecttionn(), trrue),aadOppenKKeysset,(LoockTTypeeEnuum) LocckTyype, addCmddTexxt);retturnn IssOpeen();
25、五、主题题窗设计计A.主题题窗由菜菜单和图图片组成成,如图图:B.主题题窗设计计步骤:a启动动vissuall c+,选选择Fiile/Neww命令,打打开Neew对话话框 bb在左左侧选择择MFCC ApppWiizarrd(eexe)选选项,在在Proojecct nnamee编辑框框中输入入工程名名称,在在loccatiion编编辑框中中设置保保存工程程的路径径,然后后单击OOK按钮钮,打开开MFCC ApppWiizarrd对话话框,选选择对话话框编程程,打击击fissh c像像工程中中导入位位图,菜菜单资源源(具体体操作在在最后有有补充) 六、用户户登录模模块设计计A 概述,登登录界
26、面面是每个个管理系系统应该该具备的的,本系系统的登登录模块块如图: B . 技术术分析 窗体体应在主主题窗创创建之前前并显示示,在登登录窗体体创建的的同时应应该建立立数据库库连接,具具体操作作如下:BOOLLbCoon = 、GettConnnecctioon()-OOpenn(GeetCoonneectiion()-GettSQLLConnStrr();CLogginDDiallog logginddlg;if (logginddlg.DoMModaal() != IDDOK)retuurn fallse;:CooIniitiaalizze(NNULLL);CPerrsonnDlgg dll
27、g;C. 实现过程程a. 创建一个个对话框框b. 向对话框框中添加加两个静静态文本本控件、一个编编辑框控控件、和和两个按按钮控件件。分别别设置两两个静态态文本控控件的CCapttionn属性为为“用户名名”和“密码”设置编编辑框控控件类型型为paasswwordd;分别设置置连个按按钮为“确定”和“取消”。C. 在在窗体初初始化方方法中创创建用户户表的数数据,并并将用户户添加到到列表框框控件中中。代码码如下:BOOLL CLLogiinDiialoog:OnIInittDiaalogg() CDiialoog:OnIInittDiaalogg();m_DDataaSett.SeetCoonne
28、ectiion(GettConnnecctioon();m_DDataaSett.Oppen(Seelecct * Frrom Tabb_Usser);intt coountt = m_DDataaSett.GeetReecorrdCoountt();forr (iint i = 0; iIteemLLUsserNNamee-Vaaluee);m_DattaSeet.NNextt();m_UUserrLisst.SSetCCurSSel(0);retturnn TRRUE; / rretuurn TRUUE uunleess youu seet tthe foccus to a cconttr
29、oll / EEXCEEPTIION: OCCX PProppertty PPagees sshouuld retturnn FAALSEEd 确定按钮钮事件代代码如下下:voidd CLLogiinDiialoog:OnLLogiin() CSttrinng ssql,useer,ppasss;m_UUserrLisst.GGetWWinddowTTextt(usser);m_PPasssWorrd.GGetWWinddowTTextt(paass);sqll.Foormaat(Sellectt * Froom ttab_useer WWherre UUserrNamme = %s andd
30、 PaassWWordd = %ss,usser,passs);m_DDataaSett.Oppen(sqll);if (m_DattaSeet.GGetRRecoordCCounnt() = 1):SettUseerNaame(useer);thhis-OnnOK();elsseAffxMeessaageBBox(用户户名或密密码不正正确!); 七、用户户管理模模块A. 概况:能能实现添添加,修修改,删删除等操操作如图图:B. 实现过程程:a 创建一个个对话框框b 向对话框框中添加加相应的的控件c 给对话框框添加对对话框类类d 给类添加加函数及及成员变变量e 给控件关关联变量量f 编写函数数
31、 C实实现代码码: a定定义UppdatteGrrid方方法用来来更新列列表视图图中的信信息代码码如下:voidd CUUserrMannagee:UUpdaateGGridd()m_DaataSSet.Opeen(Sellectt * Froom ttab_Useer);m_grrid.DelleteeAlllIteems();for (innt ii = 0 ; i IteemLLUsserNNamee-Vaaluee);int no = mm_DaataSSet.GettReccorddNo();m_grrid.SettIteemDaata(i,nno);m_DaataSSet.Nexx
32、t(); b添加按按钮代码码如下:voidd CUUserrMannagee:OOnApppennd() CUseerEddit useereddit;if (useereddit.DoMModaal() = IDDOK)m_DaataSSet.AdddNeww();m_DDataaSett.SeetFiielddVallue(UsserNNamee,(_bsstr_t)uuserrediit.nnamee);m_DaataSSet.Savve();UpdaateGGridd();c. 删除按钮钮代码:voidd CUUserrMannagee:OOnDeelette() if (Meessa
33、ageBBox(是否否删除此此记录!,提示,MBB_YEESNOO|MBB_ICCONWWARNNINGG) = IIDYEES)innt nno = m_griid.GGetIItemmDatta(mm_grrid.GettSellecttionnMarrk();m_DattaSeet.mmovee(noo-1);m_DattaSeet.DDeleete();m_DattaSeet.SSavee();UppdatteGrrid();d. 修改按钮钮代码:voidd CUUserrMannagee:OOnEddit() CUsserEEditt ussereeditt;intt noo = m
34、_ggridd.GeetIttemDDataa(m_griid.GGetSSeleectiionMMarkk();m_DDataaSett.moove(no-1);userrediit.nnamee = (chhar *)(_bsstr_t)mm_DaataSSet.GettFieeldss()-IttemLUUserrNamme-VValuue;if (ussereeditt.DooModdal() = IIDOKK)m_DattaSeet.SSetFFielldVaaluee(UUserrNamme,(_bbstrr_t)useereddit.namme);m_DattaSeet.SSav
35、ee();UppdatteGrrid(); 八、部门门管理模模块设计计A 概述:该该模块记记录了部部门间的的的层次次结构和和部门信信息,一一般使用用树控件件实现,如如图:B 实现过程程:a. 创创建一个个对话框框b. 向向对话框框中添加加相应的的控件c. 给给对话框框添加对对话框类类d. 给给类添加加函数及及成员变变量e. 给给控件关关联变量量f. 编写函数数 C. 相关代代码如下下:BOOLL CDDepttMannagee:OOnInnitDDiallog() /初始始化函数数CDiaalogg:OOnInnitDDiallog();m_DaataSSet.SettConnnecctioo
36、n(:GeetCoonneectiion();UpdaateDDeptt();retuurn TRUUE; 将部部门信息息一次性性读入树树控件中中。代码码如下:voidd CDDepttMannagee:GGetNNodee(HTTREEEITEEM ppNodde, intt nPPid)HTRREEIITEMM noode;CADDODaataSSet DattaSeet;DattaSeet.SSetCConnnecttionn(:GettConnnecctioon();CSttrinng sstr;strr.Foormaat(Sellectt * Froom ttab_Deppt wwh
37、erre ppid = %d,nPiid);DattaSeet.OOpenn(sttr);intt coountt = DattaSeet.GGetRRecoordCCounnt();intt IDD;_vaariaant_t vvaluue;forr (iint i = 0;iIItemmDDepttNamme-VValuue,ppNodde);vaaluee = (_vvariiantt_t)DattaSeet.GGetFFiellds()-IteemID-Vallue;IDD = vallue.inttVall;m_treee.SSetIItemmDatta(nnodee,IDD);Ge
38、etNoode(nodde,IID);DaataSSet.Nexxt(); 定义义GettNodde方法法,用于于按成次次级关系系获取部部门表中中的所有有数据,并并添加树树控件,该该方法由由UpddateeDeppt方法法进行调调用,代代码如下下;voidd CDDepttMannagee:UUpdaateDDeptt()m_ttreee.DeeletteAlllIttemss();GetNNodee(TVVI_RROOTT,0);voidd CDDepttMannagee:OOnAddd() CDeeptEEditt deepteeditt;if (deepteeditt.DooModdal
39、() = IIDOKK)HTTREEEITEEM ppNodde = m_treee.GGetSSeleecteedIttem();innt ppID;iff (ddepttediit.iisrooot)ppID = 00;ellseppID = mm_trree.GettIteemDaata(pNoode);CAADODDataaSett daatasset;daatasset.SettConnnecctioon(:GeetCoonneectiion();daatasset.Opeen(Sellectt toop 11 * Froom ttab_Deppt);daatasset.AdddNe
40、ww();daatasset.SettFieeldVValuue(DepptNaame,(_varriannt_tt)deepteeditt.naame);daatasset.SettFieeldVValuue(memmo,(_vvariiantt_t)deppteddit.memmo);daatasset.SettFieeldVValuue(PIDD,(lonng)ppID);daatasset.Savve();UppdatteDeept();单击“修修改”按钮时时将弹出出部门编编辑窗体体,输入入部门信信息后单单击“确定”按钮,实实现部门门信息的的修改。代码如如下voidd CDDepttMannagee