基于vc的企业培训管理系统的设计与实现_第1页
基于vc的企业培训管理系统的设计与实现_第2页
基于vc的企业培训管理系统的设计与实现_第3页
基于vc的企业培训管理系统的设计与实现_第4页
基于vc的企业培训管理系统的设计与实现_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

32/43基于vc++的企业培训管理系统的设计与实现毕业设计(论文)原创性声明和使用授权说明原创性声明本人重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作与取得的成果。尽我所知,除文中特别加以标注和致的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得与其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了意。作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部容。作者签名:日期:学位论文原创性声明本人重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期:年月日学位论文使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名: 日期:年月日导师签名:日期:年月日指导教师评阅书指导教师评价:一、撰写(设计)过程1、学生在论文(设计)过程中的治学态度、工作精神□优□良□中□与格□不与格2、学生掌握专业知识、技能的扎实程度□优□良□中□与格□不与格3、学生综合运用所学知识和专业技能分析和解决问题的能力□优□良□中□与格□不与格4、研究方法的科学性;技术线路的可行性;设计方案的合理性□优□良□中□与格□不与格5、完成毕业论文(设计)期间的出勤情况□优□良□中□与格□不与格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规?□优□良□中□与格□不与格2、是否完成指定的论文(设计)任务(包括装订与附件)?□优□良□中□与格□不与格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义□优□良□中□与格□不与格2、论文的观念是否有新意?设计是否有创意?□优□良□中□与格□不与格3、论文(设计说明书)所体现的整体水平□优□良□中□与格□不与格建议成绩:□优□良□中□与格□不与格(在所选等级前的□画“√”)指导教师:(签名)单位:(盖章)年月日评阅教师评阅书评阅教师评价:一、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规?□优□良□中□与格□不与格2、是否完成指定的论文(设计)任务(包括装订与附件)?□优□良□中□与格□不与格二、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义□优□良□中□与格□不与格2、论文的观念是否有新意?设计是否有创意?□优□良□中□与格□不与格3、论文(设计说明书)所体现的整体水平□优□良□中□与格□不与格建议成绩:□优□良□中□与格□不与格(在所选等级前的□画“√”)评阅教师:(签名)单位:(盖章)年月日教研室(或答辩小组)与教学系意见教研室(或答辩小组)评价:一、答辩过程1、毕业论文(设计)的基本要点和见解的叙述情况□优□良□中□与格□不与格2、对答辩问题的反应、理解、表达情况□优□良□中□与格□不与格3、学生答辩过程中的精神状态□优□良□中□与格□不与格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规?□优□良□中□与格□不与格2、是否完成指定的论文(设计)任务(包括装订与附件)?□优□良□中□与格□不与格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义□优□良□中□与格□不与格2、论文的观念是否有新意?设计是否有创意?□优□良□中□与格□不与格3、论文(设计说明书)所体现的整体水平□优□良□中□与格□不与格评定成绩:□优□良□中□与格□不与格(在所选等级前的□画“√”)教研室主任(或答辩小组组长):(签名)年月日教学系意见:系主任:(签名)年月日目录HYPERLINK摘要IHYPERLINKAbstractIIHYPERLINK1前言1HYPERLINK1.1课题研究的目的1HYPERLINK1.2课题研究的意义1HYPERLINK1.3方案选择与开发技术介绍1HYPERLINK1.3.1VC++简介2HYPERLINK1.3.2SQLServer2000数据库简介2HYPERLINK1.3.3C/S开发模式简介3HYPERLINK1.3.4多线程技术3HYPERLINK1.4开发工具与硬软件要求3HYPERLINK2系统需求分析4HYPERLINK2.1系统的初步调查4HYPERLINK2.2客户需求分析4HYPERLINK2.3可行性分析5HYPERLINK2.3.1社会可行性分析5HYPERLINK2.3.2经济可行性分析5HYPERLINK2.3.3技术可行性分析5HYPERLINK2.3.4法律可行性分析6HYPERLINK3系统设计6HYPERLINK3.1系统目标6HYPERLINK3.2系统功能模块设计6HYPERLINK4数据库设计8HYPERLINK4.1数据库概念结构设计8HYPERLINK4.2数据库表设计9HYPERLINK5系统详细设计与实现10HYPERLINK5.1服务器10HYPERLINK5.1.1服务器操作流程10HYPERLINK5.1.2信息添加流程11HYPERLINK5.1.3信息删除流程12HYPERLINK5.1.4信息管理流程13HYPERLINK5.1.5考试管理流程13HYPERLINK5.1.6主线程流程14HYPERLINK5.1.7服务线程流程15HYPERLINK5.1.8学号验证流程16HYPERLINK5.2客户端17HYPERLINK5.2.1客户端操作流程17HYPERLINK5.2.2接收试卷流程18HYPERLINK5.2.3试卷初始化流程图19HYPERLINK5.3数据包和试卷结构设计20HYPERLINK5.4系统主界面21HYPERLINK6系统的测试与分析21HYPERLINK6.1功能需求单元测试22HYPERLINK6.1.1登录测试22HYPERLINK6.1.2单文档中多视图切换测试24HYPERLINK6.1.3考试系统模块测试26HYPERLINK6.2综合测试27HYPERLINK7今后工作27HYPERLINK总结28HYPERLINK参考文献29HYPERLINK致30摘要随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新型学科,已成功运用在多个领域。作为计算机应用的一部分,使用计算机对企业培训信息进行管理,具有着人工管理无法比拟的优点,它检索迅速、查找方便、可靠性高、存储量大、性好、寿命长、成本低等,可节省更多的人力物力,这些都能够极提高企业培训信息管理效率,也是企业培训管理科学化、正规化,与世界接轨的重要条件。因此,开发一个培训管理系统是很有必要的,具有其特有的技术意义和管理意义。本文介绍了在VisualC++6.0环境下采用“自上而下地总体规划,自下而上地应用开发”的策略开发本系统的详细过程,提出实现基本资料信息维护、信息管理、文件下载、考试系统的基本目标,并阐述系统结构设计和功能设计,从基本资料到考试系统、文件下载等流程,形成了一个整体自动化管理模式,从软件工程的角度进行了科学而严谨的阐述。关键词:信息管理系统;企业培训管理;VisualC++6.0AbstractAsinformationtechnologyinthemanagementofanincreasingdepthandawiderangeofapplications,theimplementationofmanagementinformationsystemhasbeengraduallymaturetechnically.ManagementInformationSystemisacontinuousdevelopmentofnewdisciplines,ithasbeensuccessfullyusedinmanyareas.TheuseofcomputerstomanageEnterpriseTraininginformation,whichaspartofComputerapplicationswiththemanualmanagementoftheadvantagesofunmatched,itquicklysearch,findconvenient,highreliabilityandlargestoragecapacity,theconfidentialityofagood,longlife,lowcost,etc.Itcansavealotofhumanresourcesandmaterialresources,whichcangreatlyimprovetheefficiencyofEnterpriseTrainingmanagement.EnterpriseTrainingmanagementisascientificenterprise,standardization,andanimportantconditionfortherestoftheworld.Therefore,thedevelopmentofanEnterpriseTrainingmanagementsystemisnecessary,thetechnologyhasitsuniquesignificanceofthemeaningandmanagement.ThispaperintroducestheVisualC++6.0environmentfortheadoptionofthe"top-downtotheoverallplanning,bottom-upapproachtoapplicationdevelopment"strategytodevelopthedetailedprocessofthesystem,toachievethemaintenanceofbasicdocumentinformation,ManagementofInformationSystem,Filefordownloading,ExamSystem,anddescribedthesystemarchitecturedesignandfunctionaldesign,frombasicdocumenttoFilefordownloading,ExamSystemsuchasadatabasemarketingprocesses,formingapatternoftheoverallautomatedmanagement,fromsoftwareengineeringpointofviewofscienceandrigorousexposition.Keywords:informationmanagementsystem;EnterpriseTrainingmanagement;VisualC++6.01前言1.1课题研究的目的全球化经济带动企业加强员工的部培训随着全球化市场竞争的加剧和商业运作快速反应的要求,企业必须学习更快速有效地利用知识参与竞争,通过将培训以在线的方式推行,企业能够以更快、更好和更低的成本培训它们的员工,甚至教育与影响他们的客户。参加学习的人员可以随时随地方便地学习所需要的课程、获取所需要的各种知识。同时,因为在线培训更便于培训结论的跟踪与收集,企业也可以更加方便地分析培训投入与商业利益之间的关系,便于企业制订与安排更科学有效的培训计划。制定员工培训计划是企业引导员工进行有计划有目的培训的关键某种意义上来讲,培训部门与企业其它部门以与员工之间是供需关系,适当有效的交互对于平衡供需关系是非常重要的。首先,企业需要制定切实可行的企业培训计划,这个计划是结合企业各方面的情况,分别针对不同层次,不同岗位的员工进行拟定;其次,员工通过某种渠道了解公司全年培训计划的容。各个部门以与员工需要与培训部门进行交互,适当调整企业培训计划,以达到供求平衡的目的。使培训工作能顺利进行。1.2课题研究的意义计算机已经成为我们学习和工作的得力助手:今天,计算机的价格经十分低廉,性能却有了长足的进步。它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下方面:首先,计算可以代替人工进行许多繁杂的劳动;其次,计算机以节省许多资源;第三计算机可以大大的提高人们的工作效率;第四计算机可以使敏感信息更加安全。现在,我们已经进入到Internet时代了,企业培训管理是现在各个企业都在积极进行的工作之一,也是企业培训管理工作的重要容之一。企业培训管理系统必然会在以后的信息管理系统放异彩。1.3方案选择与开发技术介绍开发企业培训管理系统,提出以下解决方案:选择SQLServer2000作为后台的数据库,选择VC++、多线程、完成端口模型作为作为应用程序开发技术。整个程序完全基于C/S(Client/Server)模式进行设计。1.3.1VC++简介VisualC++是Microsoft公司的VisualStudio开发工具箱中的一个C++程序开发包。VisualStudio提供了一整套开发Internet和Windows应用程序的工具,包括VisualC++,VisualBasic,VisualFoxpro,VisualInterDev,VisualJ++以与其他辅助工具,如代码管理工具VisualSourceSafe和联机帮助系统MSDN。VisualC++包中除包括C++编译器外,还包括所有的库、例子和为创建Windows应用程序所需要的文档。VC++的优点VC++提供了面向对象的应用程序框架MFC(MicrosoftFoundationClass),简化了程序员的编程工作,提高了模块的可重用性;提供了基于CASE技术的可视化软件的自动生成和维护工具AppWizard、ClassWizard、VisualStudio、WizardBar等,实现了直观、可视的程序设计风格,方便地编辑和管理各种类,维护程序的源代码;封装了Windows的API函数、USER、KERNEL、GDI函数,简化了编程时创建、维护窗口的许多复杂的工作。1.3.2SQLServer2000数据库简介SQLServer是一个关系数据库管理系统它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的。于1988年推出了第一个OS/2版本,在WindowsNT推出后,Microsoft与Sybase在SQLServer的开发上就分道扬镳了。Microsoft将SQLServer移植到WindowsNT。SQLServer2000是Microsoft公司推出的SQLServer数据库管理系统的比较新的版本SQLServer2000数据库优点1)真正的客户机/服务器体系结构。

