HSE多媒体培训平台解决方案_第1页
HSE多媒体培训平台解决方案_第2页
HSE多媒体培训平台解决方案_第3页
HSE多媒体培训平台解决方案_第4页
HSE多媒体培训平台解决方案_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、hse多媒体培训平台解决方案赵士坤 西部钻探工程有限公司克拉玛依钻井公司摘要利用多媒体技术进行企业员工培训是当前广泛采用的培训方法,多媒体培训具有费用少、风险低、周期短、效果好等诸多优点,多媒体培训的应用当然也离不开其系统运行和管理平台,本文将着重介绍在多媒体培训平台的设计、开发、实践环节,重点分析系统的程序架构、业务流程、关键技术和技术难点,希望通过本文的介绍对您在从事这方面研究方面能起到些许的帮助,通过我们的努力希望可以为我们石油行业的员工培训提供自主的、稳定可靠的解决方案。关键词用户管理课程管理 考试管理 培训平台1背景石油行业属于高风险作业行业,施工工艺要求高、工序复杂,存在人身伤害、

2、火灾爆炸、环境污染和施工质量等多方面的风险。某个岗位操作失误、配合不当,就有可能导致伤害事故的发生。传统的现场实物培训方式存在着诸多无法克服的弊端,如成本高、风险大,周期长,而且受外部自然环境的影响,随着多媒体技术的发展,可以为我们石油工程技术服务行业的培训方式提供了新的途径,通过一套多媒体培训系统可以根据需要安排培训时间、地点,而且不受外部环境的影响,多媒体图文并茂,flash视频等多种呈现方式,能在宏观和细节上对关键问题,关键部件进行详细讲解,能达到非常好的培训效果。石油行业从业人员,大多人员分散,集中培训时间较短,特别是在北方地区,主要集中在冬季,且参培人员多;这就要求必须在较短的时间内

3、,对分散各地的大量人员进行相应的培训;不仅工作量大,而且培训效果不太理想。采用多媒体技术集中培训的方式,有效的解决了培训时间、培训人员、培训地点和课件修改的问题,但随着培训力度的加大,培训面的扩大,参训人员的增多,对培训平台的要求越来越高,如何解决多用户并发产生的网络延迟能问题,是平台技术成熟与否的关键,利用现有的计算机网络资源(局域网主干线的传输速度1000mb,到桌面为100mb),建立一个覆盖面广,培训不受时间、地点、人数和场地限制的网络多媒体培训教材,已经势在必行。其中的核心技术有两个方面:一、多媒体课件制作技术,需要用到网页制作技术、3d、flash等技术制作丰富的多媒体课件;二、高

4、效稳定的系统运行平台,多媒体培训平台是指运行、维护多媒体课件资源,为培训学员提供学习、考试、成绩查询等服务的软件系统平台,现有的技术一般为java、.net等开发的多层架构系统平台。2培训平台总体设计21平台程序架构设计平台采用.net2.0程序开发,b/s三层结构,iis6.0发布平台,sql server2005数据库,xml数据文件做权限树导航,ajax技术做无刷新数据验证和考试记录时间。在.net2.0应用程序中app_code文件夹下建立公共类组件,用户数据库的访问控制、数据的增、删、查、改操作,以及字符串处理、用户身份验证等公共类,为了保证某些类之间的引用,要确保其在同一个命名空间

5、内(namespace),在app_themes下建立主题、皮肤、样式文件,统一平台页面风格,定义皮肤文件后可以对服务器端控件的风格进行整体控制,然后在web.config文件中注册,则可以自动控制全部页面的服务器端控件风格,为了确保具备特殊风格需要,还可以用css样式表对页面风格进行控制。在应用程序主目录下建立fileupload文件夹,存放上传的多媒体课件,用于课件学习时统一访问,课件的存放路径则存放到数据库表中,在应用程序主目录下建立image文件夹,存放平台需要调用的全部图片文件,保证程序规整有序。主页面框架用frame定义,采用上-下,左-右格局,上部为标题,下部左侧为导航树,右侧为

