




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
日日击3 :哲Y禺回£80WW:W860ZIE0I800Z:害索WW2脚WWWWWWY:目矗K诲目录TOC\o"1-5"\h\z\o"CurrentDocument"1引言 1\o"CurrentDocument"1.1选题背景 1\o"CurrentDocument"1.2需求分析 1\o"CurrentDocument"1.3开发环境 2\o"CurrentDocument"功能设计 2\o"CurrentDocument"2.1功能结构图 2\o"CurrentDocument"2.2模块设计 3\o"CurrentDocument"数据结构设计 3\o"CurrentDocument"详细设计 5\o"CurrentDocument"4.1程序结构图 5\o"CurrentDocument"4.2各模块功能 7\o"CurrentDocument"调试分析 18\o"CurrentDocument"小结 19\o"CurrentDocument"参考文献 191引言1.1选题背景管理信息系统在强调管理,强调信息的现代社会中已变得越来越普及。它涉及了管理科学、信息技术和计算机技术。人事信息的管理是企事业单位的必要管理内容。企业的规模越大,所要管理的人员越多,人事管理就越复杂。随着信息技术的发展,传统的人事信息管理模式已经落伍,人们需要从繁琐的手工操作中解放出来。由于人事信息比较复杂,手工操作可能导致错误较多、工作效率不高。因此应用计算机技术实现人事信息的管理是可行而必要的工作,利用人事管理信息系统既能够提高工作效率,又可以提高工作水平。1.2需求分析本人事管理信息系统将用户分为两大类-管理者和普通员工,普通员工可以查看、修改自己的信息并完成考勤和请假的操作。管理者除了这些基本的功能还能对数据库进行统计和账户管理。人事管理信息系统应该实现以下主要功能:建立和维护员工基本信息、考勤信息、调动信息的增、删、修改;查询根据编号或姓名查询员工基本信息根据员工的编号以及时间(年、月)查询考勤信息根据员工的编号查询调动信息。统计统计某个职工的出勤情况信息;按某年某月某日统计查询某部门的迟到人数;1.3开发环境操作系统:WindowsXP;开发语言:C++;IDE:VC6.0O功能设计2.1功能结构图根据系统的功能分析,系统针的功能结构图如图1所示:图1系统的功能结构图2.2模块设计基本信息管理输入:员工的编号、姓名、性别、进入本单位时间输出:员工基本信息文件修改:修改员工信息的各项字段处理:将员工的基本信息添加到员工基本信息文件中。基本考勤信息管理输入:添加员工上下班及请假的时间。输出:员工基本考勤信息查询结果视图。处理:将考勤时间记录到数据库中。基本员工账户信息管理输入:员HID、登录密码、管理权限、上次登录时间数据库管理将内存中的信息备份到磁盘中或将磁盘中的信息写入内存数据结构设计根据系统的需求分析,员工基本信息、考勤信息、调动信息、账户信息应该分别保存各自的类体中,每个类的具体数据及结构有:数据结构概况:
Staff_Manage类总数据库其中有一个
链表。Emp类'员工信息类其中有Emp_Info、Emp_CheckIn、AccountI三个类厂 —厂 —;〜Emp_Info类其中有一个记录时间序列的链表和员工姓名ID号等信息AEmp_CheckIn类其中有两个记录时间序列的链表和员工迟到次数和请假次数的计数器/Account类其中有员工账号密码权限和上次登录时间的信息1、员工基本信息类编号:intId姓名:CStringName性别:CStringSex进入本单位时间:time_t_In所在部门:CStringOri_Depart2、2、员工考勤信息类上下班时间:time_t_Intime_t_Out迟到次数:intLate_Num早退次数:intEarly_Num请假天数:intLeave_Num假期开始时间:vector<time_t>Leave_Date3、 员工调动信息类原部门:CStringOri_Depart新部门:CStringNew_Depart调入时间:time_t_In4、 员工账户类员工ID:intId登录密码:CStringPassword管理权限:boolType上次登录时间:time_tPre详细设计4.1程序结构1、本人负责了欢迎模块、用户具体操作界面(参数修改模块、考勤信息显示模块、考勤请假操作模块、统计信息显示模块)、退出模块。下面主要介绍这几个模块的详细设计。数据结构:classStaff_Manage 〃总数据库数据成员:vector<Emp>emp 〃员工链表
成员函数:intStaff_Search();voidStaff_Emp_Register();Emp&Get_Emp();intGet_Emp_Num();classEmp数据成员: Emp_Infoemp_Info;Emp_CheckInemp_CheckIn;Accountaccount;成员函数:Emp_Info&Get_Emp_Info();Emp_CheckIn&Get_Emp_CheckIn();Account&Get_Account();classEmp_Info数据成员:intId;CStringName;CStringSex;vector<Depart_Change>depart_Change;成员函数:boolEmp_Info_Change();voidEmp_Info_Depart_Change();intGet_Id();CString&Get_Name();CString&Get_Sex();CString&Get_ComeDay();int&Get_Change_Times();Depart_Change*Get_Depart_Change();voidPush_Depart_Change();classEmp_CheckIn数据成员: vector<Check_In_Out>check_In_Out;intLate_Num;intEarly_Num;intLeave_Num;〃搜索员工〃员工注册//返回员工链表//〃搜索员工〃员工注册//返回员工链表//返回员工总数〃单个员工信息//基本信息//考勤信息〃账户信息//返回基本信息//返回考勤信息//返回账户信息〃员工基本信息类〃员工信息修改〃员工部门调动//返回//返回部门调动信息〃为链表增加节点〃签到请假等操作〃签到信息链表〃迟到次数//早退次数〃请假次数〃迟到时间成员函数:boolCheckIn();boolCheckOut();boolLeave();Check_In_Out*Get_Check_In_Out();voidPush_Check_In_Out();〃上班签到〃上班签到〃请假〃增加签到信息链表节点int&Get_Late_Num();int&Get_Early_Num();int&Get_Leave_Num();time_t*Get_Leave_Date();voidPush_Leave_Date();int&Get_Emp_CheckIn_j();intGet_Check_In_Out_Num();intGet_Leave_Date_Num();〃增加请假时间链表节点(5)classAccount数据成员:成员函数:intId;CStringPassword;boolType;time_tPre;boolRenew_Password();voidRenew_Id();boolCheck();int&Get_Id();bool&Get_Type();CString&Get_Password();time_t&Get_pre();〃账户类〃权限〃上次登录时间//修改密码//修改ID//密码验证4.2各模块功能2、欢迎模块
欢迎界面实现了信息从磁盘到内存的转换关键步骤及其解释:pf=fopen("d://Staff_Manage.txt”,"at+");在D盘上打开或新建一个文本文档char*readuntill(FILE*pf,charp)从文件指针时向后顺序抽取字符知道遇到字符并返回该字符串charnextchar(FILE*pf,intp)返回文件指针/•后第p个字符Staff_Emp_Register(Id,Name,Sex,ComeDay,"00”,0);将文件上的信息作为链表的一个节点保存2、注册模块
该模块完成新增员工信息的收集关键步骤及其解释:UpdateData(TURE);将编辑框内的数据赋值给相关联变量if(m_ID==0)MessageBox("ID不得为0!”);elseif(m_R==-1)MessageBox("请选择您的权限!”);elseif(m_Sex==-1)MessageBox("请选择您的性别!”);elseif(m_Name=="")MessageBox("请输入您的姓名!”);elseif(m_PassWord=="")MessageBox("请输入您的密码!”);elseif(m_Depart=="")MessageBox("请输入您的部门!”);检测到数据未填写完整并给予警告m_ID=0;m_Name=_T("");m_PassWord=_T("");//m_Comeday=_T("");m_Depart=_T("");m_R=-1;m_Sex=-1;UpdateData(FALSE);如果注册通过则清除编辑框上信息,防止信息泄露elseif((Dlgs->Staff_Search(m_ID)!=10000))MessageBox("该账号已被注册!");防止注册两个相同阮3、登录模块登录模块完成ID权限的识别和密码校验关键步骤及其解释:if(Dlgs->Staff_Search(m_ID)==10000)MessageBox("没有此ID");检验输入的^是否存在Staff_Emp_Check()
检验口令是否匹配Right0_Dlg.ID=My_ID;Right0_Dlg.DoModal();4、将ID号赋值给对话框下的变量,并弹出对话框4、*由于管理者用户界面是普通员工用户界面的超集,所以这里只介绍管理者用户界面。*管理者用户界面分为以下六大模块,并一一介绍参数修改模块考勤信息显示模块考勤请假操作模块基本信息显示模块统计信息显示模块(1)((1)(2)(3)(4)(5)(6)(1)参数修改模块主要完成对更新后的信息的保存关键步骤及其解释:SetDlgItemText();给编辑框赋初值,给数据修改提供参考
( 2 )Get_Emp(S->Staff_Search(*ID1)).Get_Emp_Info().Emp_Info_Depart_Change(S->Get_Emp(S->Staff_Search(*ID1)).Get_Emp_Info().Get_Depart_Change()[S->Get_Emp(S->Staff_Search(*ID1)).Get_Emp_Info().Get_Change_Times()].New_Depart,PDepart,time(0));修改信息(2)考勤信息显示模块下班时间Sw-LDec1220:47:592010下班时间Sw-LDec1220:47:592010SwiDec1220:54:342010cccCeeeeDDDD济理Tue信济Tue理信Tup息理沁经管.•通经.•管通:信管..幼1:■■::期;:::期1^■门In:□.-□:□:日□=□:□.-□:□:日—Jl-TI-rr.--rJILInplnl-rrl-71-n-rrl-.—刮刮由浏音衬音召衬制音部部原新调原新调原新调原新调1415:16:4920101415:16:4320101415:16:3220101220:47:562010主要用于显示上下班的时间和部门调动信息关键步骤及其解释:ResetContent();清除列表中的信息intcount0=Get_Emp_CheckIn_i();确定列表的长度AddString();增加类表项
(3)考勤请假操作模块主要完成时间的记录关键步骤及其解释:if(flag==0)防止连续进行上班签到SetDlgItemText(IDC_STATIC1,ctime(time(0)));显示签到的时间CheckIn();将时间信息记录到链表中(4)基本信息显示模块
「员工信息显示您的ID1姓名唐家辨性别m部门管理注册日SunDec1220:47:562010退到次数3请假次数3关键步骤及其解释:(1)SetDlgItemInt(IDC_STATIC1,*ID4);从链表中查找相关信息并显示在文本框中(5)统计信息显示模块诅到日查询 清慑日查询月部门诅到和请偏情况查询年传诅到日查询 清慑日查询月部门调职情况萱询 P ID员工基本信息查询 p IDID|姓名|性别|权限|部门|注册百MonDec1317:47:582010MonDec1310:52:252010MonDec1310:51:462010MonDec1310:45:272010SwlDec1221:11:242010SwDec1221:10:562010Dec1221:08:552010SunDec1220:44:302010SwlDec1220:44:062010信息济息理济信息理通信经信管经通信管员工工工工工工工工理员员员员员员员员管羽杰豪宏媛维成岳超楠俊祎俊婵家施邱稽吕陆颜裘顾唐O1_y8754321该模块完成10种功能的查询a、所有月份、所有部门的迟到情况查询b、所有月份、制定部门的迟到情况查询c、 指定月份、制定部门的迟到情况查询d、 所有月份、所有部门的请假情况查询e、 所有月份、制定部门的请假情况查询f、 指定月份、制定部门的请假情况查询g、 所有员工调职情况查询h、 指定员工调职情况查询i、 所有员工基本信息情况查询j、 指定员工基本信息情况查询关键步骤及其解释:UpdateData();数据收集m_list.DeleteAllItems();清空列表m_list.DeleteColumn(0);清空列表项m_list.SetExtendedStyle(3);设置类表样式m_list.InsertColumn(0,_T("ID"));设置列表标题m_list.SetColumnWidth(0,70);设置列表宽度if(m_2==0&&m_3=="0”)if(m_2==0&&m_3!="0”)if(m_3=="0”)if(m_3!="0”)if(S->Staff_Search(m_4)==0)if(S->Staff_Search(m_4)!=0)判断查询条件while(count<S->emp.size())根据链表长度确定循环次数m_list.SetItemText();为列表插入列表项关键步骤及其解释:if(S->Staff_Search(m_ID)==10000||m_ID==0)MessageBox("没有此ID!");判断ID是否存在(2)elseif(m_ID==*ID6)MessageBox("不得删除正在使用的ID!");判断是否删除正在使用险S->emp[S->Staff_Search(m_ID)].emp_Info.Id=9999999;MessageBox("删除成功!”);删除账号4、退出模块完成信息从内存到磁盘的转换关键步骤及其解释:pf=fopen("d://Staff_Manage.txt”,"wt”);重写文本文件rewind(pf);设置文件指针intEmp_Count=S->emp.size();intcount=1;intcount11=0;intcount12=0;intcount2=0;设置5和循环计数器fwrite("{”,1,1,pf);写入链表头标记fwrite(”〜”,1,1,pf);写入字段分隔符S->emp.clear();清空数据库fclose(pf);刷新数据缓冲区,并释放文件指针4.调试分析数据库设计数据库是软件运行的基础,对员工信息的插入、删除、修改、统计等操作都与数据库有密切的关系。我把所有的员工信息包含在一个类中,它包括基本身份信息、考勤信息、账号信息、考勤信息。在这个类中设置了一个保存员工权限的字段(intRight),以此将所有的员工分为普通员工(Right=0)和管理者(Right=1),并为两种不同的员工设置不同操作界面以完成不同的功能。在考勤信息和调至信息中都涉及到对事件的处理。由此我在数据库中增加相对应的time_t型字段,并定义time_t型的链表以保存一连串的时间序列。在对时间信息进行查询或是比对时将time_t型转化为tm型,对时间信息进行显示的时候,把time_t型转为char*型可以高效的对时间进行处理。(二) 数据库在多个对话框之间共享人事管理系统是一个基于数据库的应用程序。数据库至关重要,我认为保存数据库的类至少具备两个必要条件。一它的生命周期全局的也就是说从程序开始运行到退出数据库始终存在于内存中,二他对所有的对话框可见。为了满足第一个条件,我将数据库类的实例定义在CView类下以满足它对生命周期的要求。为了是数据库可见我将所有的对话框定
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电玩竞技桌与座椅出租考核试卷
- 游戏美术风格与视觉传达考核试卷
- 砖瓦制造机械的能效优化考核试卷
- 砼结构构件的预制与现浇结合技术考核试卷
- 窗帘行业法律法规与标准考核试卷
- 温州大学《美术教师职业技能训练》2023-2024学年第二学期期末试卷
- 辽宁省辽阳市2024-2025学年高三第二学期3月第一次测试化学试题含解析
- 山东省聊城市莘县第一中学2025届全国新高三下学期开学大联考试题生物试题含解析
- 辽宁省鞍山市第二十六中学2025年初三模拟检测试题(一)物理试题含解析
- 南宁师范大学师园学院《Hadoop+spark大数据分析技术课程设计》2023-2024学年第一学期期末试卷
- 眼科检查-教学课件
- 亚硝酸盐中毒的护理查房
- 离婚协议书格式范文样本2025年
- 八下历史期中复习提纲晨读晚诵+基础知识默写(1-11课) - 2023-2024学年八年级历史下学期期中考点大串讲(统编版)
- 游戏情感化设计研究-洞察分析
- 食堂盒饭配送方案(5篇)
- 2025年中考数学二轮复习《压轴题》专项练习(一)(含答案)
- 网格员安全培训
- Environmental Biotechnology知到智慧树章节测试课后答案2024年秋哈尔滨工业大学
- 华中师范大学教育技术学硕士研究生培养方案
- 内部审计学第3版 张庆龙 教学大纲
评论
0/150
提交评论