人事管理系统详细设计说明书_第1页
人事管理系统详细设计说明书_第2页
人事管理系统详细设计说明书_第3页
人事管理系统详细设计说明书_第4页
人事管理系统详细设计说明书_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

方案书方案书人事管理系统详细设计说明书项目组成员:xx详细设计说明书编写者:xx【xx年十二月二十日]目录TOC\o"1-5"\h\z一、 引言 -3—编写目的: -3-项目背景: -3-定义 -3-参考资料: -4-二、数据库设计 -4-数据库表列表 -4-逻辑结构设计: -4-物理结构设计: -5-数据表代码记录 -7-软件结构 -10-顶级结构 -10-一般职工界面结构 -10-管理员界面 -11-超级管理员界面 -12-程序模块描述 -13-登录模块 -13-职工考勤模块 -15-个人信息模块 -19-修改密码模块 -20-部门管理模块 -20-职工管理模块 -23-职工出勤模块 -26-管理员管理模块 -27-五、登录体验 -29-引言人事管理系统是针对企业内部人事管理设计,分角色实现对公司部门及各部门员工的增、删、改、查以及对员工考勤的管理。编写目的:在系统需求分析的基础上,对需求分析中产生的功能模块进行过程描述,设计功能模块的内部细节,包括算法和详细数据结构,为编写源代码提供必要的说明,并作为测试和维护的参考文档。详细设计说明书的预期用户为所有与此项目相关的决策人员、开发人员和测试人员。项目背景:项目名称:人事管理系统解决方案名称:CompanyPersonnelManagementSystem本项目创意的提出者:孙亚洲、何岁岁、刘盼盼开发者:孙亚洲、何岁岁、刘盼盼项目介绍:人事管理是一套先进的管理模式,其实施要取得成功,必须有必需的技术和工具支持,公司人事管理软件( CPM)是实施人事部门人员管理职工必不可少的一套技术和工具集成支持平台。 CPM管理系统基于通讯、计算机等信息技术,能实现企业对职工、部门的良好管理,能够协助管理者更好地完成管理的两项基本任务:管理和了解职工状况。定义CPM:CompanyPersonnelManagement,公司人事管理系统的缩写命名规则:冰窗体命名格式:功能模块名+Form(例如:部门管理窗体, SMF)X控件命名格式:窗体名+功能名+控件名(例如:部门管理窗体中的添加按钮, SMF_Addbtn)字体格式:主窗体控件:微软雅黑,五号,粗体,字体颜色:黑色次窗体控件:微软雅黑,小五,粗体,字体颜色:黑色派 程序命名:类:首字母大写属性:首字母大写方法:首字母大写字段:单词首字母大写、变量:小写

参考资料:详细设计说明书模板资料、《人事管理系统需求分析说明书》数据库设计数据库名称:HRManagement2.1 数据库表列表序号关系名称表描述1部门表存储公司的部门名称2职位表存储部门有哪些职位3性别表存储人的性别4民族表存储/、同民族信息5学历表存储不同的学历6员工表存储公司的员工信息7工作时间类别表标识时间种类8工作时间表存储上下班时间信息9打卡状态存储打卡正常、迟到、早退三种状态10上班打卡记录表存储员工上班打卡信息11下班打卡记录表存储员工卜.班打卡信息12管理员表存储管理员级别的员工进入系统的用户名及密码信息,管理员有对员工和部门增删改查的权限13超级管理员表存储超级管理员信息,超级管理员增加了对管理员信息查看、修改和删除的权限14用户表存储员工进入系统的用户名及密码信息逻辑结构设计:序号关系名称关系的属性1部门表部门ID、部门名称2职位表职位ID、职位名称3性别表性别ID、性别名称4民族表民族ID、民族名称5学历表学历ID、学历名6员工表Id、职工ID、姓名、性别ID、职位ID、部门ID、学历ID、生日、照片、籍贯、现住地址、民族ID、联系方式、工作年限、毕业院校、专业、身份证号码、入职时间7工作时间类别表类别ID、类别名称8工作时间表工作时间ID、工作时间、类别ID