2)图形化用户界面,使系统管理和数据库管理更加直观、简单。

3)丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。

4)SQLServer与WindowsNT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安全性等。SQLServer也可以很好地与MicrosoftBackOffice产品集成。

5)具有很好的伸缩性,可跨越从运行Windows95/98的膝上型电脑到运行Windows2000的大型多处理器等多种平台使用。

6)对Web技术的支持,使用户能够很容易地将数据库中的数据发布到Web页面上。

7)SQLServer提供数据仓库功能,这个功能只在Oracle和其他更昂贵的DBMS中才有。

8)支持XML(ExtensiveMarkupLanguage,扩展标记语言)

9)强大的基于Web的分析

10)支持OLEDB和多种查询

11)支持分布式的分区视图1.3.3C/S开发模式简介C/S(Client/Server,客户机/服务器)模式又称C/S结构,是20世纪80年代末逐步成长起来的一种模式,是软件系统体系结构的一种。C/S结构的关键在于功能的分布,一些功能放在前端机(即客户机)上执行,另一些功能放在后端机(即服务器)上执行。C/S开发模式优点1)C/S结构充分利用客户端和服务端的硬件优势,将任务合理的分配到客户端和服务端,降低系统的通信开销。2)C/S结构能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器,对应的优点是客户端响应速度快。C/S结构的缺点1)只适用于局域网。2)客户端需要安装专用的软件。3)对客户端的操作系统可能有限制。首先采用C/S架构,要选择适当的数据库平台来实现数据库数据的真正“统一”,使分布于两地的数据同步完全交由数据库系统去管理,其次,网络管理工作人员既要对服务器维护管理,又要对客户端维护和管理,这需要高昂的投资和复杂的技术支持,维护成本很高,维护任务量大1.3.4多线程技术多线程是这样一种机制,它允许在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间互相独立。线程又称为轻量级进程,它和进程一样拥有独立的执行控制,由操作系统负责调度。多线程具有以下优点:1)提高应用程序响应2)并行操作时使用线程,如C/S架构的服务器端并发线程响应用户的请求。3)多CPU系统中,使用线程提高CPU利用率4)改善程序结构。一个既长又复杂的进程可以考虑分为多个线程,成为几个独立或半独立的运行部分,这样的程序会利于理解和修改。1.4开发工具与硬软件要求1)开发工具本系统采用windows操作系统,以VC++6.0为开发工具,用中文版的SQLServer作为后台数据库。2)硬件要求硬件需求:存1G以上,硬盘空间视需要而定,要求为本系统分配足够的数据库磁盘空间;操作系统:windows;数据库软件需求:SQLServer2000。2系统需求分析2.1系统的初步调查本系统主要采取的调查方法:

