员工培训管理系统的设计与实现.doc_第1页
员工培训管理系统的设计与实现.doc_第2页
员工培训管理系统的设计与实现.doc_第3页
员工培训管理系统的设计与实现.doc_第4页
员工培训管理系统的设计与实现.doc_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

刘巧 员工培训管理系统的设计与实现 第页 共37页 员工培训管理系统的设计与实现学生姓名:刘巧 指导老师:阳慧摘 要 本课程设计主要解决在某企业中的员工培训的问题,并进行学员信息,培训课程,岗位部门,培训计划,培训教材,培训资源和培训教员等管理的程序设计,可以让用户实现对各类信息的添加、删除等基本功能。用户可以根据自己的需求,选择相应的各类资源。在程序设计中,采用了可视化与面向对象两种解决问题的方法。程序通过调试运行,初步实现了设计目标,并且经过适当完善后,将可以应用在商业中解决实际问题。 关键词 员工培训管理;数据库;microsoft sql server;visual c+6.01 引 言本课程设计主要解决在一个中小型企业中,进行员工培训中的学员信息,培训课程,岗位部门,培训计划,培训教材,培训资源和培训教员等管理的程序设计。员工培训管理系统是典型的管理系统,其系统开发主要包括数据库的规划设计与维护,客户端应用程序的开发两个方面,对于后者需要程序界面友好、功能完备等特点1。数据库采用sql server管理,并采用位图作为登录界面的背景。1.1 课程设计目的员工培训管理系统广泛应用于各类大、中、小型企业。随着全球化市场竞争的加剧和商业运作快速反映的要求,必须学习更快速有效地利用知识参与竞争。因此,很多企业开始将自身知识转化能力的增长看作是迎接竞争的一项重要生产力。企业的不断的学习能够帮助企业更快地适应市场环境的飞速变化,调整分配企业组织的人力资源分布,形成高效的企业组织单元,更好地完成企业运作任务。培训已经成为企业现代化的重要标志。员工培训管理系统就是为能更方便的和高效的管理企业员工课程学习的计划而开发的。其主要目的就是充分利用现有的电脑的较高的效率和准确性以及友好的应用界面来达到预期的对员工培训事务管理。1.2 课程设计背景随着市场竞争的日趋激烈,在企业活动中对人的要求也越来越高。给自己的员工进行培训来提高企业核心竞争力的重要途径之一。从员工的角度来看,在职培训对自身的发展也是十分有利的。在培训活动中,有很多的信息需要共享,尤其是培训的时间、地点、参与人员等信息,以便于各个部门的协调。根据这些需求开发一个员工培训管理系统来解决这个问题。2系统的需求分析2.1系统的功能需求分析1.进入系统前需要身份验证、用户名、密码、输入正确后方可进入。2.管理员可以根据需要定义员工,工作以及部门信息。3.管理员可以定义课程、书籍、教授以及培训的资源信息。4.管理员可以保存员工的培训成绩及员工经过培训之后对该课程和领域的评价。5.依据不同的要求,可以在数据库中对信息进行查询和编辑。2.2运行环境需求 开发一套系统要有相对应的开发环境,开发出来的系统本着通用、简洁和实效,所以此软件适用于windows2000/me/xp,数据库就是microsoft sql server数据库。对计算机要求的配置很低在一般的环境下都能正常的运行。保证了系统的易操作、可扩展、可操作性。3系统的总体设计3.1 系统的总体概论本系统针对企业员工培训管理而设计的数据库,运用于企业的管理软件,它使得企业以往的培训管理由以前的手工作业,向自动化、网络化、现代化迈进了一大步。使企业的管理者从繁重的培训管理事务中解放出来,大大提高了管理效率,减轻了管理者的工作量2。3.2 系统功能模块划分通过对员工培训管理系统的功能分析,可以定义出系统的功能模块图,如图3.1所示。其中定义的功能模块包括以下方面。l 人事信息管理系统:有3个方面的内涵,一是系统的用户管理,这包括用户的登录id以及对应的密码;一是企业员工的基本信息,包括的内容有员工序号、姓名、出生日期、性别、籍贯、民族、健康状况、参加工作时间以及岗位等信息;还有一个是为了标示不同员工工作岗位而建立的关于部门和工作岗位的信息。其中的部门信息就可以通过部门经理将所有的人员以节点的形式组成树状结构。所有的信息均包括添加、删除、修改。l 培训信息管理:是系统的核心,它包含有3个方面的子模块,分别是培训教材、培训教授、人员参与情况以及培训使用的资源。“使用资源”是在需求中隐含的一个要求,因为这个系统运行在企业的平台之上,所以对员工的培训会影响到若干部门之间的配合和协调。记录下培训所用的资源情况有利于在培训时公司的其他部门可以进行调度,从而照常运作。l 反馈信息管理:包括教师对培训人员以及培训学员对教师的评价两部分。前者主要是以成绩的形式存储。l 培训查询管理:是系统的重要组成部分。一个好的查询子系统能够极大地提高工作效率。在本系统中,提供的查询功能主要有对人员的查询、对课程的查询、对成绩的查询及对培训信息的查询。 员工培训管理系统用户验证人事信息管理培训信息管理反馈信息管理培训查询管理用户管理员工信息部门信息培训教材培训教师使用资源教师评价学员评价人员查询课程查询成绩查询培训信息查询图3.1员工培训管理系统模块示意图4数据库设计4.1 数据库需求设计数据库的需求具体体现在对各种信息的保存、修改和查询等方面。因此,一个满足系统要求的数据库必须充分照顾到对各种信息的输入输出,以免遗漏,导致开发时返工3。通过对系统功能的分析,员工培训管理系统至少需要包含以下数据库信息。l 企业成员基本信息:包括成员id、姓名、出生日期、性别、籍贯、职位等。l 课程信息:包括课程id、需要的教材、上课时间、地点、类别、教师id等,还需要单独存放的是正在进行中的课程以及当前员工对未开发课程的需求。员工对于课程的评价也属于这个范围。l 培训信息:包括员工的id、选课的id等。l 成绩信息:包括员工的id、成绩、时间、教师id、是否通过等。l 职位信息:这是成员信息的补充,主要管理岗位和部门的定义,如岗位的id、岗位名称、权限、部门的id、主管等。l 教师信息:包括教师的个人信息。4.2 数据库逻辑结构设计 数据库的逻辑结构的设计有两个目标,一是对需求分析中的实体建立对应的表;二是将实体之间的联系映射到表之间的关系上,具体来说就是设置表的主键和外键。在这个过程中,通常采用e-r图的分析方法,首先对局部视图进行分析设计,然后再实现视图集成4。在视图集成时,注意要尽量消除冲突和冗余。在这里直接给出视图集成后的e-r图,如图4.1所示。图4.1 员工培训管理系统e-r图根据e-r图,就可以创建以下数据表。(1)人事信息管理数据库与相关数据表的设计系统用户表的结构参数定义如表4-1所示:表4-1 系统用户表字段名称数据类型可否为空约束条件说 明tms_uservarchar(50)not null主键用户idtms_ps wdvarchar(50)not null 无姓名员工信息表的结构参数定义如表4-2所示:表4-2 员工信息表字段名称数据类型可否为空约束条件说 明emp_nointnot null 主键员工idemp_name varchar(50)null 无姓名emp_birthday datetimenull 无出生日期emp_gender varchar(50)null 无性别emp_hometown varchar(50)null 无籍贯emp_country varchar(50)null 无国籍emp_nation varchar(50)null 无民族dept_id intnull 无部门编号job_id intnull 无岗位编号emp_marriage varchar(50)null 无婚姻状况emp_health varchar(50)null 无健康状况emp_startwork datetimenull 无参加工作时间emp_homeaddress varchar(50)null无家庭住址emp_teleno intnull 无联系电话emp_email varchar(50)null 无e_mail地址部门信息表的结构参数定义如表4-3所示:表4-3 部门信息表字段名称数据类型可否为空约束条件说 明dept_idintnot null主键部门iddept_name varchar(50)null无名称dept_manager intnull无部门主管iddept_vicemanager intnull无部门副主管id岗位信息表的结构参数定义如表4-4所示:表4-4岗位信息表字段名称数据类型可否为空约束条件说 明job_idintnot null主键岗位idjob_namevarchar(50)null 无岗位名称job_powervarchar(50)null 无岗位权利(2)培训信息管理数据库与相关表的设计培训成绩表的结构参数定义如表4-5所示:表4-5培训成绩表字段名称数据类型可否为空约束条件说 明emp_nointnot null主键雇员编号course_idintnot null主键课程编号s_datedatetimenull无结束日期s_placevarchar(50)null无上课地点teacher_idintnull无教师idscoreintnull无成绩passtinyintnull无是否通过培训课程信息表的创建结构参数定义如表4-6所示:表4-6培训课程信息表字段名称数据类型可否为空约束条件说 明course_idintnot null主键课程idsubjectvarchar(50)null无领域course_cnamevarchar(50)null无中文名称course_enamevarchar(50)null无英文名称course_descvarchar(50)null无课程描述course_durationintnull无开课天数course_bookvarchar(50)null无教材course_beforeintnull无先修课程编号dept_idintnull无部门编号教材信息表的结构参数定义如表4-7所示:表4-7教材信息表字段名称数据类型可否为空约束条件说 明book_id intnot null主键教材idbook_name varchar(50)null 无名称book_author varchar(50)null 无教材作者book_state tinyintnull 无教材状态book_course_id intnull 无使用该教材的课程idbook_quantity intnull 无教材数量book_price intnull 无教材单价教师信息表的结构参数定义如表4-8所示:表4-8教师信息表字段名称数据类型可否为空约束条件说 明teacher_idintnot null主键教师idteacher_name varchar(50)null 无教师姓名teacher_date_state datetimenot null 无教龄teacher_evalution varchar(50)null 无评价(3)培训查询信息管理数据库及相关数据表的设计员工培训表的结构参数定义如表4-9所示:表4-9员工培训表字段名称数据类型可否为空约束条件说 明emp_no intnot null 主键员工idcourse_id intnull 无课程idcourse_date_begin datetimenull 无课程开始时间course_date_over datetimenull 无课程结束时间培训资源表的结构参数定义如表4-10所示:表4-10培训资源表字段名称数据类型可否为空约束条件说 明resource_id intnot null 主键资源idresource_name varchar(50)null 无名称resource_price floatnull 无资源价值resource_quantity intnull 无资源数量resource_rem varchar(50)null 无备注 在数据库中还有3个表,分别是course_available,course_evaluation,course_need,这3个表均与课程有关,第一个表存放的是正在进行中的课程的信息,第二个为对课程和教师的评价,第三个为当时对课程的需求。这3个表因为字段较少,所以不在这里列出。5系统的详细设计5.1 系统流程图 在前面的分析中已经定义了系统的各个功能模块,属于静态建模的范围。在系统运行时刻的动态模型应该由系统的流程决定。从上面的功能描述中,可以把员工培训管理系统分为5个模块:身份验证、人事信息管理、培训信息管理、反馈信息管理和培训信息查询。在每一个模块下又提供更为具体的功能。详细的员工培训管理系统的模块关系图如图5.1所示5。登录界面用户验证人事信息管理培训信息管理培训查询管理反馈信息查询退出系统登录失败登陆成功图5.1 系统流程图系统模块功能说明如表5-1所示:表5-1 系统模块功能表员工培训系统管理模块功能说明身份验证模块保护系统的安全性人事信息管理模块管理用户,企业员工的基本信息等培训信息管理模块保证资源的调度,使系统正常运作反馈信息管理模块实现对老师及员工表现的了解培训信息查询管理模块提供更有效率的查询功能5.2功能模块设计与代码实现登录到主界面之前,首先调用管理员登录模块。从数据库中读入user_pswd表的内容,判断用户输入的用户名和密码是否正确。主要代码如下:void ctraindlg:onok() cloginset *m_recordset=new cloginset(&m_database);cstring strsql;updatedata(true);strsql.format(select * from user_pswd where tms_user=%s and tms_pswd=%s,m_username,m_password);m_recordset-open(afx_db_use_default_type,strsql);if(m_recordset-getrecordcount()=0)if(countgetbuffer(1)!=0)messagebox(old passward wrong!);m_formerps.empty();m_newps.empty();m_confirmps.empty();updatedata(false);else /判断两次输入的新密码是否相同if(m_newps.compare(m_confirmps)!=0)messagebox(new passward confirm wrong!);m_formerps.empty();m_newps.empty();m_confirmps.empty();updatedata(false);else /修改密码strsql.format(delete from user_pswd where tms_user=%s,user);m_database.executesql(strsql);strsql.format(insert into user_pswd values(%s,%s),user,m_newps);m_database.executesql(strsql);messagebox(password modify successful);cdialog:onok();6系统运行6.1 系统运行平台在课程设计中,系统开发平台为windows xp,程序设计设计语言采用visual c+,程序运行平台为windows 98/2000/xp。6.2 系统运行界面截图(1)主界面的运行结果员工培训管理系统主界面如图6.1所示:图6.1 员工培训管理系统登录界面主对话框界面的布局如图6.2所示:图6.2 企业员工培训管理系统(2)学员信息管理运行结果学员信息管理的界面如图6.3所示:图6.3 学员信息管理员工信息录入的运行界面如图6.4所示:图6.4员工信息输入员工培训计划录入的运行界面如图6.5所示:图6.5 员工培训计划录入员工成绩录入运行界面如图6.6所示:图6.6 员工成绩录入员工需求录入运行界面如图6.7所示:图6.7 员工需求录入(3)培训课程管理运行界面截图培训课程管理窗口如图6.8所示:图6.8 培训课程管理课程信息录入的运行图如图6.9所示:图6.9 课程信息录入培训课程评价运行图如图6.10所示:图6.10培训课程评价课程评价信息录入窗口如图6.11所示:图6.11 课程评价信息录入(4)岗位部门信息录入运行结果截图岗位部门管理界面如图6.12所示:图6.12 岗位部门管理界面及岗位部门信息录入部门信息输入如图6.13所示:图6.13 部门信息输入(5)培训计划管理运行结果截图培训计划管理界面如图6.14所示:图6.14 培训计划管理和培训计划录入培训教材管理界面如图6.15所示:图6.15培训教材管理及教材信息输入培训资源管理界面如图6.16所示:图6.16培训资源管理及培训资源信息录入培训教员管理界面如图6.17所示:图6.17 培训教员管理及教员信息录入7 结束语课程设计引导我们尽可能多地运用所学知识点,灵活完成编码通过问题分析和任务定义体现我们的分析问题的能力;通过逻辑设计体现我们的抽象能力;通过详细设计和程序编码体现我们解决问题的能力;通过程序调试与测试体现我们动手能力;通过结果分析体现我们认识问题的能力;通过编写课程设计报告体现我们书写程序文档的能力。对于课程设计这门课的开设我觉得很有必要,它锻炼了我的动手能力,强化了我对所学知识的理解运用能力,更让我体会到团结协作的重要性。 通过团结协作才能写出功能相对完善的员工培训管理系统。本设计题目要求我综合应用面向对象的方法编制一个比较简单的应用系统,能够较好的检验我对课程和知识技能的掌握程度。同时,通过课程设计我对面向对象程序设计方法和思想的牢固掌握和熟练应用可以比较顺利的进行应用,对我的程序设计能力培养具有重要的作用和意义。引导我按照面向对象的思想,发挥自己的创造力来分析问题、解决问题。其次,通过本次课程设计,真正地把理论与实际联系在一起,明确了自己的学习思路,即只顾学好课本知识而脱离实际,这是学习中的大忌,是极其不正确的,是大错特错,进而给自己今后的学习指明了正确的道路。参考文献1李涛,刘凯奎,王永皎.visual c+ + sql server 数据库开发与实例. 北京:清华大学出版社,2006.72王珊,萨师煊. 数据库系统概论. 4版.北京:高等教育出版社,2006.53郑阿奇,丁有和. visual c+教程. 北京:机械工程出版社,2004.94孔鹏.visual c+ 6.0完全自学手册.北京:机械工业出版社5 刘唯富.visual c+程序设计习题实验与编程实践.上海:华东理工大学出版社附录1:员工培训管理系统主要源程序清单/ 程序名称:员工培训管理系统/ 程序功能:采用vc+设计程序,实现员工培训管理。/ 程序作者:刘巧/ 最后修改日期:2008-6-18#include stdafx.h#include train.h#include traindlg.h#include maindlg.h#include loginset.h#ifdef _debug#define new debug_new#undef this_filestatic char this_file = _file_;#endifbegin_message_map(caboutdlg, cdialog)/afx_msg_map(caboutdlg)/ no message handlers/afx_msg_mapend_message_map()/ ctraindlg dialogctraindlg:ctraindlg(cwnd* pparent /*=null*/): cdialog(ctraindlg:idd, pparent)/afx_data_init(ctraindlg)m_username = _t(train);m_password = _t(train);/afx_data_init/ note that loadicon does not require a subsequent destroyicon in win32m_hicon = afxgetapp()-loadicon(idr_mainframe);void ctraindlg:dodataexchange(cdataexchange* pdx)cdialog:dodataexchange(pdx);/afx_data_map(ctraindlg)ddx_text(pdx, idc_edit1, m_username);ddx_text(pdx, idc_edit2, m_password);/afx_data_mapbegin_message_map(ctraindlg, cdialog)/afx_msg_map(ctraindlg)on_wm_syscommand()on_wm_paint()on_wm_querydragicon()on_wm_ctlcolor()on_wm_destroy()on_wm_erasebkgnd() /afx_msg_mapend_message_map()/ ctraindlg message handlersbool ctraindlg:oninitdialog()cdialog:oninitdialog();count=0;if(!m_database.isopen()if(!m_database.open(_t(train)assert(不能打开到该数据源的连接!);/ add about. menu item to system menu./ idm_aboutbox must be in the system command range.assert(idm_aboutbox & 0xfff0) = idm_aboutbox);assert(idm_aboutbox appendmenu(mf_separator);psysmenu-appendmenu(mf_string, idm_aboutbox, straboutmenu);/ set the icon for this dialog. the framework does this automatically/ when the applications main window is not a dialogseticon(m_hicon, true);/ set big iconseticon(m_hicon, false);/ set small icon/ todo: add extra initialization herecbitmap * pbmpold; rect rectclient; verify(m_brush=(hbrush)getstockobject(hollow_brush); verify(m_bitmap.loadbitmap(idb_bitmap1); m_bitmap.getobject(sizeof(bitmap),&m_bminfo); getclientrect(&rectclient); m_size.cx=rectclient.right; m_size.cy=rectclient.bottom; m_pt.x=rectclient.left; m_pt.y=rectclient.top; cclientdc dc(this); verify(m_dcmem.createcompatibledc(&dc); verify(pbmpold=m_dcmem.selectobject(&m_bitmap); verify(m_hbmpold=(hbitmap)pbmpold-getsafehandle(); return true; / return true unless you set the focus to a controlvoid ctraindlg:onsyscommand(uint nid, lparam lparam)if (nid & 0xfff0) = idm_aboutbox)caboutdlg dlgabout;dlgabout.domodal();elsecdialog:onsyscommand(nid, lparam);/ if you add a minimize button to your dialog, you will need the code below/ to draw the icon. for mfc applications using the document/view model,/ this is automatically done for you by the framework.void ctraindlg:onpaint() if (isiconic()cpaintdc dc(this); / device context for paintingsendmessage(wm_iconerasebkgnd, (wparam) dc.getsafehdc(), 0);/ center icon in client rectangleint cxicon = getsystemmet

温馨提示

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

评论

0/150

提交评论