9打卡状态打卡状态ID、状态名称10上班打卡记录表记录ID、打卡时间、状态ID、职工编一11下班打卡记录表记录ID、打卡时间、状态ID、职工编一12管理员表管理员ID、用户名、密码、职工编号1314超级管理员表用户表超级管理员ID、用户名、密码、职工编用户ID、员工工号、密码口有口有口物理结构设计:1.部门表(Sections)字段说明引空备注SectionIDIDNvarchar(2)No主键SectionName部门名称Nvarchar(20)No唯一2.职位表(Positions)字段说明引空备注PositionIDIDNvarchar(2)No主键PositionName职位名称Nvarchar(20)No唯一3.性另।J表(Sexs)字段说明引空备注SexIDIDintNo主键,自增SexName性别名称Nvarchar(4)No唯一4.民族表(Nations)字段说明引空备注NationIDIDintNo主专t,自增NationName民族名称Nvarchar(16)No唯一5.学历表(EduBackgrounds)字段说明引空备注EduBackgroundIDIDintNo主键,自增EduBackgroundName学历名称Nvarchar(10)No唯一6.员工表(Staffs)字段说明引空备注IDIDIntNo主键,自增StaffID职工IDNvarchar(10)No组合项:部门ID+职位ID璘字标识StaffName姓名Nvarchar(10)NoSexID性别IDIntNo外键PositionID职位IDVarchar(4)No外键EduBackgroundID:学历IDIntNo外键Birthday生日Nvachar(10)YesPicture照片ImageYesNativePlaceP蒐TNvarchar(40)YesNowAddressr现住地址Nvarchar(40)YesIDcardNo身份证号码Nvarchar(18)No唯一