6、显示页面,至此程序基本架构设计完成。2.2平台程序流程设计在该多媒体培训平台中有两个角色学员和管理员,二者角色不同、权限不同,程序流程也自然不同,我们分别介绍其程序流程,首先,学员登录时判断学员的身份是否合法,如果不合法则不允许登录,在登录时设计了一个验证码程序,防止恶意登录,合法用户登录后根据用户权限,在左侧的导航树显示相应的菜单,学员用户只有密码修改、我的课程、我的考试、考试查询等主要菜单,管理员用户则可以看到全部菜单。23平台功能分析多媒体培训系统中两个关键的角色为学员和管理员,二者的权限不同,学员拥有学习课件、查看和修改个人密码、参加考试的基本权限,管理员拥有学员账号分配、学员信息建立

7、、学员权限分配、课件管理、课程管理、题库管理、考试管理等全部的权限,其中课件管理包括课件的上传、属性的修改、课件的删除等基本操作,课程管理包括课程创建、修改、删除等操作,题库管理包括题库的创建、试题的添加、试题修改、试题删除等操作,考试管理包括考试创建、修改、删除等基本操做,和学员的添加、删除等考试与学员对应关系的建立,以及试卷判分和成绩查询等操作,下面做概要的功能介绍。2.3.1 学员管理l 功能描述学员输入个人身份证号和登陆密码进入培训平台,学员可进行个人信息修改、课程学习、在线考试、成绩查询。管理员可对学员信息、所学课程和考试进行修改、删除、添加。l 个人信息根据个人身份证号,修改个人基

8、本信息和登陆密码l 课程学习根据个人身份证号,培训平台提供相应培训课程l 在线考试根据个人身份证号和学习记录,培训平台提供相应考试卷l 成绩查询根据个人身份证号,培训平台列出课程考试成绩l 功能流程图:a、 学员、系统管理员2.3.2 课件管理l 功能描述将已经打好包的课件,上传到培训平台,根据不同培训需求设置课件属性。l 课件信息根据课件名称,记录课件上传时间,上传人员,课件名称、图标,课件简要说明l 课件操作系统管理人员导入、修改、删除相应课件后,设置课件属性,系统自动记录课件导入时间、上传人员。l 功能示意图2.3.3 课程管理l 功能描述按培训需求,设置课程内容,课程学习顺序和课程学习

9、人员。l 课程信息根据课程名称,设置课程图标、名称、说明,课程学习人员。l 课程操作系统管理员根据培训需求,制定课程内容,课程顺序,课程属性和培训人员;学员进入我的课程,能看到系统管理员提供的课程,学习课程中,系统自动记录学习记录。l 功能示意图系统管理员2.3.4 考试管理l 功能描述课程培训结束,学员按管理员设置的考试卷,进行在线测试、评分。l 考试信息考试名称、考试说明、考试内容,考试时间,考试合格分数,考试次数、考试学员。l 考试操作系统管理人员,按培训课程出试卷,设置试卷属性,添加考试人员;学员在我的考试中,可以看到系统管理员提供的考试卷,进行考试,完成试卷填写后,可查询本次考试结果

10、。l 功能示意图3 数据库设计主要表间关系图图3-1表间关系图4 运行效果图 4.1 用户登录图4-1登录页面4.2 课程学习4.3 学员考试5关键技术51 xml权限访问控制在用户通过身份验证开始登录主页面的时候,通过程序判断用户的角色,是管理员还是普通学员,如果是管理员则读取管理员权限导航树,如果是学员则读取学员导航树。具体实现关键代码如下:public void createhiberarchytree(treenode parentnode, bool isaddurl, bool isguest,string roleid) if (parentnode = null) return

