计算机毕业设计-公司人事管理系统_第1页
计算机毕业设计-公司人事管理系统_第2页
计算机毕业设计-公司人事管理系统_第3页
计算机毕业设计-公司人事管理系统_第4页
计算机毕业设计-公司人事管理系统_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

2.1系统需求和功能设计一个人事管理系统,使系统满足以下需求和功能1)根据企业人事管理的需要,对企业以及企业中员工的信息进行添假删除等操作,并能对人事档案进行浏览,对人事资料进行查询,对人事资料进行统计。为企业的人事管理提供一个便利的管理系统。2)、系统功能包括:a系统管理(设置用户和退出系统)。b基础数据管理(民族档案设置,职工类型设置,文化程度设置,政治面貌设置,部门类别设置,工资类别设置,职称类别设置,职务类别设置)。c人事档案管理(人事档案浏览,人事资料查询,人事资料统计)。数据库管理(数据库的备份与恢复)。2.2.2数据结构1)数据结构名称:用户名和密码信息 组成:用户名,密码,是否管理员2)数据结构名称:民族档案设置组成:民族编号,民族名称3)数据结构名称:职工类型设置组成:职工类型编号,职工类型名称4)数据结构名称:文化程度设置组成:文化程度编号,文化程度名称。5)数据结构名称:政治面貌设置组成:政治面貌编号,政治面貌名称6)数据结构名称:部门类别设置组成:部门类别编号,部门类别名称7)数据结构名称:工资类型设置组成:工资类型编号,工资类型名称8)数据结构名称:职称类别设置组成:职称类别编号,职称类别名称。9)数据结构名称:职务类别设置组成:职务类别编号,职务类别名称10)数据结构名称:职工信息组成:职工编号,职工性别,职工年龄,民族,婚姻状况,家庭电话,电子邮箱,手机,籍贯,地址,毕业学校,职称,入职时间,职称类别,部门类别,职务类别。11)数据结构名称:职工的家庭成员组成:编号,员工号,成员姓名,关系,出生日期,工作单位,担任职务,政治面貌3.设计方法和步骤采用自底而上的设计方法。先自顶向下地进行需求分析,对人事管理系统的需求进行逐步细化;然后再自底而上地设计概念结构,最终将各个局部应用的概念结构集合成为全局概念结构。3.2系统数据流程图或E-R图通过对局部应用的选择,逐一设计出分E-R图,并对各个分E-R图进行合并,生成初步E-R图,消除不必要的系统冗余,可以得出以下人事管理系统E-R图。用户浏览,查询,统计职工表用户名密码职工姓名民族婚姻状况身份证职工编号出生日期 图3.12人事管理系统的 E-R 图23.2 E-R图的有关实体和联系的说明说明:对于人事管理系统的 E-R 图1,一个用户可以设置多个民族的情况,一个民族档案能被多个用户设置。一个用户可以设置多个职工类型,一个职工类型能被多个用户设置。其他的类似。对于图3.12人事管理系统的 E-R 图2,一个用户可以浏览,查询多个职工的档案,一个职工的档案能被多个用户浏览。5.逻辑设计5.1建立数据库本设计用Microsoft Office Access 2003作为后台数据库,在MS SQL Server 2000中创建一个名为Manager1的数据库,并在其中建立逻辑设计中涉及的表. 5.2建立表在Access中,可以查看所建立的表,并添加适当测试数据5.2.1 用户表 表 5.1524文化程度表 表 5.4 525政治面貌表 526部门类别设置表表 5.6 527工资类别表 表 5.7528职称类别表 表 5.8 5210职工表5211 职工家庭情况表6 应用程序设置和代码分析62人事档案浏览先建立对话框,之后为此对话框的部分控件建立关联变量,之后再建立对话框,之后为此对话框的部分控件建立关联变量。添加代码实现人事档案浏览功能实现这个功能的主要代码如下:void CBrowseDlg:OnButtonSearch() / TODO: Add your control notification handler code hereUpdateData(TRUE);if(m_nCondition0)MessageBox(请选择查询条件!);m_ctrCondition.SetFocus();return;if(m_strContent=)MessageBox(请输入查询内容!);m_ctrContent.SetFocus();return;CString strSQL;if(0=m_nCondition)/按部门查询strSQL.Format(select * from person where dept=%s,m_strContent);RefreshData(strSQL);else if(1=m_nCondition)/按职工职务查询strSQL.Format(select * from person where duty=%s,m_strContent);RefreshData(strSQL);else if(2=m_nCondition)/按职工职称查询strSQL.Format(select * from person where technical=%s,m_strContent);RefreshData(strSQL);else if(3=m_nCondition)/按职工类型查询strSQL.Format(select * from person where isworker=%s,m_strContent);RefreshData(strSQL);else if(4=m_nCondition)/按工资类别查询strSQL.Format(select * from person where aboutpay=%s,m_strContent);RefreshData(strSQL);else if(5=m_nCondition)/按职工性别查询strSQL.Format(select * from person where sex=%s,m_strContent);RefreshData(strSQL);else if(6=m_nCondition)/按婚姻状况查询strSQL.Format(select * from person where ismarry=%s,m_strContent);RefreshData(strSQL);else if(7=m_nCondition)/按职工民族查询strSQL.Format(select * from person where folk=%s,m_strContent);RefreshData(strSQL);else if(8=m_nCondition)/按政治面貌查询strSQL.Format(select * from person where political=%s,m_strContent);RefreshData(strSQL);else if(9=m_nCondition)/按文化程度查询strSQL.Format(select * from person where education=%s,m_strContent);RefreshData(strSQL);/设置按钮状态m_ctrNewBnt.EnableWindow(TRUE);m_ctrDelBnt.EnableWindow(TRUE);m_ctrSaveBnt.EnableWindow(FALSE);m_ctrCancelBnt.EnableWindow(FALSE);m_bNew = FALSE;m_ctrModify.EnableWindow(TRUE);m_BaseInfoDlg.m_ctrID.EnableWindow(FALSE);void CBrowseDlg:OnButtonSearch() / TODO: Add your control notification handler code hereUpdateData(TRUE);if(m_nCondition0)strTemp.Format( age = %d ,strType,m_nAge);if(!bNoCondition)strSQL += and ;strSQL += strTemp;bNoCondition = FALSE;/MessageBox(strSQL);if(m_strDept2!=)strTemp.Format( dept2 %s %s ,strType,m_strDept2);if(!bNoCondition)strSQL += and ;strSQL += strTemp;bNoCondition = FALSE;if(m_strDept3!=)strTemp.Format( dept3 %s %s ,strType,m_strDept3);if(!bNoCondition)strSQL += and ;strSQL += strTemp;bNoCondition = FALSE;if(m_strName!=)strTemp.Format( name %s %s ,strType,m_strName);if(!bNoCondition)strSQL += and ;strSQL += strTemp;bNoCondition = FALSE;if(m_strNative!=)strTemp.Format( native %s %s ,strType,m_strNative);if(!bNoCondition)strSQL += and ;strSQL += strTemp;bNoCondition = FALSE;if(bNoCondition)strSQL = select * from person;/MessageBox(strSQL);m_ctrList.DeleteAllItems();m_ctrList.SetRedraw(FALSE);if(!m_PersonSet.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)MessageBox(打开数据库失败!,数据库错误,MB_OK);return ;char buffer20;CString strTime;int i=0;if(m_PersonSet.IsEOF()MessageBox(没有符合条件的记录!);return;while(!m_PersonSet.IsEOF()m_ctrList.InsertItem(i,m_PersonSet.m_ID);m_ctrList.SetItemText(i,1,m_PersonSet.m_name);m_ctrList.SetItemText(i,2,m_PersonSet.m_sex);strTime.Format(%d-%d-%d,m_PersonSet.m_birth.GetYear(),m_PersonSet.m_birth.GetMonth(),m_PersonSet.m_birth.GetDay();m_ctrList.SetItemText(i,3,strTime);_itoa(m_PersonSet.m_age,buffer,10);m_ctrList.SetItemText(i,4,buffer);m_ctrList.SetItemText(i,5,m_PersonSet.m_ismarry);m_ctrList.SetItemText(i,6,m_PersonSet.m_duty);m_ctrList.SetItemText(i,7,m_PersonSet.m_technical);m_ctrList.SetItemText(i,8,m_PersonSet.m_isworker);m_ctrList.SetItemText(i,9,m_PersonSet.m_aboutpay);m_ctrList.SetItemText(i,10,m_PersonSet.m_education);m_ctrList.SetItemText(i,11,m_PersonSet.m_political);strTime.Format(%d-%d-%d,m_PersonSet.m_date2.GetYear(),m_PersonSet.m_date2.GetMonth(),m_PersonSet.m_date2.GetDay();m_ctrList.SetItemText(i,12,strTime);i+;m_PersonSet.MoveNext();m_PersonSet.Close();m_ctrList.SetRedraw(TRUE);64人事资料统计主要代码如下:void CStatDlg:OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) / TODO: Add your control notification handler code hereCString strSQL;CString strValue=0;CDatabase db;db.Open(_T(Manager1);CRecordset recordset(&db);UpdateData(TRUE);/获得统计类型int nType = m_ctrList.GetSelectionMark();int i=0;switch(nType)case 0:/按性别统计m_ctrResult.DeleteAllItems();m_ctrResult.DeleteColumn(1);m_ctrResult.DeleteColumn(0);m_ctrResult.InsertColumn(0,性别);m_ctrResult.InsertColumn(1,人数);m_ctrResult.SetColumnWidth(0,100);m_ctrResult.SetColumnWidth(1,100);strSQL=select count(ID) as num ,sex from person group by sex;/MessageBox(strSQL);if(!recordset.Open(CRecordset:forwardOnly,strSQL)MessageBox(打开数据库失败!,数据库错误,MB_OK);return ;while(!recordset.IsEOF()recordset.GetFieldValue(sex,strValue);m_ctrResult.InsertItem(i,strValue);recordset.GetFieldValue(num,strValue);/MessageBox(strValue);m_ctrResult.SetItemText(i,1,strValue);i+;recordset.MoveNext();recordset.Close();break;case 1:/按年龄统计m_ctrResult.DeleteAllItems();m_ctrResult.DeleteColumn(1);m_ctrResult.DeleteColumn(0);m_ctrResult.InsertColumn(0,年龄);m_ctrResult.InsertColumn(1,人数);m_ctrResult.SetColumnWidth(0,100);m_ctrResult.SetColumnWidth(1,100);strSQL=select count(ID) as num ,age from person group by age;if(!recordset.Open(CRecordset:forwardOnly,strSQL)MessageBox(打开数据库失败!,数据库错误,MB_OK);return ;while(!recordset.IsEOF()recordset.GetFieldValue(age,strValue);m_ctrResult.InsertItem(i,strValue);recordset.GetFieldValue(num,strValue);m_ctrResult.SetItemText(i,1,strValue);i+;recordset.MoveNext();recordset.Close();break;case 2:/按民族统计m_ctrResult.DeleteAllItems();m_ctrResult.DeleteColumn(1);m_ctrResult.DeleteColumn(0);m_ctrResult.InsertColumn(0,民族);m_ctrResult.InsertColumn(1,人数);m_ctrResult.SetColumnWidth(0,100);m_ctrResult.SetColumnWidth(1,100);strSQL=select count(ID) as num ,folk from person group by folk;if(!recordset.Open(CRecordset:forwardOnly,strSQL)MessageBox(打开数据库失败!,数据库错误,MB_OK);return ;while(!recordset.IsEOF()recordset.GetFieldValue(folk,strValue);m_ctrResult.InsertItem(i,strValue);recordset.GetFieldValue(num,strValue);m_ctrResult.SetItemText(i,1,strValue);i+;recordset.MoveNext();recordset.Close();break;case 3:/按籍贯统计m_ctrResult.DeleteAllItems();m_ctrResult.DeleteColumn(1);m_ctrResult.DeleteColumn(0);m_ctrResult.InsertColumn(0,籍贯);m_ctrResult.InsertColumn(1,人数);m_ctrResult.SetColumnWidth(0,100);m_ctrResult.SetColumnWidth(1,100);strSQL=select count(ID) as num ,native from person group by native;if(!recordset.Open(CRecordset:forwardOnly,strSQL)MessageBox(打开数据库失败!,数据库错误,MB_OK);return ;while(!recordset.IsEOF()recordset.GetFieldValue(native,strValue);m_ctrResult.InsertItem(i,strValue);recordset.GetFieldValue(num,strValue);m_ctrResult.SetItemText(i,1,strValue);i+;recordset.MoveNext();recordset.Close();break;case 4:/按职务类别统计m_ctrResult.DeleteAllItems();m_ctrResult.DeleteColumn(1);m_ctrResult.DeleteColumn(0);m_ctrResult.InsertColumn(0,职务);m_ctrResult.InsertColumn(1,人数);m_ctrResult.SetColumnWidth(0,100);m_ctrResult.SetColumnWidth(1,100);strSQL=select count(ID) as num ,duty from person group by duty;if(!recordset.Open(CRecordset:forwardOnly,strSQL)MessageBox(打开数据库失败!,数据库错误,MB_OK);return ;while(!recordset.IsEOF()recordset.GetFieldValue(duty,strValue);m_ctrResult.InsertItem(i,strValue);recordset.GetFieldValue(num,strValue);m_ctrResult.SetItemText(i,1,strValue);i+;recordset.MoveNext();recordset.Close();break;case 5:/按职称类别统计m_ctrResult.DeleteAllItems();m_ctrResult.DeleteColumn(1);m_ctrResult.DeleteColumn(0);m_ctrResult.InsertColumn(0,职称);m_ctrResult.InsertColumn(1,人数);m_ctrResult.SetColumnWidth(0,100);m_ctrResult.SetColumnWidth(1,100);strSQL=select count(ID) as num ,technical from person group by technical;if(!recordset.Open(CRecordset:forwardOnly,strSQL)MessageBox(打开数据库失败!,数据库错误,MB_OK);return;while(!recordset.IsEOF()recordset.GetFieldValue(technical,strValue);m_ctrResult.InsertItem(i,strValue);recordset.GetFieldValue(num,strValue);m_ctrResult.SetItemText(i,1,strValue);i+;recordset.MoveNext();recordset.Close();break;case 6:/按文化程度统计m_ctrResult.DeleteAllItems();m_ctrResult.DeleteColumn(1);m_ctrResult.DeleteColumn(0);m_ctrResult.InsertColumn(0,文化程度);m_ctrResult.InsertColumn(1,人数);m_ctrResult.SetColumnWidth(0,100);m_ctrResult.SetColumnWidth(1,100);strSQL=select count(ID) as num ,education from person group by education;if(!recordset.Open(CRecordset:forwardOnly,strSQL)MessageBox(打开数据库失败!,数据库错误,MB_OK);return ;while(!recordset.IsEOF()recordset.GetFieldValue(education,strValue);m_ctrResult.InsertItem(i,strValue);recordset.GetFieldValue(num,strValue);m_ctrResult.SetItemText(i,1,strValue);i+;recordset.MoveNext();recordset.Close();break;case 7:/按政治面貌统计m_ctrResult.DeleteAllItems();m_ctrResult.DeleteColumn(1);m_ctrResult.DeleteColumn(0);m_ctrResult.InsertColumn(0,政治面貌);m_ctrResult.InsertColumn(1,人数);m_ctrResult.SetColumnWidth(0,100);m_ctrResult.SetColumnWidth(1,100);strSQL=select count(ID) as num ,political from person group by political;if(!recordset.Open(CRecordset:forwardOnly,strSQL)MessageBox(打开数据库失败!,数据库错误,MB_OK);return ;while(!recordset.IsEOF()recordset.GetFieldValue(political,strValue);m_ctrResult.InsertItem(i,strValue);recordset.GetFieldValue(num,strValue);m_ctrResult.SetItemText(i,1,strValue);i+;recordset.MoveNext();recordset.Close();break;case 8:/按所在部门统计m_ctrResult.DeleteAllItems();m_ctrResult.DeleteColumn(1);m_ctrResult.DeleteColumn(0);m_ctrResult.InsertColumn(0,部门);m_ctrResult.InsertColumn(1,人数);m_ctrResult.SetColumnWidth(0,100);m_ctrResult.SetColumnWidth(1,100);strSQL=select count(ID) as num ,dept from person group by dept;if(!recordset.Open(CRecordset:forwardOnly,strSQL)MessageBox(打开数据库失败!,数据库错误,MB_OK);return ;while(!recordset.IsEOF()recordset.GetFieldValue(dept,strValue);m_ctrResult.InsertItem(i,strValue);recordset.GetFieldValue(num,strValue);m_ctrResult.SetItemText(i,1,strValue);i+;recordset.MoveNext();recordset.Close();break;case 9:/按职工类型统计m_ctrResult.DeleteAllItems();m_ctrResult.DeleteColumn(1);m_ctrResult.DeleteColumn(0);m_ctrResult.InsertColumn(0,职工类型);m_ctrResult.InsertColumn(1,人数);m_ctrResult.SetColumnWidth(0,100);m_ctrResult.SetColumnWidth(1,100);strSQL=select count(ID) as num ,isworker from person group by isworker;if(!recordset.Open(CRecordset:forwardOnly,strSQL)MessageBox(打开数据库失败!,数据库错误,MB_OK);return ;while(!recordset.IsEOF()recordset.GetFieldValue(isworker,strValue);m_ctrResult.InsertItem(i,strValue);recordset.GetFieldValue(num,strValue);m_ctrResult.SetItemText(i,1,strValue);i+;recordset.MoveNext();recordse

温馨提示

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

最新文档

评论

0/150

提交评论