NationlD民族IDIntYes外键ContactWayP联系方式Nvarchar(30)YesWorkSeniority工作年限IntNoSectionlD部门IDNvarchar(2)No外键GraduateSchool毕业院校Nvarchar(30)YesMajorP专业Nvarchar(16)YesEmployedDate入职时间DatetimeNo7.工作时间类别表(WorkingTimeType)字段说明引空备注WTTypeIDIDintNo主4t,自增WTTypeName类别名称Nvarchar(14)No唯一8.工作时间表(WorkingTimes)字段说明引空备注WorkingTimeIDIDintNo主专t,自增WorkTime工作时间Nvarchar(5)No唯一WTTypeID类别IDIntNo外键9.打卡斗犬态(ClockStatus)字段说明引空备注ClockStatusIDIDintNo主键,自增ClockStatusName状态名称Nvarchar(10)No唯一10.上班打卡记录表(StartClockRecords)字段说明引空备注SClockRecordsIDIDintNo主4t,自增SColckTime打卡时间DateTimeNoSClockStatusID打卡状态IDIntNo外键StaffID职工IDNvarchar(10)No外键11.下班打卡记录表(EndClockRecords)字段 ]说明引空备注ECoockRmordsID打卡时wDjteTimeNo王键,目增EClockStatusID打卡状态IDIntNo外键StaffID职工IDNvarchar(10)No外键12.管理员表(Adms)字段说明引空备注AdmIDIDintNo主键,自增AdmName管理员名Nvarchar(15)No唯一AdmPW密码Nvarchar(15)noStaffID职工IdNvarchar(10)No外键13.超级管理员表(SuperAdms)段说明引空备注SuperAdmIDIDintNo主4t,自增SuperAdmName管理员名Nvarchar(15)No唯一SuperAdmPW密码Nvarchar(15)noStaffID职工IdNvarchar(10)No外键14.用户表(Users)字段说明引空备注UserIDIDintNo主键,自增StaffID职工IdNvarchar(10)No外键UserPW密码Nvarchar(15)no数据表代码记录.部门表(Sections)ID,名称createtableSections(SectionlDnvarchar(2)notnullprimarykey,SectionNamenvarchar(20)notnullunique).职位表(Positions:)ID,名称createtablePositions(PositionIDnvarchar(2)notnullprimarykey,PositionNamenvarchar(20)notnullunique).性别J表(Sexs)ID,名称createtableSexs(SexIDintnotnullidentity。/)primarykey,SexNamenvarchar(4)notnullunique).民族表(Nations)Id,名称createtableNations(NationIDintnotnullidentity。/)primarykey,NationNamenvarchar(16)notnullunique).学历表(EduBackgrounds)Id,名称createtableEduBackgrounds(EduBackgroundIDintnotnullidentity。/)primarykey,EduBackgroundNamenvarchar(10)notnullunique).员工表(Staffs)Id,职工ID,姓名,性别ID,职位id,学历id,生日,照片,籍贯,现住地址,民族id,联系方式,工作年限,部门id,毕业院校,专业,身份证号码,入职时间createtableStaffs(IDintnotnullidentity。/)primarykey,StaffIDnvarchar(10)notnullunique,StaffNamenvarchar(10)notnull,SexIDintnotnullForeignkeyreferencesSexs(SexID),PositionIDnvarchar(4)notnullForeignkeyreferencesPositions(PositionID),EduBackgroundIDintnotnullForeignkeyreferencesEduBackgrounds(EduBackgroundID),Birthdaynvarchar(10)notnull,PictureImagenotnull,NativePlacenvarchar(40)notnull,NowAddressnvarchar(40)notnull,NationIDintnotnullForeignkeyreferencesNations(NationID),ContactWaynvarchar(30)notnull,WorkSeniorityintnotnull,SectionIDnvarchar(4)notnullForeignkeyreferencesSections(SectionID),GraduateSchoolnvarchar(30)notnull,Majornvarchar(16)notnull,IDcardNonvarchar(18)notnullunique,EmployedDatedatetimenotnull).工作时间类别表(WorkingTimeType):ID,类别createtableWorkingTimeType(WTTypeIDintnotnullidentity(1,1)primarykey,WTTypeNamenvarchar(14)notnullunique).工作时间表(WorkingTimes):Id,工作时间,工作时间类别createtableWorkingTimes(WorkingTimeIDintnotnullidentity(1,1)primarykey,WorkTimedatetimenotnullunique,WTTypeIDintnotnullForeignkeyreferencesWorkingTimeType(WTTypeID)).打卡斗犬态(ClockStatus)ID,状态名称createtableClockStatus(ClockStatusIDintnotnullidentity(1,1)primarykey,ClockStatusNamenvarchar(10)notnullunique).上班打卡记录表(StartClockRecords)ID,打卡时间,状态ID,职工IDcreatetableStartClockRecords(SClockRecordsIDintnotnullidentity。/)primarykey,SClockTimeDatetimenotnull,SClockStatusIDintnotnullForeignkeyreferencesClockStatus(ClockStatusID),StaffIDnvarchar(10)notnullforeignkeyreferencesStaffs(StaffID)).下班打卡记录表(EndClockRecords)Id,打卡时间,标记id职工idcreatetableEndClockRecords(EClockRecordsIDintnotnullidentity。/)primarykey,EClockTimeDatetimenotnull,EClockStatusIDintnotnullForeignkeyreferencesClockStatus(ClockStatusID),StaffIDnvarchar(10)notnullforeignkeyreferencesStaffs(StaffID)).管理员表(Adms)Id川户名,密码,职工idcreatetableAdms(AdmIDintnotnullidentity。/)primarykey,AdmNamenvarchar(15)notnullunique,AdmPWnvarchar(15)notnull,StaffIDnvarchar(10)notnullforeignkeyreferencesStaffs(StaffID)).超级管理员(SuperAdms)Id^户名,密码,职工idcreatetableSuperAdms(SuperAdmIDintidentity(1,1)notnullprimarykey,SuperAdmNamenvarchar(15)notnullunique,SuperAdmPWnvarchar(15)notnull,StaffIDnvarchar(10)notnullforeignkeyreferencesStaffs(StaffID)).用户表(Users)I加工id,密码createtableUsers(UserIDintnotnullidentity(1,1)primarykey,UserPWnvarchar(15)notnull,StaffIDnvarchar(10)notnullforeignkeyreferencesStaffs(StaffID))2.5数据库RE图Worici4QlimciI、"4f 口dw*W*!?WHE三、软件结构3.2、一般职工界面结构3.33.3管理员界面方案书方案书(3)修改密码块务登录密码修改(4)部门管理(5)职工管理(6)职工出勤匚部门整体出勤按天按月3.43.4超级管理员界面方案书方案书(1)个人考勤块41r上下班打卡(2)个人信息块41r个人信息修改(4)部门管理修改超级管理