11、; /获取数据 datatable dt; if (roleid.equals(1)/判断角色id属于哪个角色 dt = getboards();/读取管理员xml树 else dt = getboards1();/读取学员xml树 if (dt = null) return; /创建其他节点 createchildboard(parentnode, dt, isaddurl, isguest); /取得web.config文件中预先定义好的boardfilepath、boardfilepath1的路径,分别读取不同角色的xml文件public datatable getboards() re

12、turn datacommon.getdatabynoparam(xmlbbs.boardfilepath, tablename); public datatable getboards1() return datacommon.getdatabynoparam(xmlbbs.boardfilepath1, tablename); /定义结构体中取得boardfilepath、boardfilepath1的具体路径public static void systeminit(httpserverutility server) boardfilepath = server.mappath( con

13、figurationmanager.connectionstringsboardfilepath.connectionstring ); boardfilepath1 = server.mappath( configurationmanager.connectionstringsboardfilepath1.connectionstring );web.config文件中定义的文件路径,只有在这里定义好xml文件的路径才能在结构体中通过server.mappath方法取得路径值。生成导航树代码如下:这里的参数path是上面取得的文件路径,tablename是上面路径中定义的xml文件的名字。p

14、ublic static datatable getdata(string path, string tablename) /创建xmldocument类的实例 xmldocument xmldoc = new xmldocument(); /调用xmldocument类中的load()方法加载xml文件 xmldoc.load(path); /创建datatable类型的变量dt datatable dt = new datatable(); /获取根节点 xmlnode rootnode = xmldoc.selectsinglenode(/ + tablename + s); /判断节点

15、及其子节点是否为空,为空将返空值 if (rootnode = null) return null; if (rootnode.childnodes.count = 0) return null; /创建保存记录的数据列 foreach (xmlattribute attr in rootnode.childnodes0.attributes) dt.columns.add(new datacolumn(attr.name, typeof(string); /创新获取数据节点的xpath string xmlpath = / + tablename + s/ + tablename; /获取x

16、ml节点下的所有节点 xmlnodelist nodelist = xmldoc.selectnodes(xmlpath); /遍历所有节点 foreach (xmlnode node in nodelist) /创建数据表行,并在其中添加数据 datarow row = dt.newrow(); foreach (datacolumn column in dt.columns) /读取每一个属性 rowcolumn.columnname = node.attributescolumn.columnname.value; /将数据表行添加到数据表中 dt.rows.add(row); /返回d

17、atatable对象dt return dt; 52 课件上传及访问这个环节的重点是课件的解压,课件的上传可以使用fileupload控件,实现,上传的时候定义好允许上传课件的文件格式及大小,这里只允许上传.rar格式的压缩文件,上传成功后要将上传的课件解压并且删除压缩包,保留解压后的文件夹,因为后面读取课件的时候是预定义好的统一格式的文件路径,这样可以保证程序的稳定性并大大提高读取效率。/获取基于应用程序根文件夹的绝对路径 string path = server.mappath(/fileupload/); /如果确认了上传文件,则判断文件类型是否符合要求string fileextens

18、ion = system.io.path.getextension(fileupload1.filename).tolower(); string allowedextensions = .rar ; for (int i = 0; i allowedextensions.length; i+) if (fileextension = allowedextensionsi) fileok = true; initfilesize = fileupload1.postedfile.contentlength; if (fileok) try fileupload1.saveas(path + f

19、ileupload1.filename); /解压上传的课件包 string strtxtpath = ; /string strzippath = e:aspnetframe.rar; string strzippath = path + fileupload1.filename;/待解压的文件路径及文件名 system.diagnostics.process process1 = new system.diagnostics.process(); process1.startinfo.filename = winrar.exe; process1.startinfo.createnowin

20、dow = true;process1.start(); while (!process1.hasexited)/程序的关键,这里等待解压完成,否则程序一直在此循环,指导解压完成 if (process1.hasexited) int iexitcode = process1.exitcode; if (iexitcode = 0) response.write(iexitcode.tostring() + 正常完成); if (system.io.directory.exists(path) directoryinfo di = new directoryinfo(path); filein

21、fo f = di.getfiles(fileupload1.filename);/文件夹下的刚上传的rar文件 foreach (fileinfo myfile in f) myfile.delete();/删除这个文件就可以了 label2.text = 文件上传成功-文件夹配置完成; else response.write(iexitcode.tostring() + 有错完成); catch (exception ex) label2.text = 文件上传不成功 + ex.message; 53 ajax无刷新考试时间控制在页面控制考试时间的倒计时程序关键是,要保证时间到了后能够触发

22、答题提交事件,这里用ajax控件的优势是物通畅的页面刷新,比javascript的优势是服务器端控件更稳定、可靠,不受浏览器设置的影响。首先要安装ajax程序包,安装成功好在工具箱里拖放scriptmanager控件和updatepanel控件重点是要把timer控件放在updatepanel中,在页面的page_load事件中定义sessionendtime,也就是预先定义好考试时间短,然后计算时间差的方式显示倒计时时间,如下:protected void timercd_tick(object sender, eventargs e) refreshtime(); /刷新时间 privat

23、e void refreshtime() /刷新时间的方法 timespan ts = convert.todatetime(sessionendtime.tostring() - datetime.now; /时间差 if (ts.ticks = 0) this.timercd.enabled = false; /将timmer置为false labtimes.text = 时间到!; this.labtimes.text = ts.hours.tostring().padleft(2, 0) + : + ts.minutes.tostring().padleft(2, 0) + : + t

24、s.seconds.tostring().padleft(2, 0);6难点6.1试卷的动态生成试卷的动态生成是比较复杂的问题,首先,题型很多,有判断题、单选题、多选题,各个题型在页面的显示风格不同,单选题用rationalbutton,多选题用checkbox如何在同一张试卷中同时根据需要显示不同类型的试题是难题之一,另一方面每道考题的选项是不固定的,出了判断题外的多选和单选问题的选项个数是不固定的,出题的时候也许氏3个选项、5个选项、或更多,如何解决这个问题是困难之二,解决第一个困难问题,首先将所有试题一个不差的显示在考试卷列表中,需要定义一个gridview控件,gridview绑定所有

25、时间的sql查询dataset数据源,通过它来显示全部的试题。第二个难题需要在gridview中使用模板列,然后在模板列中添加rationalbuttonlist、checkboxlist控件,让这两个控件绑定后台选项数据源optiondataset(这是我自定义的选项按钮组数据源),再根据每道题的类型判断控制显示哪个按钮组,就解决了多选,单选同时存在的问题数目动态变化问题。6.2考试答案分页提交由于考题很多如果在一个页面显示100道考题,会给考生的考试带来极大的不变,并浪费了大量的时间在查找考题位置上,所以要用分页的方式显示考题,并且尽可能在每个分页总能全部显示完题目和选项,尽量在答完一页题

26、目后不需要下拉滚动条,就可以点击下一页进行答题,为了实现这个目标就要在每个分页中少安排一些考题,一般在4-5个题目为佳,利用分页技术节省了考试时间,但给程序开发带来了两个问题,一是分页无法保持状态,当考生答完一个页面的题目选择项目后,在进入下一个页面答题时,上一个页面答过的题目无法保存状态,分页其实是重新刷新页面,为了解决这个问题我采用了在session中定义datalist保存每个题目选项的内容的方式,在点击每个分页的题目的时候,都会记录到session中,然后在下一个分页的时候在gridview的gridview1_pageindexchanging事件中查找题目的关键字,找到对应的选项选

27、中状态,这样既解决了保持分页状态问题也记录了考生对每个题目的答题内容,在最后提交答案时可以提取session中list的值就解决了数据提交的难题。/记录页面的考题选择状态protected void gridview1_pageindexchanging(object sender, gridviewpageeventargs if (sessiondata = null) list datanew = new list(); sessiondata = datanew; list data = (list)sessiondata; gridview1.pageindex = e.newpageindex; for (int i = 0; i = gridview1.rows.count - 1; i+) system.web.ui.webcontrols.label lbltype = gridview1.rowsi.findcontrol(label2) as system.web.ui.webcontrols.label; if (lbltype.text.trim() = 多选题) /checkbox cb = g

温馨提示

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

评论

0/150

提交评论