员工培训管理系统.doc_第1页
员工培训管理系统.doc_第2页
员工培训管理系统.doc_第3页
员工培训管理系统.doc_第4页
员工培训管理系统.doc_第5页
免费预览已结束,剩余44页可下载查看

下载本文档

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

文档简介

数据库系统原理及其应用教程课程设计报告 题目名称员工培训管理系统班 级学 号姓 名 指导教师 编写时间2009年12月29日目 录第1章 概述3第2章 需求分析系统功能分析3 系统结构图3 数据流图4数据字典 4第3章 培训需求信息概念结构设计 6第4章 数据库逻辑结构设计 9第5章 源代码及查询截图 源代码 13 查询截图 39第六章 总结及体会 48第七章 参考文献 49一 概述企业通过一个好的员工培训管理系统,能使企业的培训工作系统化、规范化、自动化,从而提高企业员工的素质和工作能力,使企业保持强大的竞争力。培训管理系统需要维护员工信息、管理培训资源和教材,设计培训计划,安排培训课程,对课程进行评价。此外还要考虑内部培训和外出培训的问题,最后,系统还需安排系统用户管理、权限管理。二 需求分析1. 系统功能分析根据系统功能的要求,员工培训系统可以分为以下几点:l 包括员工基本信息、职称、岗位、已经培训过的课程和成绩、培训计划等。l 员工各种信息的查询、修改、包括员工的基本信息、职称、岗位、已经培训过的课程和成绩、培训计划等。l 培训课程信息的输入,包括课时、课程种类等。l 培训课程信息的查询、修改。l 企业所有管理员工培训需求的管理。l 企业培训计划的制定、修改。l 培训课程的评价。l 培训管理系统的使用帮助。l 教师信息的管理、教师评价。l 培训资源管理。l 培训教材管理。l 员工外出培训管理。l 系统用户管理、权限管理。2. 系统结构图培训管理系统培训需求管理培训计划管理基本信息管理系统管理进货信息管理商品信息修改商品信息添加用户 管理 权限 管理培训效果评价培训计划实施培训资源管理 其 他3. 数据流图岗位任务分析岗位培训需求员工个人培训需求部门总培训需求各个部门培训要求培训中心培训计划培训中心组织授课个人培训计划部门专门的岗位培训培训记录、当康管理培训记录、档案管理信息反馈、培训评估培训中心汇总处理选课报名汇总4. 数据字典 通过对企业员工培训管理的内容和数据流程的分析,设计的数据项和数据结构如下:l 员工基本状况。起数据项有员工号、员工姓名、性别、所在部门、身份证号、生日、籍贯、国籍、名族、婚姻状况、健康状况、参加工作时间、员工状态、家庭住址和联系电话等。l 员工成绩状况。其数据项有员工号、课程名称、时间、地点、授课教师、成绩、评价和是否通过等。l 课程信息。其数据项有课程号、课程类别、课程名、课程学时、等效课程、预修课程、开课部门和初训/复训等。l 企业工作岗位信息。其数据项有工作岗位代号、工作岗位名称、工作岗位权利范围等。l 企业部门信息。其数据项有部门代号、部门名称、部门经理、部门副经理等。l 培训需求信息。其数据项有所需培训的课程和要求培训的员工等。l 企业培训计划信息。其数据项有培训的课程、培训开始时间、结束时间、培训教员、上课时间和上课地点等。l 个人培训计划信心。其数据项有培训员工、培训课程、培训开始时间、培训结束时间等。l 课程评价信息。其数据项有课程名、评价内容和评价时间等。l 教员信息。其数据项有教员好、教员姓名、教员学历、开始教课时间和教员评价等。l 培训资源管理信息。其数据项有各个教室、教学设备的配备情况、各种教学教具借用情况、培训中心固定资产管理、各种培训费用和培训资源需求管理等。l 培训教材管理。其数据项有教材适合的课程、作者、教材状态、教材数量和价钱等三 培训需求信息概念结构设计此系统根据上面的设计规划出的实体有:员工实体、部门实体、岗位实体、教员实体、教学资源实体、教材实体、课程实体。以下为各个实体具体的描述E-R图:1. 员工实体E-R图:员工员工基本信息员工基本信息员工基本信息员工基本信息2. 部门实体E-R图:部门部门代号部门名称部门经理部门副经理3. 岗位实体E-R图岗位岗位代号岗位名称岗位权利范围4. 课程实体E-R图:课程课程代号 名称课程学时课程类别等效课程5. 教员实体E-R图:教员教员代号 名称教员学历教员授课时间对角元的6. 培训资源实体E-R图:培训资源现有资源培训成本资源需求7. 教材实体E-R图:培训教材教材代号/名称教材状态作者/价钱8. 实体和实体之间的关系E-R图:培训资源培训资源培训资源培训资源培训资源培训资源培训资源担任担任担任担任担任担任担任四 数据库逻辑结构设计1.创建课程表(COURSE)列名数据类型可否为空说明COURSE_IDNUMBER(3)NOT NULL课程号(主键)SUBJECTVARCHAR2(10)NULL课程类别COURSE_CNAMEVARCHAR2(20)NULL课程中文名称COURSE_ENAMEVARCHAR2(10)NULL课程英文名称COURSE_DESCVARCHAR2(40)NULL课程描述COURSE_DURATIONVARCHAR2(3)NULL学时COURSE_BOOKVARCHAR2(10)NULL教材COURSE_EQUVARCHAR2(3)NULL等效课程COURSE_BEFOREVARCHAR2(3)NULL预修教程COURSE_MARKVARCHAR2(1)NULL初训/复训标志(取值0/1)DEPT_IDVARCHAR2(3)NULL开课部门代号2.教员信息表(TEACHER)列名数据类型可否为空说明TEACHER_IDNUMBER(6)NOT NULL教员号(主键)TEACHER_NAMEVARCHAR2(10)NULL教员姓名TEACHER_XLVARCHAR2(10)NULL教员学历TEACHER_DATE_STARTDATENULL开始教的时间TEACHER_EVALUATIONVARCHAR2(40)NULL教员评价3.员工基本状况表PERSONNEL列名数据类型可否为空说明EMP_NONUMBER(6)NOT NULL员工号(主键)EMP_NAMEVARCHAR2(10)NULL员工姓名DEPT_IDNUMBER(3)NULL所在部门号(外部键),指向部门信息表DEPT_IDEMP_XLVARCHAR2(10)NULL学历EMP_GENDERVARCHAR2(2)NULL性别EMP_BIRTHDAYDATENULL生日EMP_HOMETOWNVARCHAR2(8)NULL籍贯EMP_COUNTRYVARCHAR2(10)NULL国家EMP_NATIONVARCHAR2(10)NULL名族EMP_IDNUMBER(20)NULL身份证号EMP_MARRIAGEVARCHAR2(10)NULL婚姻情况EMP_HEALTHVARCHAR2(20)NULL健康情况EMP_STARTWORKDATENULL参加工作时间EMP_STATEVARCHAR2(10)NULL员工状态EMP_STATE_DATEDATENULL状态时间EMP_HOMEADDRESSVARCHAR2(10)NULL家庭住址EMP_TELENONUMBER(10)NULL联系电话EMP_EMAILVARCHAR2(20)NULL联系E-mail地址JOB_IDNUMBER(3)NULL工作岗位代号(外部键),指向工作岗位情况表JOB_ID4.部门信息表 DEPT列名数据类型可否为空说明DEPT _IDNUMBER(6)NOT NULL部门代号(主键)DEPT _NAMEVARCHAR2(10)NULL部门名称DEPT _MANAGERNUMBER(6)NULL部门经理号(外部键),指向员工基本状况表EMP_NODEPT _VICEMANAGERNUMBER(6)NULL部门副经理代号(外部键),指向员工基本状况表的EMP_NO5.员工成绩表SCORE列名数据类型可否为空说明EMP_NONUMBER(6)NOT NULL员工号(外部键),指向员工基本状况表EMP_NOCOURSE_IDNUMBER(3)NULL课程号(外部键),指向课程表COURSES_DATEDATENULL上课时间S_PLACEVARCHAR2(10)NULL上课地点TEACHER_IDNUMBER(6)NULL教师号(外部键),指向教师表TEACHERSCORE_1NUMBER(3)NULL成绩1SCORE_2NUMBER(3)NULL成绩2SCORE_NOTESVARCHAR2(10)NULL教师评语PASSNUMBER(6)NULL通过否(0,1表示)6.工作岗位表JOB列名数据类型可否为空说明JOB_IDNUMBER(3)NOT NULL工作岗位代号(主键)JOB_NAMEVARCHAR2(10)NULL工作岗位名称JOB_POWERVARCHAR2(20)NULL岗位权利范围7.培训需求表 COURSE_NEED列名数据类型可否为空说明COURSE_IDNUMBER(3)NOT NULL课程号(外部键),指向课程表COURSE_NOCOURSE_NEEDNUMBER(6)NULL课程需要者(外部键),指向员工基本状况表8.企业培训计划表 COURSE_AVAILABLE列名数据类型可否为空说明COURSE_IDNUMBER(3)NOT NULL课程号(外部键),指向课程表COURSE_NOCOURSE_DATE_BEGINDATENULL课程开始时间COURSE_DATE_OVERDATENULL课程结束时间TEACHER_IDNUMBER(6)NULL教师号(外部键),指向教师表中的TEACHER_IDCOURSE_PERSONNUMERNUMBER(2)NULL上课的人数COURSE_PLACEVARCHAR2(10)NULL上课的地点9.个人培训计划表 PERSONNEL_PLAN列名数据类型可否为空说明EMP_NONUMBER(6)NOT NULL员工号(主键),员工号(外部键),指向员工基本状况的EMP_NOCOURSE_IDNUMBER(3)NOT NULL课程号(外部键),指向课程表COURSE_NOCOURSE_DATE_BEGINDATENULL课程开始时间COURSE_DATE_OVERDATENULL课程结束时间10.课程评价表 COURSE_EVALUATION列名数据类型可否为空说明COURSE_IDNUMBER(3)NOT NULL课程号(外部键),指向课程表COURSE_NOEVALUATION _DATEDATENULL评价时间EVALUATION VARCHAR2(40)NULL评价内容11.培训资源信息表 TM_RESOURCE列名数据类型可否为空说明RESOURCE_IDNUMBER(3)NOT NULL资源代号(主键)RESOURCE_NAMEVARCHAR2(10)NULL资源名称RESOURCE_MARKNUMBER(1)NULL资源状况标记RESOURCE_PRICENUMBER(5,2)NULL资源价钱RESOURCE_QUANTITYNUMBER(2)NULL资源数量RESOURCE_REMVARCHAR2(40)NULL备注12.教材信息表BOOK列名数据类型可否为空说明BOOK_IDNUMBER(3)NOT NULL教材编号(主键)BOOK_NAMEVARCHAR2(20)NULL教材名称BOOK_AUTHORVARCHAR2(10)NULL作者BOOK_STATEDATENULL教材状态标记BOOK_COURSE_IDNUMBER(1)NULL相应课程编号(外部键),指向课程表中的COURSE_IDBOOK_QUANTITYNUMBER(3)NULL教材数量BOOK_PRICENUMBER(5,2)NULL教材价钱13.管理TMS系统的用户口令表USER_PSWD列名数据类型可否为空说明TMS_USERVARCHAR2(20)NOT NULL用户名(主键)TMS_PSWDVARCHAR2(10)NOT NULL口令五源代码及查询截图(包括程序流程图,数据库链接方法);1.数据库的内容显示 为了使用户在打开某项管理的时候能直接看到对应的数据库表的内容,在程序中使用了CListCtrl类,每次初始化对话框的时候首先执行一次数据库查询操作,将查到的所有结果都显示在对话框的CListCtrl控件中,方便用户的操作管理。CListCtrl类的主要成员函数使用方法说明如下: Int InsertColumn(int nCol,const LVCOLUMN*pColumn); 其功能是在ListControl对象中新增列,其中nCol表示新增列的序号,pColumn代表列名。 BOOL SetColumnWidth(int nCol,int cx); 其功能是设定列的宽度,其中nCol表示列序号,cx表示列宽度。 Int InsertItem(int nItem,LPCTSTR lpszItem); 其功能是增加表项,nItem表示表项的序号,lpszItem表示表项第一个位置的内容。 BOOL SetItemText(int nItem,int nSubItem,LPTSTR lpszText); 其功能是设置表项特定位置的内容,nItem表示表项序号,nSubItem表示列位置,lpszText表示需设置的内容。2.数据库对象的处理由于此应用程序时给予对话框开发的,而Visual C+的特点是没新增加一个对话框资源,就为该对话框创建一个新的类,而面向对象的特点是用传统编程方法中的全局变量已不多用。为了能够在每个对话框类中都能实现对数据库的访问,在设计程序时,采用的方法是在每一个对话框类中都增加一个成员变量m_database,用于连接到数据库,是用的方法是,每次单击按钮出现一个对话框时,在单击事件代码中完成以下操作:l 关闭本对话框与数据库的连接m_database.Close()。l 新建一个对话框类的对象 CDialogNew m_new。l 为新对话框传见到数据库的连接 m_new.m_database.Open(_T(“train”)。 这样新的对话框就可以直接是用刀数据库train对象的连接了,如果要提高应用程序 的模块性,也可以吧所有对数据库的操作封装到一个底层的类,然后由上层的控制类来调用这些操作,这是另一种开发的模式。3.记录集的处理由于使用的是MFC ODBC方式访问数据库,因此可以使用师表到记录集的映射。为了变成便捷,可以为数据库中的每一个表映射一个记录集类(从CRecordSet类继承)。本应用程序的映射关系如下:数据源的表与记录集类的对应关系表格对应记录集PERSONNELCPersonSetSCORECScoreSetJOBCJobSetCOURSECCourseSetDEPTCDeptSetCOURES_NEEDCPersonNeedSetCOURSE_AVAILABLECTrainPlanSetPERSONNEL_PLANCPersonPlanSetCOURSE_EVALUATIONCAppriseSetTEACHERCTeacherSetTM_RESOURCECResourceSetBOOKCBookSetUSER_PSWDCLoginSet这些记录集已经自动对应表的列绑定好,方便了以后对记录集的使用。4.实现数据库逻辑结构的SQL语句虽然使用了Access数据库系统,但是SQL语句也是可以用的,相对应的语句如下:a) 创建员工基本情况表格的SQL语句:CREAT TABLE train.PRESONNEL(EMP_NO NUMBER(6,0) NOT NULL,EMP_NAME VARCHAR2(10) NULL, DEPT_ID NUMBER(3,0) NULL,EMP_XL VARCHAR2(10) NULL,EMP_GENDER VARCHAR2(10) NULL,EMP_BIRTHDAY DATE NULL,EMP_HOMETOWN VARCHAR2(8) NULL,EMP_NATION VARCHAR2(10) NULL,EMP_ID NUMBER(20,0) NULL,EMP_MARRIAGE VARCHAR2(2) NULL,EMP_HEALTH VARCHAR2(20) NULL,EMP_STARTWORK DATE NULL,EMP_STATE VARCHAR2(10) NULL,EMP_STATE_DATE DATE NULL,EMP_HOMEADDRESS VARCHAR2(10) NULL,EMP_TELENO NUMBER(10,0) NULL,EMP_EMAIL VARCHAR2(20) NULL,JOB_ID NUMBER(3,0) NULL,CONSTRAINT PERSONNEL_EMP_NO_PK PRIMARY KEY(EMP_NO),CONSTRAINT PERSONNEL_DEPT_ID_FK FOREIGN KEY(DEPT_ID)REFERENCES train.DEPT(DEPT_ID),CONSTRAINT PERSONNEL_JOB_ID_FK FOREIGN KEY(JOB_ID)REFERENCES train.JOB(JOB_ID)TABLESPACEUSER_DATA;b) 创建员工成绩表的SQL语句:CREATE TABLE train.SCORE(EMP_NO NUMBER(6) NOT NULL,COURSE_ID NUMBER(3) NULL,S_DATE DATE NULL,S_PLACE VARCHAR2(10) NULL,TEACHER_ID NUMBER(6) NULL,SCORE_1 NUMBER(3) NULL,SCORE_2 NUMBER(3) NULL,SCORE_NOTES VARCHAR2(10) NULL,PASS NUMBER(1) NULL,CONSTRAINT SCORE_EMP_NO_PF PRIMARY KEY(EMP_NO),CONSTRAINT SCORE_COURSE_ID_FK FOREIGN KEY (COURE_ID) REFERENCES train.COURESE(COURSE_ID),CONSTRAINT SCORE_TEACHER_ID_FK FOREIGN KEY(TEACHER_ID) REFERENCES train.TEACHER(TEACHER_ID)TABLESPACE USER_DATA;c) 创建课程表的SQL语句:CREATE TABLE train.COURSE(COURSE_ID NUMBER(3) NULL,SUBJECT VARCHAR2(10) NULL,COURSE_CNAME VARCHAR2(20) NULL,COURSE_ENAMER VARCHAR2(10) NULL,COURSE_DESC VARCHAR2(40) NULL,COURSE_DURATION NUMBER(3) NULL,COURSE_BOOK VARCHAR2(10) NULL,COURSE_EQU NUMBER(3) NULL,COURSE_BEFORE NUMBER(3) NULL,COURSE_MARK NUMBER(1) NULL,DEPT_ID NUMBER(3) NULL,CONSTRAINT COURSE_COURSE_ID_PK PRIMARY KEY(COURSE_ID)TABLESPACE USER_DATA;d) 创建4.工作岗位状况表的SQL语句:CREATE TABLE train.JOB(JOB_ID NUMBER(3) NOT NULL,JOB_NAME VARCHAR2(10) NULL,JOB_POWER VARCHAR2(20) NULL,CONSTRAINT JOB_JOB_ID_PK PRIMARY KEY(JOB_ID)TABLESPACE USER_DATA;e) 创建部门信息表的SQL语句:CREATE TABLE train.DEPT(DEPT_ID NUMBER(3) NOT NULL,DEPT_NAMER VARCHAR2(10) NULL,DEPT_MANAGER NUMBER(6) NULL,DEPT_VICEMANAGER NUMBER(6) NULL,CONSTRAINT DEPT_DEPT_ID_PK PRIMARY KEY(DEPT_ID),CONSTRAINT DEPT_MANAGER_FK FOREIGN KEY(DEPT_MANAGER) REFERENCES train.PERSONNEL(EMP_NO),CONSTRAINT DEPT_VICEMANAGER_FK FOR EIGN KEY (DEPT_VICEMANAGER) REFERENCES train.PERSONNEL(EMP_N0)TABLESPACE USER_DATA;f) 创建培训需求表的SQL语句:CREATE TABLE train.COURSE_NEED(COURSE_ID NUMBER(3) NOT NULL,COURSE_NEED NUMBER(6) NULL,CONSTRAINT COURSE_NEED_COURSE_ID_FK FOREIGN KEY(COURSE_ID) REFERENCES train.COURSE(COURSE_ID)CONSTRAINT COURSE_NEED_COURSE_NEED_FK FOREIGN KEY (COURSE_NEED) REFERENCEStrain,PERSONNEL(EMP_NO)TABLESPACE USER_DATA;g) 创建企业培训计划表的SQL语句:CREATE TABLE train.COURSE_AVAILABLE(COURSE_ID NUMBER(3) NULL,COURSE_DATE_BEGIN DATE NULL,COURES_DATE_OVER DATE NULL,TEACHER_ID NUMBER(6) NULL,COURSE_PRESONNUMBER NUMBER(2) MULL,COURSE_PLACE VARCHAR2(10) NULL,CONSTRAINT COURSE_AVAILABLE_COURSE_ID_PK PRIMARY KEY(COURSE_ID) (COURSE_ID) REFERENCES train.COURSE(COURSE_ID)CONSTRAINT COURSE_AVAILABLE_TEACHER_ID_FK FOREIGN KEY (TEACHER_ID) REFERENCES train.TEACHER(TEACHER_ID)TABLESPACE USER_DATA;h) 创建个人培训计划表的SQL语句:CREATE TABLE train.PRESONNEL_PLAN(EMP_NO NUMBER(6) NOT NULL,COURSE_ID NUMBER(3) NOT NULL,COURSE_DATE_BEGIN DATE NULL,COURSE_DATE_OVER DATE NULL,CONSTRAINT PERSONNEL_PLAN_EMP_NO_FK FOREIGN KEY(EMP_NO) REFERENCES train.PERSONNEL(EMP_NO),CONSTRAINT PERSONNEL_PLAN_COURSE_ID_FK FOREIGN KEY (COURSE_ID) REFERENCES train.COURSE(COURSE_ID)TABLESPACE USER_DATA;i) 创建课程评价表的SQL语句:CREATE TABLE train.COURSE_EVALUATION(COURSE_ID NUMBER(3) NOT NULL,EVALUATION VARCHAR2(40) NULL,EVALUATION_DATE DATE NULL,CONSTRAINT COURSE_EVALUATION_COURSE_ID_FK FOREIGN KEY(COURSE_ID) REFERENCES train.COURSE(COURSE_ID)TABLESPACE USER_DATA;j) 创建教员信息表的SQL语句:CREATE TABLE train.TEACHER(TEACHER_ID NUMBER(3) NOT NULL,TEACHER_NAME VARCHAR2(10) NULL,TEACHER_XL_VARCHAR2(10) NULL,TEACHER_DATE_START DATE NULL,TEACHER_EVALUATION VARCHAR2(40) NULL,CONSTRAINT TEACHER_TEACHER_ID_PK PRIMARY KEY(TEACHER_ID)TABLESPACE USER_DATA;k) 创建培训资源信息表的SQL语句:CREATE TABLE train.TM_RESOURCE(RESOURCE_ID NUMBER(3) NOT NULL,RESOURCE_NAME VARCHAR2(20) NULL,RESOURCE_MARK NUMBER(1) NULL,RESOURCE_PRICE VARCHAR2(10) NULL,RESOURCE_QUANTITY NUMBER(2) NULL,RESOURCE_REM VARCHAR(40) NULL,CONSTRAINT RESOURCE_RESOURCE_ID_PK PRIMARY KEY(RESOURCE_ID)TABLESPACE USER_DATA;l) 创建教材信息表的SQL语句:CREATE TABLE train.BOOK(BOOK_ID NUMBER(3) NOT NULL,BOOK_NAME VARCHAR2(20) NULL,BOOK_AUTHOR VARCHAR2(10) NULL,BOOK_STATE NUMBER(1) NULL,BOOK_COURSE_ID NUMBER(3) NULL,BOOK_QUANTITY NUMBER(3) NULL,BOOK_PRICE NUMBER(5,2) NULL,COURSE_DESC VARCHAR2(40) NULL,CONSTRAINT BOOK_BOOK_ID_PK PRIMARY KEY(BOOK_ID),CONSTRAINT BOOK_COURSE_ID_FK FOREIGN KYE(BOOK_COURSE_ID) REFERENCES train.COURSE(COURSE_ID)TABLESPACE USER_DATA;m) 创建管理train系统的用户口令表的SQL语句:CREATE TABLE train.USER_PSED(TMS_USE VARCHAR2(20) NOT NULL,TMS_PSWD VARCHAR2(10) NOT NULL,CONSTRAINT TMS_USER_PK PRIMARY KEY(TMS_USER)TABLESPACE USER_DATA;5.各个对话框的创建登录窗口的设计:登录窗口如图1所示,该窗口中放置了5个静态文本框控件,在窗口的相应位置显示文字。放置了2个编辑框控件一个供用户输入登录的用户名,另一个供用户输入密码口令这一编辑框的属性要设成password。输入的值存放在编辑框控件对应的变量中。另外还放置了一个按钮控件(Button)。为了使数据库使用安全,允许的用户和口令都预先存在数据库中,如果要加入新的用户,必须修改数据库对应的表。单击“登录”按钮后,应用程序先执行一次数据库的查询,看输入的用户名和口令是不是在数据库USER_PSWD表中存在,如果存在则打开系统管理对话框,若没有,则提示登录失败,并给予用户再次尝试的机会,如果3次均未成功,应用程序则自动关闭。 图一下面是实现这些功能的代码,写在“登录”按钮的单击事件函数中:void CTrainDlg:OnOK() / TODO: Add extra validation hereCLoginSet *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(countOpen(AFX_DB_USE_DEFAULT_TYPE,strSQL);如果记录集为空,则提示“no such user”。1. 程序管理窗口的设计系统应用程序的各个不同功能是通过选择管理窗口中的不同按钮来完成的。每个功能模块由一个或多个对话框实现。在管理窗口上放置了9个按钮控件,其单击事件分别用来打开具有不同模块功能的窗口(对话框)。 图二 管理窗口上的控件布局各个按钮单击所完成的功能简单介绍如下:“学员信息管理”调用“学员信息管理”模块,对员工的基本状况、成绩、选择的培训课程、培训需求进行管理。“培训课程管理”:调用“培训课程管理”模块,该模块由两个窗口组成,一个是培训课程管理窗口,另一个是培训课程评价窗口。“培训资源管理”调用“培训资源管理”模块。“培训计划管理”调用“培训计划”管理模块。“培训教员管理”调用“培训教员管理”模块。“岗位部门管理”调用“岗位部门管理”模块,该模块分成两个部分,分别对岗位和部门进行管理。“培训教材管理”调用“培训教材管理”模块,该模块中有两个部分,一个是仓库中现有的教材,另一个部分是课程需要用到的教材。“修改密码”调用“修改密码”窗口。“退出”关闭管理窗口,退出应用程序。2. 口令修改窗口的设计为保证数据库的安全,有时候需要经常修改用户的口令。本系统可以在应用程序执行过程中修改当前的口令。口令修改窗口由管理窗口的“修改密码”按钮调用。窗口的界面如图二所示: 图三 口令修改窗口这里的3个编辑框的属性都要设成passward。实现的代码如下,写在“确认”按钮单击事件对应的函数中:void CDIALOG_MODPSWD:OnOK() / TODO: Add extra validation hereUpdateData(TRUE);CDBVariant varValue;CLoginSet m_recordset(&m_database);CString strSQL;strSQL.Format(select * from USER_PSWD where TMS_USER=%s,user);m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);m_recordset.GetFieldValue(1,varValue);if(m_formerps.Compare(varValue.m_pstring-GetBuffer(1)!=0)MessageBox(old password wrong!);m_formerps.Empty();m_newps.Empty();m_confirmps.Empty();UpdateData(FALSE);elseif(m_newps.Compare(m_confirmps)!=0)MessageBox(new password confirm wrong!);m_formerps.Empty();m_newps.Empty();m_confirmps.Empty();UpdateData(FALSE);elsestrSQL.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();其功能是先修改判断原口令是否正确,如果不正确则弹出对话框警告:再判断用户两次输入的新口令是否一致,如果不一致也弹出对话框警告。如果都正确则修改数据库内容。3. 员工信息管理模块的设计学员信息管理窗口界面如图四所示:图四 学员信息管理窗口该窗口的数据显示是由Visual C+的List Control控件(对应CListCtrl 类)完成的。该窗口总共有4个List Control控件,对应的控制变量分别为m_basic、m_score、m_plan、m_need。在左边员工基本情况显示部分的下面有两个组合框ComboBox控件,其中一个提供用户选择要查询的列(员工号、姓名、状态等),另一个提供用户要查询的符号(、=等等)。另外还有一个编辑框控件,提供用户在其中输入要查询的内容。ComboBox的属性内容如图五和图六所示。查询条件下面的3个按钮控件用来实现添加、删除和查询功能,其中查询只能是适用于员工基本情况,而添加和删除可以选定不同的数据库,具体的选择是通过下面的四个单选按钮(IDC_RADIO1IDC_RADIO4)实现的,选中那个选项,那么进行的操作就针对哪个表。 图五 查询列的属性页 图六 查询符号的属性页下面详细介绍整个模块的运作过程。下来介绍对话框的初始函数,功能是初始化List Control控件的列名,然后显示数据。代码如下:BOOL CDIALOG_PERSONNEL:OnInitDialog() CDialog:OnInitDialog();select=-1;/ TODO: Add extra initialization herem_basic.InsertColumn(0,员工号);m_basic.InsertColumn(1,员工姓名);m_basic.InsertColumn(2,所在部门号);m_basic.InsertColumn(3,学历);m_basic.InsertColumn(4,性别);m_basic.InsertColumn(5,生日);m_basic.InsertColumn(6,籍贯);m_basic.InsertColumn(7,国籍);m_basic.InsertColumn(8,民族);m_basic.InsertColumn(9,身份证号);m_basic.InsertColumn(10,婚姻状况);m_basic.InsertColumn(11,健康状况);m_basic.InsertColumn(12,参加工作时间);m_basic.InsertColumn(13,员工状态);m_basic.InsertColumn(14,状态时间);m_basic.InsertColumn(15,家庭住址);m_basic.InsertColum

温馨提示

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

评论

0/150

提交评论