员界面(5)职工管理按入职时间按个人查询按部门查询按个人查询查询全部方案书方案书四、程序模块描述4.1登录模块1.流程图:登录成功超管员界登录成功超管员界♦职工输入用户名、密码并选择登录身份,根据选择的身份做不同的操作若选择的是“职工”,系统将查询数据库中的用户表 Users的记录,用户名密码核对正确后加载职工主界面;若选择的是“管理员”,系统将查询数据库中的管理员表 Adms的记录,用户名密码核对正确后加载管理员主界面;若选择的是“超级管理员”,系统将查询数据库中的用户表 SuperAdms的记录,用户名密码核对正确后加载超级管理员主界面;◎三种身份,若用户名、密码核对不正确,弹出提示消息框: “用户名或密码错误!\2.界面设计及代码如下:◎用到的控件字段名、方法及变量有:X控件:用户名文本框名称: Login_UserNametxt密码文本框名称:Login_UserPWtxt身份下拉列表名称:Login_Rolecom登录标签名称:Login_Enterlab退出标签名称:Login_EsclabX变量:UserChangeuc=newUserChange();//处理登录业务类的实例派调用方法:uc.GetUser(user);//核对一般职工的用户名、密码;uc.GetAdm(adm);〃核对管理员的用户名、密码;uc.GetSupAdm(supadm);//核对超级管理员的用户名、密码。◎ “登录”标签的单击事件:privatevoidLogin_Enterlab_Click(objectsender,EventArgse){usertype=Login_Rolecom.Text;try{if(usertype=="职工"){Useruser=newUser();user.StaffID=Login_UserNametxt.Text.Trim();user.UserPW=Login_UserPWtxt.Text.Trim();count=uc.GetUser(user);}elseif(usertype=="管理员"){Admadm=newAdm();adm.AdmName=Login_UserNametxt.Text.Trim();adm.AdmPW=Login_UserPWtxt.Text.Trim();count=uc.GetAdm(adm);}elseif(usertype=="超级管理员"){SuperAdmsupadm=newSuperAdm();supadm.SuperAdmName=Login_UserNametxt.Text.Trim();supadm.SuperAdmPW=Login_UserPWtxt.Text.Trim();count=uc.GetSupAdm(supadm);}if(count>0){this.DialogResult=DialogResult.OK;

username=Login_UserNametxt.Text;this.Close();}else{MessageBox.Show("用户或密码错误!");}}catch(Exceptionexc){MessageBox.Show(exc.Message);}}◎“退出”标签的单击事件:privatevoidLogin_Esclab_Click(objectsender,EventArgse){this.Close();}4.2职工考勤模块打卡1.流程图:打卡所有的用户登录系统每天中午12点整.完成每天的上班

打卡记录的录入超级管理员登录系统系统计时每天晚上22点整完成每天的下班

