人事管理系统实验报告(共24页).doc

上传人:飞****2 文档编号:14224586 上传时间:2022-05-03 格式:DOC 页数:24 大小:170KB
返回 下载 相关 举报
人事管理系统实验报告(共24页).doc_第1页
第1页 / 共24页
人事管理系统实验报告(共24页).doc_第2页
第2页 / 共24页
点击查看更多>>
资源描述

《人事管理系统实验报告(共24页).doc》由会员分享,可在线阅读,更多相关《人事管理系统实验报告(共24页).doc(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上 数据库系统课程设计报告 题目: 人事管理系统 年级专业: 12网络工程 学 号: 姓 名: 陈嘉升 小组成员: 贺锦鹏 田野 指导老师: 完成时间: 2014.06.08 评分:湖南科技大学计算机科学与工程学院1系统需求分析1.1系统功能分析 人事管理系统主要有以下几项功能要求:l 新员工资料的输入l 自动分配员工,并且设置初始的用户密码l 人事变动的详细记录,包括岗位和部门的调整l 员工信息的查询和修改,包括员工个人信息和密码等l 查询人事变更记录1.2 系统功能模块设计 根据系统功能需求,可以将系统分解成几个模块来分别设计应用程序设计界面,如下图所示: 人事管理

2、系统 新员工档案输入增加人事变更记录员工档案查询查询人事记录1.3 与其它系统的关系 本系统是公司管理信息系统的基础部分。为其他子系统,如考勤管理系统、工资管理系统和员工培训系统,提供员工的基本信息。同时为其它的系统提供了员工登录的密码认定和权限分配功能。1.4 数据流程图 人事信息管理系统的数据流程如图所示,所有数据有人事科管理员输入。人事科招聘新员工分配员工号员工信息数据员工辞退人事变更记录岗位调整个人信息查询个人信息查询结果1.5 数据库需求分析 根据数据流程图,可以列出以下数据项和数据结构:l 员工信息:员工号、密码、权限、姓名、性别、生日、所在部门、职务、受教育程度、专业、家庭住址、

3、电话、电子邮箱、当前状态、备注l 人事变更记录:记录号、员工号、变动、详细记录。 所需的外部数据支持:l 部门信息:部门编号、名称、部门经理、简介l 受教育程度代码表:代码、说明l 职务代码表:职务编号、 名称l 人事变动代码:代码、描述2概念结构设计2.1 概念结构设计的步骤概念结构的设计可分为两步:第一步是抽象数据并设计局部视图。第二步是集成局部视图,得到全局的概念结构。员工实体E-R图:员工 备注员工号性别生日当前状态密码姓名所在部门职务电子邮箱联系电话家庭住址专业技能受教育程度用户权限部门实体E-R图:部门编号部门名称简介部门部门经理职务代码表E-R图:职务职务编号职务名称教育程度代码

4、表E-R图 :教育程度代码说明人事变动代码表E-R图 代码描述 人事变动代码人事变更记录表E-R图:人事变更记录记录编号员工号详细记录变更代码实体E-R总图: 1员工教育程度人事变更记录部门拥有存在工作存在职务m111m1m拥有113逻辑结构设计 3.1 E-R图向关系模型的转换将总体关系的E-R图转换为关系模型: 员工(员工号、密码、用户权限、姓名、性别、生日、所在部门、职务、受教育程度、专业技能、家庭住址、联系电话、电子邮箱、当前状态、 备注)部门(部门号,部门名称, 部门经理, 简介) 职务(职务号、职务名称) 教育程度(代码,说明)人事变更记录(记录编号,员工号,变更代码,详细记录)人

5、事变动代码(代码, 描述)4物理结构设计4.1数据表的物理结构 根据系统E-R图,本系统需要有两个数据分别来存放工人个人信息和人事变动记录。并且需要一个外部数据表(部门信息)的支持。同时部分记录字段需要用代码来表示,因此需要3个代码来分别记录教育程度、职务和人事变更的代码。这个6个数据表的结构如表1到表6所示。 表1 PERSON 员工个人信息表 字段名数据类型长度是否为空说明IDint4NOT NULL员工号(主关键字) PASSWDvarchar50NOT NULL密码AUTHORITYvarchar50NOT NULL用户权限NAMEvarchar50NOT NULL姓名SEXvarch

6、ar 50NOT NULL性别BIRTHDAYvarchar50NULL生日DEPARTMENTvarchar 50NOT NULL所在部门JOBvarchar50NOT NULL职务EDU_LEVEL varchar50NOT NULL受教育程度SPCIALTYvarchar50NULL专业技能ADDRESSvarchar50NULL家庭住址TELvarchar50NULL联系电话 EMAILvarchar50NULL电子邮箱 STATEvarchar50NOT NULL当前状态(T-员工、F-非员工) REMARKvarchar50NULL备注 表2 PERSONNEL 人事变更记录表 字

7、段名数据类型长度是否为空说明IDint4NOT NULL记录编号PERSONvarchar4NOT NULL员工号CHANGEvarchar4NOT NULL变更代码DESCRIPTIONvarchar16NULL详细记录 表3 EDU_LEVEL受教育程度代码表字段名数据类型长度是否为空说明CODEint 4NOT NULL代码DESCRIPTIONvarchar50 NULL描述 表4 JOB 职务代码表 字段名 数据类型 长度是否为空说明CODE int4NOT NULL 代码DESCRIPTIONvarchar50NULL描述 表5 PERSONNEL_CHANGE 人事变动代码表字段

8、名数据类型长度是否为空说明CODEint 4NOT NULL代码DESCRIPTIONvarchar50 NULL描述 表6DEPANTMENT 部门信息表 字段名 数据类型长度 是否为空说明IDint4NOT NULL部门编号NAMEvarchar50NOT NULL部门名称MANAGERvarchar4NOT NULL部门经理INTROvarchar50NULL简介表 7受教育程度代码代码说明0小学1初中2高中3职高4大本5大专6硕士7博士8博士后表 8 人事变更代码代码说明0新员工加入1职务变动2辞退5各功能模块的设计与实现5.1各功能说明n 增加新员工n 人事变动n 员工信息查询和修改

9、n 加密模块5.2用户界面设计 完成数据库创建和功能说明以后,我们可以进行下一步工作,即设计用户界面。我们把人事信息系统的窗口分成4个主要部分。1. 登录模块的创建2. 增加新员工窗体的创建3. 人事变动窗体的创建4. 员工信息查询修改窗体的创建5. 加密模块的创建5.3各功能模块的实现1加密模块窗口设计:由于时间关系只实现了固定的用户名和密码,为实现数据库验证的用户名和密码相关代码:/*以下实现管理员密码登陆*/未实现管理员密码的可修改性void CMyDlg:OnLoad() / TODO: Add your control notification handler code hereUp

10、dateData(TRUE);CString ID = admin;CString PASSWD = 123;if(m_ID = )MessageBox(请输入用户名);return;if(m_PASSWD = )MessageBox(请输入密码);return;if(ID != & PASSWD != )if(ID = m_ID & PASSWD = m_PASSWD)AfxMessageBox(欢迎使用!);CAdminBox a;/调用管理员窗口的一个对象a.DoModal();/调用函数elseAfxMessageBox(用户信息不正确,重新登录!);/*time+;if(time2)

11、exit(0);*/ /*/2 主窗口的设计主窗口只实现相关功能窗口的调用按钮,不实现具体功能/*/以下实现员工信息修改窗口void CAdminBox:OnBUTTONUpdateName() / TODO: Add your control notification handler code hereCUpdateName a;a.DoModal();/*/调用人事变动窗口void CAdminBox:OnBUTTONPersonnel() / TODO: Add your control notification handler code hereCPERSONNEL a;a.DoMod

12、al();/*/提供退出系统的功能void CAdminBox:OnButtonExit() / TODO: Add your control notification handler code hereif(MessageBox(确定退出?,_T(),MB_YESNO|MB_ICONSTOP)=IDYES)exit(0);n 3.人事变动窗口设计:实现的功能是在往数据库人事变更表中添加数据的时候同时修改员工信息表中的相关信息代码如下:void CPERSONNEL:OnButton1() / TODO: Add your control notification handler code h

13、ereUpdateData(TRUE);_ConnectionPtr m_pConnection;:CoInitialize(NULL);/在ADO操作中建议语中要常用try.catch()来捕获错误信息/因为他有时会经常出现一些想不到的错误trym_pConnection.CreateInstance(ADODB.Connection);_bstr_t strConn = Provider = SQLOLEDB;Data Sourse = (local); Initial Catalog =人事管理系统;UID=sa;PWD=;m_pConnection-Open(strConn,adMod

14、eUnknown);if(m_pConnection-State = adStateOpen)MessageBox(成功连接数据库);catch(_com_error e):CoUninitialize();AfxMessageBox(e.ErrorMessage();return;/以下插入人事变更记录_variant_t ra;_bstr_t strAdd = INSERT INTO PERSONNEL VALUES(;/strAdd = strAdd + m_ID + ,;strAdd = strAdd + m_PERSON + ,;strAdd = strAdd + m_CHANGE

15、+ ,;strAdd = strAdd + m_DESCRIPTION + );/AfxMessageBox(strAdd);m_pConnection-Execute(strAdd,&ra,adCmdText);/m_pConnection-Close();/下面同样涉及对其他表数据修改故不能关闭数据库连接strAdd = UPDATE PERSON SET STATE =;if(m_CHANGE=0)strAdd=strAdd+T where ID=+m_PERSON;/AfxMessageBox(strAdd);else if(m_CHANGE=2)strAdd=strAdd+F whe

16、re ID=+m_PERSON;/AfxMessageBox(strAdd);m_pConnection-Execute(strAdd,&ra,adCmdText);m_pConnection-Close();m_adodc1.SetRecordSource(select * from PERSONNEL);m_adodc1.Refresh();UpdateData(FALSE);n 3.员工信息查询修改窗口设计如下:实现功能:可以在所有记录上进行相关信息的查询和修改各部分功能的代码如下l 增加新员工信息/*/以下实现按钮触发添加员工信息功能void CUpdateName:OnBUTTONA

17、ddName() / TODO: Add your control notification handler code hereUpdateData(TRUE);_ConnectionPtr m_pConnection;:CoInitialize(NULL);/在ADO操作中建议语中要常用try.catch()来捕获错误信息/因为他有时会经常出现一些想不到的错误trym_pConnection.CreateInstance(ADODB.Connection);_bstr_t strConn = Provider = SQLOLEDB;Data Sourse = (local); Initial

18、 Catalog =人事管理系统;UID=sa;PWD=;Persist Security Info=FALSE;m_pConnection-Open(strConn,adModeUnknown);/if(m_pConnection-State = adStateOpen) MessageBox(成功连接数据库);catch(_com_error e):CoUninitialize();/AfxMessageBox(e.ErrorMessage();return;_variant_t ra;m_PASSWD = 12345;m_AUTHORITY = 2;_bstr_t strAdd = IN

19、SERT INTO PERSON VALUES (;/ strAdd = strAdd + m_ID + ,;strAdd = strAdd + m_PASSWD + ,;strAdd = strAdd + m_AUTHORITY + ,;strAdd = strAdd + m_NAME + ,;strAdd = strAdd + m_SEX + ,;strAdd = strAdd + m_BIRTHDAY + ,;strAdd = strAdd + m_DEPARTMENT + ,;strAdd = strAdd + m_JOB + ,;strAdd = strAdd + m_EDU_LEV

20、EL + ,;strAdd = strAdd + m_SPCIALTY + ,;strAdd = strAdd + m_ADDRESS + ,;strAdd = strAdd + m_TEL + ,;strAdd = strAdd + m_EMAIL + ,;strAdd = strAdd + m_STATE + ,;strAdd = strAdd + m_REMARK + );/AfxMessageBox(strAdd);m_pConnection-Execute(strAdd,&ra,adCmdText);m_pConnection-Close();m_adodc1.SetRecordSo

21、urce(select * from PERSON);m_adodc1.Refresh();UpdateData(FALSE);l 查询功能/*/连接上面两个组合框的输入值来响应相应的查询信息void CUpdateName:OnBUTTONCheck() / TODO: Add your control notification handler code hereUpdateData(TRUE);if(m_SelectYes=1 & m_CheckName = ) | (m_SelectYes =2 & m_CheckID = )CString str = select * from PER

22、SON;m_adodc1.SetRecordSource(str);m_adodc1.Refresh();UpdateData(FALSE);return;elseif(m_SelectYes=1)CString str = select * from PERSON where NAME= + m_CheckName +;/AfxMessageBox(str);m_adodc1.SetRecordSource(str);m_adodc1.Refresh();UpdateData(FALSE);else if(m_SelectYes=2)CString str = select * from P

23、ERSON where ID= + m_CheckID +;/AfxMessageBox(str);m_adodc1.SetRecordSource(str);m_adodc1.Refresh();UpdateData(FALSE);l 删除选定记录/*/以下实现按钮触发删除当前列表所选择的记录void CUpdateName:OnBUTTONDeleteName() / TODO: Add your control notification handler code hereUpdateData(TRUE);int ColNum = 2;CString colVal;/要包含头文件Colum

24、ns.hCColumns cols;/要包含头文件Column.hCColumn col;VARIANT v_ColNum,v_Value;cols = m_datagrid1.GetColumns();/调用 GetColumns返回CDataGrid对应的CColumns对象v_ColNum.vt = VT_I2;/读取IDv_ColNum.iVal = 0;/设置列编号col = cols.GetItem(v_ColNum);/根据列编号返回CColumn对象v_Value = col.GetValue();/读取列植CString tmp = v_Value.bstrVal;/ int

25、 curRow = atoi(tmp);CString tmp2 = 确认要删除编号为 +tmp+ 的记录吗?;if(MessageBox(tmp2,_T(数据删除提示),MB_YESNO|MB_ICONSTOP) != IDYES)return;UpdateData(TRUE);_ConnectionPtr m_pConnection;:CoInitialize(NULL);trym_pConnection.CreateInstance(ADODB.Connection);_bstr_t strConn = Provider = SQLOLEDB;Data Sourse = (local);

26、 Initial Catalog =人事管理系统;UID=sa;PWD=;m_pConnection-Open(strConn,adModeUnknown);if(m_pConnection-State = adStateOpen)MessageBox(成功连接数据库);catch(_com_error e):CoUninitialize();AfxMessageBox(e.ErrorMessage();return;/以下删除当前数据_variant_t ra;_bstr_t strAdd = DELETE FROM PERSON WHERE ID =+tmp+;/AfxMessageBox

27、(strAdd);m_pConnection-Execute(strAdd,&ra,adCmdText);m_pConnection-Close();/以下显示当前数据m_adodc1.SetRecordSource(SELECT * FROM PERSON);m_adodc1.Refresh();UpdateData(FALSE);l 通过双击复制员工信息功能/*/通过双击Datagrid实现列表数据进行数据复制void CUpdateName:OnClickDatagrid1() / TODO: Add your control notification handler code here

28、UpdateData(TRUE);int ColNum = 2;CString colVal;/要包含头文件Columns.hCColumns cols;/要包含头文件Column.hCColumn col;VARIANT v_ColNum,v_Value;cols = m_datagrid1.GetColumns();/调用 GetColumns返回CDataGrid对应的CColumns对象v_ColNum.vt = VT_I2;/读取ID0v_ColNum.iVal = 0;col = cols.GetItem(v_ColNum);v_Value = col.GetValue();m_I

29、D = v_Value.bstrVal;/读取密码1v_ColNum.iVal = 1;col = cols.GetItem(v_ColNum);v_Value = col.GetValue();m_PASSWD = v_Value.bstrVal;/读取权限2v_ColNum.iVal =2 ;col = cols.GetItem(v_ColNum);v_Value = col.GetValue();m_AUTHORITY = v_Value.bstrVal;/读取姓名3v_ColNum.iVal = 3;/设置列编号col = cols.GetItem(v_ColNum);/根据列编号返回

30、CColumn对象v_Value = col.GetValue();/读取列植m_NAME = v_Value.bstrVal;/读取性别4v_ColNum.iVal = 4;col = cols.GetItem(v_ColNum);v_Value = col.GetValue();m_SEX = v_Value.bstrVal;/读取生日5v_ColNum.iVal = 5;col = cols.GetItem(v_ColNum);v_Value = col.GetValue();m_BIRTHDAY = v_Value.bstrVal;/读取所在部门6v_ColNum.iVal = 6;c

31、ol = cols.GetItem(v_ColNum);v_Value = col.GetValue();m_DEPARTMENT = v_Value.bstrVal;/读取职务7v_ColNum.iVal =7;col = cols.GetItem(v_ColNum);v_Value = col.GetValue();m_JOB = v_Value.bstrVal;/读取受教育程度8v_ColNum.iVal = 8;col = cols.GetItem(v_ColNum);v_Value = col.GetValue();m_EDU_LEVEL = v_Value.bstrVal;/读取专

32、业技能9v_ColNum.iVal = 9;col = cols.GetItem(v_ColNum);v_Value = col.GetValue();m_SPCIALTY = v_Value.bstrVal;/读取家庭住址10v_ColNum.iVal = 10;col = cols.GetItem(v_ColNum);v_Value = col.GetValue();m_ADDRESS = v_Value.bstrVal;/读取联系电话11v_ColNum.iVal = 11;col = cols.GetItem(v_ColNum);v_Value = col.GetValue();m_T

33、EL = v_Value.bstrVal;/读取电子邮箱12v_ColNum.iVal = 12;col = cols.GetItem(v_ColNum);v_Value = col.GetValue();m_EMAIL = v_Value.bstrVal;/读取当前状态13v_ColNum.iVal = 13;col = cols.GetItem(v_ColNum);v_Value = col.GetValue();m_STATE = v_Value.bstrVal;/读取备注14v_ColNum.iVal = 14 ;col = cols.GetItem(v_ColNum);v_Value

34、 = col.GetValue();m_REMARK = v_Value.bstrVal;UpdateData(FALSE);l 修改员工信息/*/以下实现按钮触发修改列表所选信息功能void CUpdateName:OnBUTTONUpdateName() / TODO: Add your control notification handler code hereUpdateData(TRUE);_ConnectionPtr m_pConnection;:CoInitialize(NULL);/在ADO操作中建议语中要常用try.catch()来捕获错误信息/因为他有时会经常出现一些想不到

35、的错误trym_pConnection.CreateInstance(ADODB.Connection);_bstr_t strConn = Provider = SQLOLEDB;Data Sourse = (local); Initial Catalog =人事管理系统;UID=sa;PWD=;m_pConnection-Open(strConn,adModeUnknown);/if(m_pConnection-State = adStateOpen)MessageBox(成功连接数据库);catch(_com_error e):CoUninitialize();AfxMessageBox

36、(e.ErrorMessage();return;/以下插入数据_variant_t ra;_bstr_t strAdd = UPDATE PERSON SET PASSWD=;strAdd = strAdd + m_PASSWD + ,AUTHORITY=;strAdd = strAdd + m_AUTHORITY + ,NAME=;strAdd = strAdd + m_NAME + ,SEX=;strAdd = strAdd + m_SEX + ,BIRTHDAY=;strAdd = strAdd + m_BIRTHDAY + ,DEPARTMENT=;strAdd = strAdd +

37、 m_DEPARTMENT + ,JOB=;strAdd = strAdd + m_JOB + ,EDU_LEVEL=;strAdd = strAdd + m_EDU_LEVEL + ,ADDRESS=;strAdd = strAdd + m_ADDRESS + ,TEL=;strAdd = strAdd + m_TEL + ,EMAIL=;strAdd = strAdd + m_EMAIL + ,STATE=;strAdd = strAdd + m_STATE + ,REMARK=;strAdd = strAdd + m_REMARK + ;strAdd = strAdd + where ID= + m_I

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