(1)收集资料、查阅分析资料。主要对其员工培训业务的责人进行采访,并获取其现行管理流程与相关管理工具的资料。通过对资料进行分析,可总结出如下几点特点:①企业培训管理系统业务有规而严格的操作流程;②都是计算机的先进设备辅助工作,但也仅仅由于制作文挡、存储文挡,而没有一个业务系统软件来辅助工作。例如,再摩托罗拉只是一个档案管理的小程序,霍尼维尔只有一个用Excel编制的表格应用程序。

(2)实地实践、熟悉企业培训业务流程。通过详细的了解,对业务存在以下几个瓶颈:①企业档案管理都是纸上作业,查询、核对很不方便;②教材的采购、库存管理不规,难以实现实时采购决策;③证书管理不科学,存在错发情况;④市场业务操作不科学。信息反馈不与时。通过以上的调查分析可以发现,在我国尽快开发出一套功能完善的企业培训管理软件是一项十分紧迫的任务。特别是随着经济全球化发展、知识更新速度加快、国际企业的发展,企业培训将日益成为企业的一项重要业务。可以说,今后企业的竞争将是企业素质的竞争。因此,开发个功能完善的软件来辅助企业管理培训业务是增强企业竞争力的一项重要措施。2.2客户需求分析客户希望通过一个培训管理系统,对培训的学员、培训的教师、培训的课程、培训的资源、培训计划、资料下载和学员考试等进行有效的管理,使得部培训工作系统化、规化、自动化。下面是一份文本需求说明,是和客户双方经过调研后编写的。由于篇幅所限,这里只列出比较核心的部分。(1)系统的界面简介明了,易于操作。(2)系统要有一个登录界面,合法用户才可以进入系统。(3)利用此系统,用户可进行6个方面的管理,即培训学员的管理、培训教师的管理、培训课程的管理、培训资料管理和培训计划管理。(4)此系统还对客户端提供了资料下载和在线考试功能。(5)客户端用户可以对培训计划进行查看,对培训资料查看和下载。(6)用户可以对系统进行相关设置,比如,修改密码、启动后最小化、窗口总在最前面、显示系统时间等。(7)该系统要有使用说明。2.3可行性分析前面分析了系统开发的必要性,以下将从社会、经济、技术、法律四个方面分析其可行性。2.3.1社会可行性分析培训是企业经营的一项重要组成部分。现有培训大都是围绕个人展开的,企业的潜在需求并没有得到有效解决。这就产生了一个矛盾,如何把个人提升和企业发展通过培训有效的结合起来。很多情况下,企业培训缺乏系统化,企业付出了巨大的培训成本,通常没有见到应有的效果。而不断发生的人才流失,以与无效培训,给企业带来巨大的人、财损失。很多企业为了降低这方面的成本,首先会选择难以见到成效的培训支出,这就会产生恶性循环,企业越缺乏培训,人才流失越大,人才流失越大,越降低培训投入。而培训管理系统化提供了技术平台。通过建立企业的培训管理系统,可以在提供有效培训的同时,大大降低企业的培训成本,实现个人与企业的双赢。2.3.2经济可行性分析在经济上,费用的支出和带来的巨大收益相比自是不能相提并论了,至于管理上,工作人员对于这项工程的实施必然是持赞成的态度,因为这样会大大减轻他们的工作量提高工作效率。且成本低,建成后的维护费用也与线性系统运行费用一样。2.3.3技术可行性分析在技术上,如今成熟的语言有很多,像是PowerBuilder、VB、Delphi等都能开发出很好用的系统。而本次设计我采用的是VC,也是很成熟的语言,再加上数据库如今的发展状况,开发出一个企业管理的应用程序是没有问题的。鉴于软硬件方面对系统的需求,软件要求易学,界面友好,容易掌握,可以很简单方便的进行培训信息管理。硬件的配置要求不能太高,这样可以很好的适应当前的企业办公管理工作,如今电脑软硬件技术飞速发展,计算机系统开发人员也比比皆是,开发知识密集型的信息系统的技术条件也已经很成熟了。2.3.4法律可行性分析本系统设计的初衷是为企业提供便捷的服务,不违反相关法律。综上所述,本企业培训管理系统的开发实施是可行的。3系统设计3.1系统目标本系统利用VisualC++实现企业培训管理系统,使社会培训机构或企业部的培训工作系统化、规化、自动化,从而达到提高管理效率的目的。具体的目标包括:1)对学生信息、教师信息、计划信息进行增加和删除,对资料信息进行服务端资料上传和删除,实现员工培训管理的自动化。2)准确无误的记录培训管理的基本信息。3)实现对培训学员的网上测试。3)在考生考试过程中,时时监控考生的考试状态。4)考生交卷后,系统对考生的试卷成绩进行评分,实现考试功能的自动化管理。5)实现通知功能,向学员发送他们将参加的培训课程。6)实现系统设置功能;窗口总在前面和显示系统时间。7)实现心跳包功能,与时判断客户端的意外掉线。8)实现客户端登录验证功能,只允许合法用户成功登录。9)提供使用帮助功能,包括系统的使用说明和开发人员的联系方式。3.2系统功能模块设计1服务端功能模块设计在系统功能分析的基础上,可以生成如图1所示的服务器功能模块图。图1系统功能模块图此系统包含4个模块:系统设置、培训基本信息管理、考试系统和文件下载。系统设置主要实现窗口总在前面和显示系统时间,允许用户根据个人喜好选择。培训基本信息管理包括培训学员、培训教师、培训资料和培训计划4个模块,主要实现对学员信息、教师信息、资料和计划的添加和删除,同时刷新界面。考试系统包括读取试卷和阅卷两个模块,实现对学员的网上考试和对考生试卷的自动评分。文件下载包括读取文件目录和文件发送两个模块,将数据库中的资料存储到临时变量中供学员下载学习使用。2客户端功能模块设计客户端功能模块图如8页图2。培训计划模块实现了向服务端请求培训计划并将培训计划显示在右边视图中。考试系统模块向服务端请求试卷,并在视图生成试卷,考试中自动发送心跳包,建立于服务端的联系,通过提交按钮提交试卷。文件下载模块向服务端请求文件目录,并显示在列表框中,通过右键菜单进行选定的文件下载。图2客户端功能模块图4数据库设计4.1数据库概念结构设计本系统包含的实体有:学员实体、教师实体、计划实体和资源实体。部分实体的具体描叙E-R图如图3。图3系统E-R图4.2数据库表设计有了上面的实体以与实体之间的关系,我们可以建立数据库中的表格和各个表格的关系,下面列出了培训管理系统中各个表格的设计。表1试题表字段说明字段名称数据类型数据长度说明主键PAP_IDInt4试题编号是PAP_ITEMVarchar100试题否PAP_ANSWERAVarchar30答案A否PAP_ANSWERBVarchar30答案B否PAP_ANSWERCVarchar30答案C否PAP_ANSWERDVarchar30答案D否PAP_ANSWERChar10正确答案否表2资源表字段说明字段名称数据类型数据长度说明主键RESOURCE_IDInt4资源ID是RESOURCE_NAMEvarchar50资源名称否RESOURCE_DATAimage16资源路径否RESOURCE_SUFFIXchar10资源后缀名否表3培训学员表字段说明字段名称数据类型数据长度说明主键STUDENT_IDInt4学生ID是STUDENT_NAMEChar10学生名否STUDENT_SEXChar10性别否STUDENT_AGEInt4年龄否STUDENT_NATIONChar10民族否STUDENT_NATIVEPLACEChar10籍贯否IDENTITYCARDINFOChar10号否MARRIAGESTATUSChar10婚姻否HEALTHSTATUSChar10健康状况否ATTENDJOBTIMEtext16工作时间否HOMEADDRESSChar10家庭住址否TELEPHONENUMBERChar10否EMAILADDRESSChar10Email地址否表4培训计划表字段说明字段名称数据类型数据长度说明主键PLAN_IDInt4课程号是PLAN_NAMEChar10课程名否PLAN_DATEChar10开课日期否PLAN_TIMEChar10上课地点否PLAN_PLACEVarchar30出库类别否PLAN_SYNOPSISVarchar50备注否5系统详细设计与实现本系统在可视化开发环境中完成,服务端和客户端的详细设计和实现如下:5.1服务器5.1.1服务器操作流程用户运行服务端程序时,通过双击选择左边树视图中的节点来选择不同的服务,同时在右边的视图中显示相应的视图,通过菜单中的启动服务子菜单可以启动服务器,启动服务器对话框中的IP地址默认为回环地址,端口默认为5561,也允许用户自己设置IP地址和端口号,如果IP地址和端口号没有错误或冲突,则开始监听客户端的连接。视图的切换是在单文档中进行的,通过一个函数完成,首先判断要切换的视图是否是由视类继承而来,如果否,则提示错误,如果正确,然后则进一步判断要求切换的类是否与被切换的类为同一类,如果是,则返回,否则保存当前视图的位置,以便确定后一视类的位置,最后,继上一步后,解除被切换视图与框架类的联系,因为当新创建一个视图时,需要判断框架类是否与视类连接,如果是,则报错,否则,创建新视类成功,下一步是将切换的视图与文档和框架类进行连接,继而将视类扩到至与框架类一样,将视图切换成活动视图,因为前面的创建函数创建视类时不会调用视类的初始化函数,因此,在切换视图后需要调用视类的初始化函数初始化该视类。点击事件是由树视响应的,添加左键双击事件,首先取得单击的位置,再取得单击处的文本和框架类指针,然后针对不同的节点切换视类。流程图如11页图4所示。图4服务器操作流程5.1.2信息添加流程添加信息时,字段ID有程序自动生成,且不能修改,其它信息由用户输入,当用户点击确定时,程序对数据进行合法性判断,如果合法,则将数据写入数据库,否则,显示相应的错误信息,并要求用户重新输入数据下面详细介绍一下资源的添加和培训学员的添加。学员的添加事件是由增加按钮响应,点击按钮后,弹出添加培训学员的信息框,其中的容包括、年龄、性别和籍贯等等,当用户确定添加时,系统将会对用户输入的数据进行合法性验证,如年龄不能超过120岁,的位数为18位,参加工作时间不能超过当前时间,的长度不能超过11位,EMAIL地址的格式要正确。培训资料的添加:首先,当用户需要添加一个文件时,会弹出一个对话框,用户可以通过此对话框选择用户所需要的文件,然后打开数据库取得文件名,文件后缀名,上传文件,需要创建安全数组,设定数据包的长度为1M,然后创建安全的二进制数组存储数据,向数据库中上传数据,得到数据库表的各个字段名,通过字段名加入相应的数据,最后,跟新数据库,完成培训资源的添加过程。如12页图5。图5信息添加流程5.1.3信息删除流程用户删除信息时,程序将判断用户是否选择了一项容,之后,提示用户是否确定要删除数据,如果选择取消则返回,否则,点击确定删除此数据项。图6信息删除流程5.1.4信息管理流程运行程序后,就可以进行功能选择,首先默认的功能是培训计划,其它的相关的功能有培训学员、培训教师、培训资料、考试系统。前四个模块可以对学员、教师、资料和计划进行添加和删除,考试系统监控考生的基本状态和对考生的状态进行更新。因为这四个模块操作基本一样,因此,下面以培训学员为例,对信息管理流程进行分析,流程图如下图7。图7信息管理流程5.1.5考试管理流程考生登录考试系统时,验证考生的合法性,接受数据包,取出包体的前两个字节,并将其与数据中的所有数据进行比较不存在此用户,则向服务端发送验证失败信息,否则,检查用户的状态,如果用户已登录,则发送用户已登录信息,否则,考生和试卷,同时将用户的状态改为登录状态。当用户接收试卷并发送答题信息时,更改考生信息为答题状态。考试过程中,对考生的心跳包进行判断,如果当前时间和接收心跳包最近时间之差大于一分钟,则断定客户端掉线,断开客户端,否则,继续运行。当用户登录后,接收考生答题试卷,进行评分,并保存成绩和考生当前状态。如14页图8所示。图8考试管理流程5.1.6主线程流程主线程用于接收客户端连接请求,并初始化重叠I/O操作。主线程中,首先调用CreateIoCompletionPort()函数创建完成端口,然后创建服务线程,完成套接字的初始化、绑定、监听,最后在一个While循环体,接受客户端连接请求,将套接字与完成端口关联起来,并发起I/O操作,步骤如下所示。根据CPU数量,创建服务线程。接受客户端连接请求。声明一个数据结构。在结构中包含客户端套接字等信息。调用函数,将套接字与完成端口关联在一起。将用户定义的数据结构传递给完成键。声明一个扩展重叠I/O结构,在该结构中包含OVERLAPPED字段等I/O操作信息,调用输入输出函数进行重叠I/O操作。在服务线程中,调用GetQueuedCompletionStatus()函数等待I/O操作结果。当该函数返回后,服务线程为客户端提供服务,或发起另一个异步I/O操作。如图9所示。图9主线程流程5.1.7服务线程流程服务线程为客户端提供服务。服务线程中,调用GetQueuedCompletionStatus()函数等待I/O操作的完成。当函数返回值为FALSE,如果错误代码为WAIT_TIMEOUT,则说明该函数调用超时:如果错误代码不是WAIT_TIMEOUT,并且返回的重叠结构指针不为NULL,则说明此时完成了一个失败的I/O操作。当该函数返回值为TRUE时,首先判断传输字节数是否为0,如果传输的字节数为0,则说明客户端关闭了连接。然后判断当前I/O操作的类型,并调用相应函数执行I/O操作。如图10所示。图10服务线程流程5.1.8学号验证流程考生登录服务器后,调用OnLookup()函数验证考生学号。该函数第一个参数为考生学号,第二个参数返回该考生,第三个参数指明验证考生学号是否成功,遍历vector中的元素,比较考生学号是否存在于数据库中。如果考生学号存在于数据库中,在比较学生状态是否为“N”。如果满足这两个条件,则返回该考生;否则bFind返回FALSE。如17页11所示。图11学号验证流程图5.2客户端5.2.1客户端操作流程用户通过输入学号向服务端发送登录请求,客户端默认向服务端请求培训计划,如果接受到培训计划表,则考生登录成功,否则,登录失败,显示出错信息。成功后,通过选择左边树视图中的节点来选择不同的服务。当用户选择考试系统时,系统将重新登录,向服务端发送学号进行验证,如果验证通过,则接收服务端向客户端发送的考生和试卷,客户端对试卷进行初始化,将试题的顶部高度设为90像素,每个试题的左边界为40像素,高度为50像素,为每个试题分配区域后将视图移动到指定的位置,显示窗口。又因为试题的总高度要大于客户区域,所以该系统设计使用垂直滚动条显示所有试题。之后初始化试题,创建一个静态控件,显示问题,创建四个按钮来显示问题的答案,显示试题过程如下:1获取问题字符串。2计算静态控件所占用的区域。控件宽度为客户区宽度,高度为客户区高度的1/2。3设置控件ID为100,调用Create创建窗口。显示问题答案的步骤如下:1获取答案字符串2计算按钮控件所占用的区域,高度为20像素,控件顶部位置为客户端顶部位置与控件高度之和,控件宽度为客户区宽度的1/4。3指明窗口风格,创建按钮,为每个控件设置字体。12客户端操作流程5.2.2接收试卷流程RecvPaper()函数实现接收试卷功能。该函数第一个参数返回考生,第二个参数为指向试题链表的指针。在该函数中,首先接收考生。如果usLen字段值为0,则说明服务器验证考生学号失败,如果返回值为FALSE,客户端退出。如果usLen字段值不为0,则调用Recv()函数接收考生。接收考生后,接收服务器发送的试卷。在接收试卷时,先剔除”<”和”>”分隔符,将每道试题解析出来,保存在CItem对象的m_strItem变量中,再将CItem对象加入试题链表中。如19页图13所示。图13接收试卷流程5.2.3试卷初始化流程图试卷的初始化包括:为每道试题分配显示区域和初始化试题两个部分。1为试题分配显示区域Init()函数实现为每道试题分配显示区域功能。CItem类显示试题和接受考生操作。在RecvPaper()函数中,创建CItem类对象。在InitPaper()函数中,设置每个CItem对象所占用的区域大小。在为每个CItem对象分配区域后,调用Create()函数创建窗口,调用MoveWindow()函数移动窗口到指定位置,调用ShowWindow()函数显示窗口。2初始化试题CItem类InitControl()函数实现初始化试题功能。该函数在创建CItem窗口时被调用。在该函数中创建一个CStatic窗口,显示问题,创建4个CButtom窗口显示问题的答案。如20页图14所示。图14试卷初始化流程图5.3数据包和试卷结构设计为保证客户端与服务器之间数据的正确发送和接收。在发送数据时,先发送数据,后发送包体。数据指明数据包体类型和长度。图15所示包类型、数据包长度、文件开始位置、文件长度分别占2字节、2字节、4字节、4字节,数据共12个字节。包类型包体长度文件开始位置文件长度图15试题、培训资料和培训计划信息的发送结构,因三者之间几乎相似,所以重点介绍试题,试题发送结构如16所示。<1|问题|答案A|答案B|答案C|答案D>图16试题包括和答案两部分。问题的前面部分为题号,题号与问题之间用”|”分隔。每道试题包括4个选择答案,每个答案之间也使用“|“符号分隔。试题之间使用”<“和”>“符号分隔。客户端按照此数据格式解析试题。数据包结构实现typedefstruct_header{ u_short ustype; //包类型 unsignedshortusLen;//数据包长度 u_longfpos;//文件开始位置 u_long flen; //数据长度(或文件长度)}HDR,*PHDER;数据包类型包括下载文件大小、文件目录、心跳包、学生状态、学生、试卷、课程表7种类型。长度。包体的长度。下载文件开始位置。由于客户端使用多线程下载文件,每个线程负责下载整个文件的不同部分,的文件位置字段,指明了本次接受的数据在该线程负责下载文件中的相对位置。文件长度。在一次套接字的数据收发时,所发送的文件长度。5.4系统主界面系统主界面包括服务器主界面(如图17)和客户端主界面(如图20),采用单文档多视图的窗口设计技术,主菜单包括操作和系统设置,视图分为两块,左边为树形的树视,包括培训管理学员、培训教师管理、培训计划、学习资料和考试系统,右边的视图显示左边树视节点的响应模块容,本界面采用了主流的界面设计样式,使用户容易上手,突出了系统易学易用的优点。6系统的测试与分析软件测试是软件开发过程的重要组成部分,是用来确认一个程序的品质或性能是否符合开发之前所提出的一些要求。软件测试就是在软件投入运行前,对软件需求分析、涉与规格和编码的最终复审,是软件质量保证的关键步骤。软件测试是为了发现错误而执行程序的过程。软件测试在软件生存期中横跨两个阶段:通常在编写出每一个模块之后就对它做必要的测试。编码和单元测试属于软件生存期中的同一个阶段。在结束这个阶段对软件系统还要进行各种综合测试,这是软件生存期的另一个独立阶段,即测试阶段。我采用了单元测试和结合测试两种方法。测试环境:本次测试使用手工测试输出,要求硬件环境:Windows2000/xp等操作系统Intel80586以上的处理器1G或以上的存10GB或以上的硬盘鼠标键盘VGA或LCD显示器6.1功能需求单元测试单元测试的对象是软件设计的最小单位模块。单元测试的依据是详细设计描叙,单元测试应对模块所有重要的控制路径设计测试用例,以便发现模块部的错误。单元测试多采用白盒测试技术,系统多个模块可以并行地进行测试。以下介绍系统单元测试。6.1.1登录测试1测试用例:学号:0001。期望结果:顺利登陆,客户端成功进入主界面,同时接收并显示培训计划信息。首先是服务端运行主界面,这是整个系统的开始,所以比较重要。服务器主界面如下图:图17服务器运行界面如果输入的IP地址和端口正确且没有冲突,则启动服务器成功。启动服务器界面如下:图18服务器启动客户端登陆界面如下图19。图19客户端登陆界面正确输入学生学号,服务器IP地址、端口,点击登录后,进入客户端主界面,如下图。图20客户端界面2测试用例:学号:随机。期望结果:客户端用户登录失败。客户端登陆界面如下:图21登录失败6.1.2单文档中多视图切换测试期望结果:右边视图顺利切换到另一视图并成功初始化切换后的视图。对程序进行编译与,0错误。在左边的树形视图中,单击任一节点切换视图,切换出现错误,错误提示如图24所示。图22视图切换报错界面错误原因:通过单步调试,发现程序在CreateView的if(GetDlgItem(IdFromRowCol(row,col))!=NULL)函数处出现断言错误,查看GetDlgItem函数和IdFromRowCol函数定义,得知在切换视图的时候,没有解除原试图与框架类的关联,因此,在调用CreateView时,因为没有解除关联,所以CreateView调用失败解决办法:解除原视图与框架的关联。具体方法如下:在CreateView前加入if(pCurrentView->GetRuntimeClass()==RUNTIME_CLASS(CResourceFormView)) pCurrentView->SetDlgCtrlID(IDD_RESOURCE_FORMVIEW); elseif(pCurrentView->GetRuntimeClass()==RUNTIME_CLASS(CMyFormView)) pCurrentView->SetDlgCtrlID(IDD_STUDENT_FORMVIEW);elseif(pCurrentView->GetRuntimeClass()==RUNTIME_CLASS(CExamListView))pCurrentView->SetDlgCtrlID(IDD_EXAM_LISTVIEW); elseif(pCurrentView->GetRuntimeClass()==RUNTIME_CLASS(PlanFormView)) pCurrentView->SetDlgCtrlID(IDD_PLAN_FORMVIEW); elseif(pCurrentView->GetRuntimeClass()==RUNTIME_CLASS(CTeacherFormView)) pCurrentView->SetDlgCtrlID(IDD_TEACHER_FORMVIEW);更正后,以当前视图为培训计划,需要切换到培训学员为例,对本模块进行测试,如图23和24图23培训计划界面图24培训学员界面6.1.3考试系统模块测试期望结果:服务端考试视图中学生登录状态改变,首先改为登录状态,然后改为答题,最后考生交卷,考生状态转换成完成状态。在客户端点击左边的树形视图中的考试系统,系统即向服务器请求试卷如图25和图26。图25客户端考试界面图26服务端考试系统界面根据测试表明,服务器能接受到客户端的当前状态,客户端正确接收到了试卷,例如,在客户端点击节点考试系统,视图区域正确的显示了试题1。6.2综合测试经过相关的综合测试,系统的各个部分功能正常,能够正常的运转。7今后工作由于本系统开发时间有限,考虑不周在所难免,界面有待改善,功能也不够完善,因此企业培训管理系统可能还存在潜在的缺陷。在此敬请用户谅解,也希望广大用户能提出宝贵的意见,使企业培训管理系统更加完善。本系统在vc下,采用MFC实现。用户通过此系统可以对培训学员、培训资料、培训教师、培训计划和培训学员的在线测试进行管理,对学员基本信息进行添加和删除,对系统进行系统设置,设置系统总在前面和显示系统时间,学员可以查看最近开设的课程,在线请求考试,由系统对考生的试卷进行评分。但本系统功能尚有待完善的地方,文件下载和日志模块欠实现,文

温馨提示

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

评论

0/150

提交评论