打卡记录的录入♦成功登录系统后◎所有的职工都可以进行上下班打卡操作,每个职工每天只允许打一次上班卡和一次下班卡;上班打卡时间为每天的 am6:00-12:00,12点整截止,下班打卡时间为每天的pm12:00-22:00,22点整截止。◎“超级管理员”登录,系统会在每天中午 12点和每天晚上22点查询数据库中的职工表Staffs的记录,对未打卡的员工分别在上下班打卡记录表中标记为未打卡; 必须保证每天这两个时间段超级管理员处于登录状态才能完成上下班考勤记录。2.打卡界面设计及代码如下:◎用到的控件字段名、方法及变量有:X控件:上班打卡按钮名称:Login_UserNametxt下班打卡按钮名称:Login_UserPWtxtX变量:staffed//登录员工的职工IDDateTimetime;//记录当前时间ClickCardOptCopt=newClickCardOpt();//处理打卡业务类的实例派调用方法:Copt.AddClockRecord("StartClockRecords",srecord);//添加上班打卡记录Copt.AddClockRecord("EndClockRecords",erecord);//添加下班打卡记录GetWorkingTime("上班"力〃获取上班时间表WorkingTimes的上班时间GetWorkingTime("下班"力〃获取上班时间表WorkingTimes的下班时间◎“上班打卡”按钮的单击事件:privatevoidClock_SDKbtn_Click(objectsender,EventArgse){inthour=Convert.ToInt32(time.Hour);if(hour<6||hour>=12)//6-12 点打上班卡时间{MessageBox.Show("抱歉,现在不是打卡时间! ");}else{stringworkingtime=GetWorkingTime("上班");string口worktimes=workingtime.Split(':');intworkhour=Convert.ToInt32(worktimes[0]);intworkminute=Convert.ToInt32(worktimes[1]);StartClockRecordsrecord=newStartClockRecord();srecord.SClockTime=time;if(time.Hour>workhour||time.Hour==workhour&&time.Minute>workminute){srecord.SClockstatusID=2;}else{srecord.SClockstatusID=1;}srecord.StaffID=staffid;}if(Copt.AddClockRecord("StartClockRecords",srecord)){MessageBox.Show(staffid+"打卡成功!");}else{MessageBox.Show(staffid+"你已经打过上班卡了! "力}}}◎ “下班打卡”按钮的单击事件:privatevoidClock_EDKBtn_Click(objectsender,EventArgse){inthour=Convert.ToInt32(time.Hour);if(hour<=11||hour>=22)//12-22点打下班卡时间{MessageBox.Show("抱歉,现在不是打卡时间! ");}else{stringworkingtime=GetWorkingTime("下班");string口worktimes=workingtime.Split(':');intworkhour=Convert.ToInt32(worktimes[0]);intworkminute=Convert.ToInt32(worktimes[1]);EndClockRecorderecord=newEndClockRecord();erecord.EClockTime=time;if(time.Hour<workhour||time.Hour==workhour&&time.Minute<workminute){erecord.EClockstatusID=3;}else{erecord.EClockstatusID=1;}erecord.StaflD=staffid;if(Copt.AddClockRecord("EndClockRecords",erecord)){MessageBox.Show(staffid+"打卡成功!");}else{MessageBox.Show(staffid+"你已经打过下班卡了! ");}}}3.超级管理员登录后主窗体处理未打卡职工的后台代码:◎用到的控件字段名、方法及变量有:X控件:计时器名称:Index_timerX变量:DateTimetime;//记录当前时间ClickCardOptCopt=newClickCardOpt();//处理打卡业务类的实例派调用方法:Copt.PerfectSClockRecords();〃插入未打卡职工的上班打卡标记Copt.PerfectEClockRecords();〃插入未打卡职工的下班打卡记录◎主窗体的Load事件privatevoidindex_Load(objectsender,EventArgse){if(usertype=="超级管理员"){this.Index_timer.Interval=60000;this.Index_timer.Tick+=newSystem.EventHandler(this.Index_timer_Tick);}}◎计时器的Tick事件privatevoidIndex_timer_Tick(objectsender,EventArgse){time=DateTime.Now;〃每天中午12点整完成上班打卡记录表的录入if(time.Hour==12&&time.Minute==0){Copt.PerfectSClockRecords();}〃每天晚上22点整完成下班打卡记录表的录入if(time.Hour==22&&time.Minute==0)Copt.PerfectEClockRecords();4.3个人信息模块.流程图:♦成功登录系统后所有的职工都可以对自己的全部信息进行查看、对部分信息进行修改。.界面设计截图如下:基本信宜簿号PemaOMI姓名小何部门外联部 职位董事长性利匚男-*学历本科上传头怪出生日期 1989▼隼[,月1■曰 •检证号222222222222222联蒙万式 民族禁古族 ♦ 毕业院段爱的E与理同雌 工作年限3 户口前"现住地址〔谪让修改

4.4修改密码模块.流程图:♦成功登录系统后所有的职工都可以对自己的密码进行修改操作。♦成功登录系统后所有的职工都可以对自己的密码进行修改操作。2.界面设计截图如下:2.界面设计截图如下:4.5部门管理模块1.流程图:1.流程图:♦管理员和超级管理员成功登录系统后可以执行对部门的增删改查操作。.删除部门的界面设计及详细代码如下:(其他没有写在此说明书内)«40VdWMWJMMri和点・*除的・门名糅・揩称人事事洲WHfhta胸】上广音静洲WHfhta胸】上广音静◎用到的控件字段名、方法及变量有X控件:TableControl名称:tionNametb删除部门ComboBox名称:SMF_Delete_SectionNamecomDataGridView名称:SMF_Delete_SectionMemberdgv职工编号文本框名称: SMF_Delete_StaffIDtxt调派部门ComboBox名称:SMF_Delete_SectionNewNamecom调派按钮的名称: SMF_Delete_AssignBut提交删除按钮的名称:SMF_Delete_YesbutX变量:SectionOptSopt=newSectionOpt();〃处理部门业务Sectionoldsec=newSection();//旧部门派调用方法:Sopt.GetSections();//得到部门的所有记录Sopt.GetStaffs_BySection(oldsec.SectionName);〃根据部门名称得到员工Sopt.DelectSection(oldsec);〃删除部门Sopt.GetOtherSections(oldsec.SectionID);〃得到除此之外所有部门的记录TableControl的SelectedIndexChanged事件:privatevoidtionNametb_SelectedIndexChanged(objectsender,EventArgse){SMF_Delete_SectionNamecom.DataSource=Sopt.GetSections();SMF_Delete_SectionNamecom.DisplayMember="SectionName";SMF_Delete_SectionNamecom.ValueMember="SectionID";this.SMF_Delete_SectionNamecom.SelectedIndexChanged +=newSystem.EventHandler(this.SMF_Delete_SectionNamecom_SelectedIndexChanged);01dsec.SectionName=SMF_Delete_SectionNamecom.Text;01dsec.SectionlD=SMF_Delete_SectionNamecom.SelectedValue.ToString();}删除部门ComboBoX勺SelectedIndexChange事件:privatevoidSMF_Delete_SectionNamecom_SelectedIndexChanged(objectsender,EventArgse){01dsec.SectionName=SMF_Delete_SectionNamecom.Text;01dsec.SectionID=SMF_Delete_SectionNamecom.SelectedValue.ToString();SMF_Delete_SectionMemberdgv.DataSource =Sopt.GetStaffs_BySection(oldsec.SectionName);SMF_Delete_SectionNewNamecom.DataSource =Sopt.GetOtherSections(oldsec.SectionID);SMF_Delete_SectionNewNamecom.DisplayMember="SectionName";SMF_Delete_SectionNewNamecom.ValueMember="SectionID";SMF_Delete_StaffIDtxt.Clear();}DataGridView的SectionMemberdgv_CellClick件privatevoidSMF_Delete_SectionMemberdgv_CellClick(objectsender,DataGridViewCellEventArgse){if(e.RowIndex>=0){SMF_Delete_StaffIDtxt.Text =SMF_Delete_SectionMemberdgv.Rows[e.RowIndex].Cells[0].Value.ToString();}}◎调派按钮的单击事件privatevoidSMF_Delete_AssignBut_Click(objectsender,EventArgse){if(SMF_Delete_StaffIDtxt.Text

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论