版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计说明书基于Web的网络在线考试系统的设计与实现基于Web的网络在线考试系统的设计与实现摘
要:随着信息技术的飞速发展,依赖计算机互联网技术的在线考试系统也蓬勃发展。在线考试系统旨在实现考试的无纸化管理,基于计算机和网络技术进行在线考试系统的使用,既方便了校方对考试的管理,也方便了考生,特别适合考生分布广,不易集中的远程教育。因此,运用在线考试系统,可以帮助教育培训机构进行更系统、更科学的管理。在线考试系统作为一种崭新的、有着极大优越性的教学评价手段,正日益成为数据库管理技术广泛应用的一个热点研究方向。在线考试系统实现了系统管理、考生管理、在线考试、在线制作试卷、控制学生考试、试卷审批等基本功能。系统提出了网络在线考试系统的完整解决方案,实现了题目分类的特殊原则:考试题目,试题类型,难度,分数等由命题人自己定制。系统可以完毕试卷的定制,试卷的自动生成,并可以对试卷进行修改。系统采用B/S开发模式,以Java作为开发平台,结合JSP、JavaScript、Html等语言,以Tomcat为服务器和SQLServer2023为后台数据库。整个系统层次结构简朴,操作容易,并具有一定的安全性。考生借助此系统,可以随时随地的进行课程结业考试。同样,老师使用该系统能更高效、更便捷的组织在线考试。关键词:在线考试系统;B/S模式;SQLServer2023数据库TheDesignandImplementationoftheWeb-basedOnlineExaminationSystemAbstract:Withtheadventofinformationtechnology,theonlineexaminationsystemwhichrelyontheInternettechnologygrowsrapidly.Theonlineexaminationsystemaimsatachievingthepaperlessexaminationmanagement.Theonlineexaminationsystem,whichbasesoncomputerandnetworktechnology,isconveniencefortheexammanagement,butalsoforthestudents.Simultaneously,suchasystemisabsolutelysuitableforthestudentsindistanceeducationwhoaredispersiveanddifficulttoconcentrateonthecourse.
So,utilizetheonlineexaminationsystemcanhelpeducationandtrainingorganizationstocarryonmoresystematic,morescientificmanagement.Asakindofnewteachingmethodthatwithgreatsuperiority,theonlineexaminationsystemisbecomingahotspotofdatabasemanagementgradually.Theonlineexaminationsystemimplementsthefollowingfunctions:systemmanagement,examineemanagement,onlineexaminations,onlineproductionofthepapers,controlexaminationsandpaperprocessing.Thesystemputsforwardthecompletesettlementschemeofonlineexaminationsystemofcross-domaincommunication,andrealizedtheclassifiedspecialprincipleoftitle:thefractionsetcarehadsomethingmadetoorderbypropositionpersononeselfdegreeofdifficultyexaminationquestionstypeexaminationtitle.Thesystemcanaccomplishhavingsomethingmadetoorderofexaminationpaper,thevoluntarilyformationofexaminationpaper,andcanrevise.ThesystembasesonB/Sdevelopmentmodel,usingJavaasadevelopmentplatform,whichutilizesJSP,JavaScript,andHtmllanguageaswell.ThewebserverisTomcat.DatabaseserverisSQLServer2023.Thesystemstructureissimple,easyandsafe.Examineecanexamatanytimebyusingthesystem.Simultaneouslyteacherscanusethesystemtoorganizeonlineexaminationmoreefficientlyandconveniently.
Keywords:Theonlineexaminationsystem;B/Spattern;SQLServer2023Database目录1概述 11.1课题背景与意义 11.1.1课题开发背景 11.1.2课题开发意义 12开发工具与环境 12.1课题开发工具与环境 12.1.1JAVA和JSP技术简介 12.2SQLServer2023服务器 22.2.1SQLServer概述 22.2.2SQLServer的重要功能 22.3Tomcat服务器架构 32.3.1JDK的安装与配置 32.3.2Tomcat的安装与配置 32.4总体开发 43系统分析 43.1需求分析 43.2可行性研究 43.3系统目的 53.4系统功能结构 53.5业务流程图 63.6开发环境 64数据库设计 74.1数据库分析 74.2数据库概念设计 74.3数据库逻辑结构 94.4数据表之间的关系设计 115具体设计 125.1前台首页模块设计 125.1.1前台首页概述 125.1.2前台首页技术分析 125.1.3前台首页的实现过程 135.2考生信息模块设计 135.2.1考生信息模块概述 135.2.2考生信息模块的技术分析 145.2.3考生注册的实现过程 165.2.4找回密码的实现过程 195.3在线考试模块设计 215.3.1在线考试模块的概述 215.3.2在线考试模块的技术分析 225.3.3选择考试课程的实现过程 225.3.4随机抽取试题并显示试题的实现过程 245.3.5自动阅卷并显示考试成绩的实现过程 265.4后台首页模块概述 275.5考试题目管理模块设计 275.5.1考试题目管理模块的概述 275.5.2查看考试题目列表的实现过程 285.5.3添加考试题目的实现过程 285.6套题信息管理模块概述 295.7课程信息管理模块概述 305.8考生成绩查询模块概述 305.9考生信息管理模块概述 305.10管理员信息管理模块概述 316软件开发与测试 316.1软件开发技术概述 316.2通过Ajax技术实现计时与显示剩余时间 316.3软件测试的过程 327结束语 33参考文献 34致谢 35附录 36附录1源程序清单 36附录1.1公共模块设计 36附录1.2考生信息模块设计 42附录1.3在线考试模块设计 54附录1.4考试题目管理模块设计 61基于Web的网络在线考试系统的设计与实现1概述1.1课题背景与意义1.1.1课题开发背景传统的考试从出题、组卷、印刷,到试卷分发、答题、收卷,再到判卷、公布成绩,整个过程都需要人工参与,周期长,工作量大,容易犯错,还要有适当的保密工作,使得整个考试的成本较大。所以,实现无纸化、网络化、自动化的计算机考试系统,具有深远的现实意义和实用价值。网络考试系统是传统考场的延伸,它可以运用网络的无限广阔空间,随时随地的对学生进行考试,加上数据库技术的运用,大大简化了传统考试的过程。因此网络考试系统是电子化教学不可缺少的一个重要环节。网络考试系统的实现技术有多种,可以采用传统的客户机/服务器型的MIS型架构,Web技术超越了传统的"客户机/服务器"两层结构,采用了三层体系结构:用户界面层/事务层/数据库层,因此Web结构有着更好的安全性,在用户机上不需要安装任何应用程序,应用程序可以安装在事务层所在的计算机上,试题存放在数据库服务器上,当然,事务层和数据库可以是同一台机器(假如条件允许,还是应当把这两层分开在不同的计算机上),所以,本文所讨论的考试系统采用Web技术实现。1.1.2课题开发意义用Browser/Web模式来设计考试系统比较合适,服务器端我们采用SQLSERVER数据库系统和JSP组件来构成考试的应用服务系统;客户端采用浏览器来完毕考试全过程,同时可进行远程系统维护和管理。运用网络和数据库技术,结合目前硬件价格普遍下跌与宽带网大力建设的有利优势,应用JAVAServerPage技术,开发了基于B/S模式多用户在线考试系统这一程序。它运用方便、操作简朴,效率很高(同时,它规定计算机配置也很高,特别是服务器端).基于Web技术的网络考试系统可以借助于遍布全球的因特网进行,因此考试既可以在本地进行,也可以在异地进行,大大拓展了考试的灵活性。试卷可以根据题库中的内容即时生成,可避免考试前的压题;并且可以采用大量标准化试题,从而使用计算机判卷,大大提高阅卷效率;还可以直接把成绩送到数据库中,进行记录、排序等操作。考生通过姓名、准考证号码和口令进行登录,考试答案也存放在服务器中,这样考试的公平性、答案的安全性可以得到有效的保证。因此,采用网络考试方式将是以后考试发展的趋势。2开发工具与环境2.1课题开发工具与环境2.1.1JAVA和JSP技术简介a)将内容的生成和显示进行分离用JSP技术,Web页面开发人员可以使用HTML或者XML标记来设计和格式化最终页面,并使用JSP标记或者小脚本来生成页面上的动态内容(内容是根据请求变化的,例如请求账户信息)。生成内容的逻辑被封装在标记和JavaBeans组件中,并且捆绑在脚本中,所有的脚本在服务器端运营。由于核心逻辑被封装在标记和JavaBeans中,所以Web管理人员和页面设计者,可以编辑和使用JSP页面,而不影响内容的生成。在服务器端,JSP引擎解释JSP标记和脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBC技术访问数据库或者包含文献),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这既有助于作者保护自己的代码,又能保证任何基于HTML的Web浏览器的完全可用性。b)可重用组件大多数JSP页面依赖于可重用的、跨平台的组件(JavaBeans)来执行应用程序所规定的复杂的解决。开发人员可以共享和互换执行普通操作的组件,或者使得这些组件为更多的使用者和客户团队所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。c)采用标记Web页面开发人员不会都是熟悉脚本语言的编程人员。JSP技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标记中进行动态内容生成所需要的。标准的JSP标记可以访问和实例化JavaBeans组件,设立或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。d)适应平台几乎所有平台都支持Java,JSP+JavaBeans几乎可以在所有平台下通行无阻。从一个平台移植到此外一个平台,JSP和JavaBeans甚至不用重新编译,由于Java字节码都是标准的与平台无关的。e)数据库连接Java中连接数据库的技术是JDBC,Java程序通过JDBC驱动程序与数据库相连,执行查询、提取数据等操作。Sun公司还开发了JDBC-ODBCbridge,运用此技术Java程序可以访问带有ODBC驱动程序的数据库,目前大多数数据库系统都带有ODBC驱动程序,所以Java程序能访问诸如Oracle、Sybase、MSSQLServer和MSAccess等数据库。2.2SQLServer2023服务器2.2.1SQLServer概述SQLServer是美国Microsoft公司开发的一个关系型数据库管理系统,是目前世界上最著名的关系数据库管理系统之一。它在性能和可扩展方面确立了世界领先的地位,是一套完全的数据库和数据分析解决方案,使用户可以快速创建下一代的可扩展电子商务和数据仓库解决方案。MicrosoftSQLServer2023在数据库服务器自动调整和自动管理技术方面在数据库领域中处在领先地位,使客户可以集中精力解决商业战略上的问题,而不是去细微调整数据库服务器的各项参数。2.2.2SQLServer的重要功能a)数据库管理功能作为数据库管理系统,SQLServer自然应当具有数据库管理功能。它的数据库由包含数据的表集合和其他对象(如视图、索引、存储过程和触发器)组成,目的是为执行与数据有关的活动提供支持。存储在数据库中的数据通常与特定的主题或过程相关。b)数据仓库功能SQLServer2023提供了一套全新的综合分析服务系统。分析服务为商业活动提供了集成的OLAP服务和数据挖掘功能。OLAP可以通过多维存储技术对大型、复杂数据集执行快速、高级的分析工作。数据挖掘功能可以揭示出隐藏在大量数据中的倾向及趋势。SQLServer针对涉及集成数据挖掘、OLAP服务、安全性服务及通过Internet对多维数据集进行访问和链接分析提供新的数据仓库功能。c)电子商务SQLServer不仅提供电子商务所需的可伸缩性与可扩展性之外,还提供了丰富的数据库编程能力,以保证系统的协同工作和灵活性。SQLServer2023不仅支持集中化数据库管理功能,并且还最大限度地实现了管理与优化工作的自动化,从而,减轻了有关管理人员的承担。d)完备的Web功能SQLServer2023允许通过HTTP协议,在Web上进行高性能、基于标准的安全访问。基于Web的客户端拥有访问关系型数据存储和访问分析服务的能力。e)分布式数据复制功能它可以将一个数据库中的数据复制到通过局域网、广域网或Internet网络连接的不同地点服务器或同一服务器中的不同数据库中,并可以自动保持这些数据同步,使各个数据库中具有相同的数据。2.3Tomcat服务器架构Tomcat由Apache组织开发的一种常用Web服务器,提供Web服务。一种JSP引擎,自身具有Web功能,可以作为独立的Web服务器使用。但是,在作为Web服务器方面,Tomcat解决静态HTML页面时不如Apache迅速,也没有Apache健壮,一般选用Tomcat与Apache结合的方式,让后者对网站的静态页面的请求提供服务,而Tomcat作为专用的JSP引擎,提供JSP解析,得以更好的性能。2.3.1JDK的安装与配置 a)找到path变量后单击[编辑]按钮;弹出[编辑系统变量]对话框。在[变量值]文本框中输入“c:\jdk\bin”,然后单击[拟定]按钮。同时新建classpath变量。b)在[系统变量]选项组中单击[新建]按钮,在[变量名]文本框中输入“classpath”,在[变量值]文本框中输入“c:\jdk\lib\tools.jar;c:\jdk\lib\dt.jar;”然后单击[拟定]按钮。c)用同样的方法把c:\jdk添加到JAVA_HOME环境变量中。2.3.2Tomcat的安装与配置在这里我们设默认安装目录为c:\Tomcat安装完毕,更改环境变量,用同样的方法把c:\Tomcat添加到TOMCAT_HOME环境变量中。启动Tomcat,在浏览器的[地址]下拉列表框中输入“http://localhost:8080/”,假如看到的是在左上方有一只可爱的小猫,则表达Tomcat安装成功。2.4总体开发在线考试系统采用了三层的模式架构:JSP-JavaBean-SqlServer2023开发,即前端由JSP网页实现表现逻辑,中间使用JavaBean的组件实现系统内部复杂的业务逻辑,后端使用SqlServer2023数据库实现数据逻辑。系统采用的开发工具是:Myeclipse,Dreamweaver2023网页编辑工具;采用的数据库是:SQLServer2023;采用的服务器是:ApacheTomcat。其中Java中连接数据库的技术是JDBC。3系统分析3.1需求分析随着社会经济的发展,人们对教育越来越重视。考试是教育中的一个重要环节,近几年来随着考试的类型不断增长以及考试规定不断提高,传统的考试方式规定教师打印考卷、监考、批卷、使教师的工作量与来越大,并且这些环节由于所有由人工完毕,非常容易犯错。因此,许多学校或考试机构建立网络在线考试网站来减少管理成本和减少人力物力的投入,同时,为考生提供更全面、更灵活的服务。考生希望对自己的学习情况进行客观、科学的评价;教务人员希望有效地改善现有的考试模式,提高考试效率。为了满足考生和教务人员的规定,网络在线考试系统应包含在线考试、成绩查询等功能,以满足用户的需求。3.2可行性研究可行性分析的目的就是要用最小的代价在尽也许短的时间内拟定问题是否可以解决。通过度析解决方法的利弊,来鉴定系统目的和规模是否现实,系统完毕后所能带来的效益是否达成值得去投资开发这个系统的限度。网络在线考试系统的可行性可从以下几个方面考虑。a)经济可行性定期的组织考试是各个院校及时掌握学生学习成绩的有效方式,运用网络在线考试系统,一方面可以节省人力资源,减少考试成本;另一方面,在线考试系统可以快速的进行考试和评分,体现出考试的客观和公正性。b)技术可行性开发一个网络在线考试系统,涉及到最核心的技术问题就是如何实现在不刷新页面的情况下实时显示考试时间及剩余考试时间,并做到到达考试结束时间自动提交试卷的功能。假如在Ajax技术出现以前,要实现这些功能会比较麻烦,但现在通过Ajax技术可以轻松实现这些功能,这为网络在线考试系统的开发提供了技术保障。3.3系统目的根据前面所做的需求分析和用户的需求可知,网络在线考试系统属于中小型的软件,在系统实行后,应达成以下目的:a)具有空间性。被授权的用户可以在异地登录网络在线考试系统,而无需到指定地点进行考试。b)操作简朴方便、界面简洁美观。c)系统提供考试时间倒计时功能,使考生实时了解考试剩余时间。d)随机抽取试题。e)实现自动提交试卷的功能。当考试时间到达规定期间时,假如考生尚未提交试卷,系统将自动交卷,以保证考试严厉、公正地进行。f)系统自动阅卷,保证成绩真实准确。g)考生可以查询考试成绩。3.4系统功能结构根据网络在线考试系统的特点,可以将其分为前台和后台两个部分进行设计。前台重要用于考生注册和登录系统、在线考试、查询成绩以及修改个人资料等;后台重要用于管理员对考生信息、课程信息、考题信息和考生成绩信息等进行管理。网络在线考试系统的前台功能如图3-1所示:网络在线考试系统的前台网络在线考试系统的前台考生注册找回密码 在线考试成绩查询修改个人资料退出系统考试规则选择考试准备考试开始考试自动阅卷显示考试成绩图3-1网络在线考试系统的前台功能结构网络在线考试系统的后台功能结构如图3-2所示:网络在线考试系统的后台网络在线考试系统的后台管理员信息管理考生信息管理考生成绩查询课程信息管理套题信息管理考试题目管理退出后台管理图3-2网络在线考试系统的后台功能结构3.5业务流程图网络在线考试的系统流程如图3-3所示:图3-3系统流程图3.6开发环境在开发网络在线考试系统时,需要具有下面的软件环境:服务器端:a)操作系统:WindowsXP。b)Web服务器:Tomcat5.5。c)Java开发包:JDK1.5以上。d)数据库:SQLServer2023。e)浏览器:IE6.0。f)分辨率:最佳效果为1024*768像素。客户端:a)浏览器:IE6.0。b)分辨率:最佳效果为1024*768像素。4数据库设计4.1数据库分析由于网络在线考试系统对于数据的安全性及完整性规定比较高,并且为了增长程序的合用范围,还要保证系统可以拥有存储足够多数据的能力。SQLServer2023是一种高性能的关系型数据库管理系统,它在SQLServer7.0的基础上又扩展了系统性能、可靠性、安全性和易用性,逐渐成为在线事务进程和数据仓库等最佳的数据库平台。综上所述,本系统采用SQLServer2023数据库。4.2数据库概念设计根据对系统所做的需求分析和系统设计,规划出本系统中使用的数据库实体分别为考生档案实体、管理员档案实体、课程档案实体、套题实体、考试题目实体和考生成绩实体。a)考生档案实体考生档案实体涉及编号、姓名、密码、性别、注册时间、提醒问题、问题答案、专业和身份证号属性。考生档案实体的E-R图如图4-1所示:考生档案考生档案密码性别提醒问题问题答案专业注册时间身份证号编号姓名图4-1考生档案实体E-R图b)管理员档案实体管理员档案实体涉及编号、管理员名、管理员密码属性。管理员档案实体的E-R图如图4-2所示:管理员档案管理员档案编号管理员姓名管理员密码图4-2管理员档案实体E-R图c)课程档案实体课程档案实体涉及课程编号、课程名、添加时间属性。课程档案实体的E-R图如图4-3所示:课程档案课程档案课程编号课程名添加时间图4-3课程档案实体E-R图d)考试题目实体考试题目实体涉及编号、问题类型、所属课程、所属套题、选项A、选项B、选项C、选项D、添加时间、对的答案和备注等属性。考试题目实体的E-R图如图4-4所示:考试题目考试题目所属课程问题类型所属套题选项A选项B选项C选项D编号对的答案选项B选项C图4-4考试题目实体E-R图e)套题实体套题实体涉及编号、套题名称、所属课程、和添加时间属性。套题实体的E-R图如图4-5所示:套题实体套题实体编号套题名称所属课程添加时间图4-5套题实体E-R图f)考生成绩实体考生成绩实体涉及编号、准考证号、所属课程、单选题分数、多选题分数、合计分数、添加时间属性。考生成绩实体的E-R图如图4-6所示:考生成绩考生成绩编号准考证号所属课程单选题分数多选题分数合计分数添加时间图4-6考生成绩实体的E-R图4.3数据库逻辑结构a)tb_manager(管理员信息表)管理员信息表用来保存管理员信息,该表的结构如表4-1所示:表4-1tb_manager表的结构字段名数据类型是否为空是否主键默认值描述idbigint(8)NoYesID号namevarchar(30)NoNull管理员名pwdvarchar(30)NoNull管理员密码b)tb_Student(考生信息表)考生信息表用来保存考生信息,该表的结构如表4-2所示:表4-2tb_Student表的结构字段名数据类型是否为空是否主键默认值描述idbigint(8)NoYesID号namevarchar(20)NoNull姓名pwdvarchar(20)NoNull密码sexvarchar(2)NoNull性别joinTimedatetime(8)Nogetdate()注册时间questionvarchar(50)NoNull提醒问题answervarchar(50)NoNull问题答案prefesionvarchar(30)YesNull专业cardNovarchar(18)NoNull身份证号c)tb_stuResult(考生成绩信息表)考生成绩信息表用来保存考生成绩,该表中的所属课程字段whichLesson与tb_Lesson表中的Name字段相关联,并且设立为级联更新。考生成绩信息表的结构如表4-3所示:表4-3tb_stuResult表的结构字段名数据类型是否为空是否主键默认值描述idbigint(8)YesID号stuIdvarchar(16)准考证号whichLessonvarchar(60)所属课程resSingleint(4)单选题分数resMoreint(4)多选题分数resTotalint(4)允许为空合计分数joinTimedatetime(8)getdate()添加时间d)tb_TaoTi(套题信息表)套题信息表用来保存套题信息,该表中保存着所属套题ID,套题名称,套题所属课程以及套题的添加时间信息。该表的结构如表4-4所示:表4-4tb_TaoTi表的结构字段名数据类型是否为空是否主键默认值描述idbigint(8)YesYesID号namevarchar(50)套题名称LessonIdbigint(8)所属课程joinTimedatetime(8)getDate()添加时间e)tb_Lesson(课程信息表)课程信息表用来保存课程信息,该表中保存着所属课程的ID,课程名以及课程的添加时间信息。该表的结构如表4-5所示:表4-5tb_Lesson表的结构字段名数据类型是否为空是否主键默认值描述idbigint(8)NoYesID号namevarchar(60)NoNull课程名joinTimedatetime(8)NoNull添加时间f)tb_Questions(考试题目信息表)考试题目信息表用来保存考试题目信息。考试题目信息表的结构如表4-6所示:表4-6tb_Questions表的结构字段名数据类型是否为空是否主键默认值描述idbigint(8)YesID号subjectvarchar(50)问题typechar(6)类型joinTimedatetime(6)getdate()添加时间LessonIdint(4)所属课程IDtaotiIdbigint(8)所属套题IDoptionAvarchar(50)选项AoptionBvarchar(50)选项BoptionCvarchar(50)选项CoptionDvarchar(50)选项Danswervarchar(50)对的答案notevarchar(50)允许为空备注4.4数据表之间的关系设计本系统设计了如图4-7所示的数据表之间的关系,该关系事实上也反映了系统中各个实体之间的关系。图4-7数据表之间的关系图5具体设计5.1前台首页模块设计5.1.1前台首页概述考生通过“考生登录”模块的验证后,可以登录到网络在线考试的前台首页,如图5-1所示。前台首页重要用于实现前台功能导航,在该页面中只涉及在线考试、成绩查询、修改个人资料和退出4个导航链接。图5-1前台首页的运营效果5.1.2前台首页技术分析由于本系统的前台首页重要用于进行系统导航,所以在实现时,采用了为图像设立热点的方法,这样可以增长页面的灵活度,使页面不至于太枯燥。下面将对如何设立图像的热点进行具体介绍。为图像设立热点,也可以称作图像映射,是指一幅图像可以建立多个超链接,即在图像上定义多个区域,每个区域链接到不同的地址,这样的区域称为热点。图像映射有服务器端映射(Server-side-ImageMap)和客户端映射(Client-side-ImageMap)两种。目前使用最多的是客户端映射,由于客户端映射使图像上相应的坐标以及超链接的URL地址都在浏览器读入,省去和服务器之间互传坐标和URL的时间。在HTML文献中,使用标记<map>可认为图像设立热点,语法格式如下:<imgsrc=“file_name”usemap=“#MapName”><mapname=“MapName”><areashape=“value”cords=“坐标”href=“URL”alt=“描述文字”><areashape=“value”cords=“坐标”href=“URL”alt=“描述文字”>…</map>在<img>标记中设立属性usemap,拟定创建图像热点。标记<map>属性如表5-1所示:表5-1标记<map>的属性标记<map>的属性描述name图像映射的名称shape定义图像热点的名称coords设定热点区域的图标href设定热点区域的超链接地址alt设定热点区域超链接描述文字在标记<map>中,根据属性shape的取值不同,相应坐标的设定也不同。5.1.3前台首页的实现过程a)在页面中插入要设立热点的图片,并设立其usemap属性,代码如下:<imgsrc=“Images/default_mid.JPG”width=“778”height=“254”border=“0”usemap=“b)在<map>和</map>标记中间插入设立热点区域的代码,具体代码如下:<mapname="Map"><areashape="poly"coords="190,65,190,65,215,82,194,98,105,113,103,81"href="examRule.jsp"><areashape="poly"coords="313,59,402,45,435,56,406,78,311,90,313,58"href="manage/stuResult.do?action=stuResultQueryS&ID=${student}"><areashape="poly"coords="380,141,508,119,541,139,521,154,385,176"href="manage/student.do?action=modifyQuery&ID=${student}"><areashape="poly"coords="602,58,690,46,715,63,696,76,602,91"href="logout.jsp"></map>5.2考生信息模块设计5.2.1考生信息模块概述考生信息模块重要涉及考生注册、考生登录、修改个人资料以及找回密码等四个功能。考生一方面要注册成为网站用户,然后才干被授权登录网站进行一系列操作的权限;登录后考生还可以修改个人的注册资料。假如考生忘掉了登录密码,还可以通过网站提供的找回密码功能快速找回密码。考生信息模块的系统流程如图5-2所示:开始结束开始结束是否找回密码否修改个人资料是考生注册找回登录密码考生登录是否5.2.2考生信息模块的技术分析由于本系统采用的是Struts框架,所以在实现考生信息模块时,需要编写考生信息模块相应的ActionForm类和Action实现类。下面将具体介绍如何编写考生信息模块的ActionForm类和Action实现类。a)编写考生信息模块的ActionForm类在考生信息模块中,只涉及到数据表tb_Student(考生信息表),虽然根据这个数据表可以得出考生信息模块的ActionForm类。但是本模块中应用的ActionForm类中并不是只涉及这些属性。由于在修改个人资料时,需要验证输入的原密码是否对的,所以还需要在考生信息的ActionForm类中添加一个oldpwd属性,同时,在进行批量删除考生信息时,还需要添加一个保存要删除考生ID号的delldArray属性,由于是批量属性,所以该属性类型为字符串数组。publicclassStudentFormextendsActionForm{publicDategetJoinTime;…privateStringoldpwd; //原密码privateString[]delIdArray=newString[0];publicDategetJoinTime(){ returnjoinTime; } publicvoidsetJoinTime(DatejoinTime){ this.joinTime=joinTime; }publicString[]getDelIdArray(){ returndelIdArray; } publicvoidsetDelIdArray(String[]delIdArray){ this.delIdArray=delIdArray; }…}b)创建考生信息模块的Action类考生信息模块的Action实现类Student继承了Action类。在该类中,一方面需要在该类的构造方法中分别实例化考生信息模块的StudentDAO类。Action实现类的重要方法是execute(),该方法会被自动执行,这个方法自身没有具体的事务,它是根据HttpServletRequest的getParameter()方法获取的action参数值执行相应方法的。考生信息模块的Action实现类的关键代码如下:publicclassStudentextendsAction{…publicActionForwardexecute(ActionMappingmapping,ActionFormform, HttpServletRequestrequest,HttpServletResponseresponse){ Stringaction=request.getParameter("action");if("studentQuery".equals(action)){ returnstudentQuery(mapping,form,request,response); }elseif("login".equals(action)){ returnstudentLogin(mapping,form,request,response); }elseif("studentAdd".equals(action)){ returnstudentAdd(mapping,form,request,response); }elseif("studentDel".equals(action)){ returnstudentDel(mapping,form,request,response); }elseif("modifyQuery".equals(action)){ returnmodifyQuery(mapping,form,request,response); }elseif("studentModify".equals(action)){ returnstudentModify(mapping,form,request,response); }elseif("seekPwd1".equals(action)){ returnseekPwd1(mapping,form,request,response); }elseif("seekPwd2".equals(action)){ returnseekPwd2(mapping,form,request,response); }else{request.setAttribute("error","您的操作有误!");//将错误信息保存到error中returnmapping.findForward("error"); //转到显示错误信息的页面 } }…//此处省略了该类中其他方法,这些方法将在后面的具体过程中给出}5.2.3考生注册的实现过程运营网络在线考试系统,一方面进入的是考生登录页面,在该页面中单击“注册”按钮,即可进入考生注册页面,在该页面中输入个人资料及密码等一系列信息,如图5-3所示。单击“保存”按钮,系统将根据您输入的身份证号进行验证是否已经注册,假如注册成功,将弹出如图5-4所示的窗口;假如注册失败,将弹出如图5-5所示的提醒框。图5-3考生注册界面的运营效果图5-4注册成功对话框图5-5注册失败对话框设计添加注册信息页面添加注册信息页面重要用于收集输入的考生注册信息,及通过自定义的JavaScript的函数验证输入信息是否合法。在设立用于收集注册信息的表单时,采用的是Struts框架的HTML标签实现的,关键代码如下:<html:formaction="/manage/student.do?action=studentAdd"method="post"onsubmit="returncheckForm(studentForm)">考生姓名:<html:textproperty="name"size="20"/>密码:<html:passwordstyleId="password1"property="pwd"size="20"/>确认密码:<html:passwordstyleId="password2"property="pwd"size="20"/>性别:<html:optionvalue="男">男</html:option><html:optionvalue="女">女</html:option></html:select>提醒问题:<html:textproperty="question"size="40"/>问题答案:<html:textproperty="answer"size="40"/>专业:<html:textproperty="profession"size="40"/>身份证号:<html:textproperty="cardNo"size="40"/><html:submitproperty="submit"styleClass="btn_grey"value="保存"/><html:resetproperty="reset"styleClass="btn_grey"value="取消"/><html:buttonproperty="button"styleClass="btn_grey"value="返回"onclick="window.location.href='index.jsp'"/></html:form>修改考生信息的Action实现类在添加注册信息页面中输入合法的注册信息后,单击“保存”按钮,网页会访问一个URL,这个URL是/manage/student.do?action=studentAdd。从该URL地址中可以知道添加注册信息页面涉及到的action参数值为studentAdd,也就是当action=studentAdd时,会调用保存考生注册信息的customerAdd()。在该方法中,一方面需要将接受到的表单信息强制转换成ActionForm类型,然后调用StudentDAO类中的insert()方法,将考生信息保存到数据表中,并将返回值保存到变量ret中,假如返回值为re,表达该考生信息已经注册,将提醒信息“您已经注册,直接登录即可!”保存到HttpServletRequest对象的error参数中,然后将页面重定向到错误提醒信息页面;否则,假如返回值为miss,表达注册失败,将错误提醒信息“注册失败”保存到HttpServletRequest对象的error参数中,然后将页面重定向到错误提醒信息页面;否则表达注册成功,将返回的准考证号保存到HttpServletRequest对象的ret参数中,然后将页面重定向到考生注册成功页面。保存考生注册信息的方法studentAdd()的具体代码如下:privateActionForwardstudentAdd(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){ StudentFormstudentForm=(StudentForm)form; Stringret=studentDAO.insert(studentForm); if(ret.equals("re")){ request.setAttribute("error","您已经注册,直接登录即可!"); returnmapping.findForward("error"); }elseif(ret.equals("miss")){ request.setAttribute("error","注册失败!"); returnmapping.findForward("error"); }else{ request.setAttribute("ret",ret); returnmapping.findForward("studentAdd"); } }c)编写保存考生注册信息的StudentDAO类的方法保存考生信息使用的StudentDAO类的方法是insert()。在insert()方法中,一方面从数据表tb_student中查询输入的身份证号是否存在,假如存在,将标志变量设立为2;否则,先生成准考证号,再将输入的信息保存到考生信息表中,并将生成的准考证号赋给标志变量,最后返回该标记变量。5.2.4找回密码的实现过程运营网络在线考试系统时,一方面进入的是考生登录页面,在该页面中单击“找回密码”按钮,即可进入到找回密码第一步页面,如图5-6所示,用于输入准考证号,在该页面中输入准考证号。单击“下一步”按钮,即可进入到找回密码第二步页面,如图5-7所示,用于输入密码提醒问题答案,在该页面的“密码提醒问题”文本框中将显示提醒问题,在“密码提醒答案”文本框中输入密码提醒问题的答案。单击“下一步”按钮,进入到找回密码第三步页面,如图5-8所示,用于显示找回的密码。图5-6找回密码第一步图5-7找回密码第二步图5-8找回密码第三步a)实现找回密码第一步输入准考证号在找回密码第一步页面中,只需要放置一个用于获取准考证号的表单及相应的表单元素即可,关键代码如下:<html:formaction="/manage/student.do?action=seekPwd1"method="post"onsubmit="returncheckForm(studentForm)">准考证号:<html:textproperty="ID"size="40"/><html:submitproperty="submit"styleClass="btn_grey"value="下一步"/><html:resetproperty="reset"styleClass="btn_grey"value="取消"/><html:buttonproperty="button"styleClass="btn_grey"value="返回"onclick="window.location.href='index.jsp'"/></html:form>找回密码第一步相应的方法seekPwd1()的具体代码如下:privateActionForwardseekPwd1(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){ StudentFormstudentForm=(StudentForm)form; StudentForms=studentDAO.seekPwd(studentForm); request.setAttribute("seekPwd2",s); if(s.getID().equals("")){ request.setAttribute("error","您输入的准考证号不存在!"); returnmapping.findForward("error"); }else{ returnmapping.findForward("seekPwd1"); }}b)实现找回密码第二步输入密码提醒问题答案在找回密码第二步页面中,一方面添加一个表单,并将第一步中返回的提醒问题答案显示在相应的文本框中,然后在该表单中添加一个用于记录考生档案ID的隐藏域,最后在该表单中添加用于输入密码提醒问题答案的文本框及相应的按钮,关键代码如下:<html:formaction="/manage/student.do?action=seekPwd2"method="post"onsubmit="returncheckForm(studentForm)">密码提醒问题:<html:textproperty="question"size="40"name="seekPwd2"readonly="true"/>密码提醒答案:<html:textproperty="answer"size="40"/><html:submitstyleClass="btn_grey"value="下一步"/><html:resetstyleClass="btn_grey"value="取消"/></html:form>c)实现找回密码第三步成功找回密码准考证号:<html:textproperty="ID"size="40"name="seekPwd3"readonly="true"/>密码<html:textproperty="pwd"size="40"name="seekPwd3"readonly="true"/>5.3在线考试模块设计5.3.1在线考试模块的概述开始批准考试规则选择考试课程准备考试随机抽取试题并开始答题提交试卷/到达考试时间开始批准考试规则选择考试课程准备考试随机抽取试题并开始答题提交试卷/到达考试时间显示本次考试成绩否是否是结束图5-9在线考试模块的系统流程图5.3.2在线考试模块的技术分析由于本系统采用的是Struts框架,所以在实现在线考试模块时,需要编写在线考试模块相应的ActionForm类和Action类。下面将具体介绍如何编写在线考试模块的ActionForm类和Action类。a)编写在线考试模块的ActionForm类在线考试模块涉及的数据表是tb_Lesson(课程信息表)、tb_Questions(考试题目信息表)和tb_stuResult(考试成绩表),通过这3个数据表可以创建出相应的ActionForm类,可以在各自相应的模块中创建。b)创建在线考试模块的Action类在线考试模块的Action实现类Student继承了Action类。在该类中,一方面需要在该类的构造方法中分别实例化在线考试模块的StartExamDAO类。Action实现类的重要方法是execute(),该方法会被自动执行,这个方法自身没有具体的事务,它是根据HttpServletRequest的getParameter()方法获取的action参数值执行相应方法的。在线考试模块Action实现类的关键代码如下:publicclassStartExamextendsAction{…//此处省略了声明并实例化StartExamDAO类的代码publicActionForwardexecute(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){Stringaction=request.getParameter("action");//获取action参数的值if("startExam".equals(action)){ returnstartExam(mapping,form,request,response); }elseif("submitTestPaper".equals(action)){ returnsubmitTestPaper(mapping,form,request,response); }elseif("showStartTime".equals(action)){//显示考试计时 returnshowStartTime(mapping,form,request,response); }elseif("showRemainTime".equals(action)){//显示考试时间 returnshowRemainTime(mapping,form,request,response); }else{ request.setAttribute("error","操作失败!"); returnmapping.findForward("error"); } }…//此处省略了该类中其他方法,这些方法将在后面的具体过程中给出}5.3.3选择考试课程的实现过程考生登录到网络在线考试的前台首页后,单击“在线考试”超链接,将进入到考试规则页面,在该页面中单击“批准”按钮,如图5-10所示,即可进入到选择考试课程页面,在该页面中将以下拉列表框的形式显示需要参与考试的课程,如图5-11所示。假如没有需要考试的课程,系统将给出提醒对话框,并返回到网络在线考试的前台首页,如图5-12所示:图5-10运营考试规则的界面图5-11选择考试课程的运营结果图5-12无考试课程对话框界面在考试规则页面中,单击“批准”按钮,将访问一个URL地址,该地址为/manage/lesson.do?action=selectLesson,从该URL地址中可以知道选择考试课程页面涉及到的action的参数值为selectLesson,也就是当action=selectedLesson时,会调用查询指定考生的课程相应的方法selectLesson()。在该方法中,一方面获取准考证号,然后调用LessonDAO()类中的query()方法,并将获取的准考证号作为query()方法的参数,最后根据query()方法返回的List集合的大小,转到相应的页面。查询需要考试的课程的方法selectLesson()的具体代码如下:privateActionForwardselectLesson(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){HttpSessionsession=request.getSession();Stringstu=session.getAttribute("student").toString();//获取准考证号Listlist=lessonDAO.query(stu); //查询涉及考试题目的课程列表,但不涉及已经考过的科目 if(list.size()<1){ returnmapping.findForward("noenLesson"); }else{request.setAttribute("lessonList",list); returnmapping.findForward("selectLesson"); }}5.3.4随机抽取试题并显示试题的实现过程考生登录到网络在线考试的前台首页后,单击“在线考试”超链接,将进入到考试规则页面,在该页面中单击“批准”按钮,进入到选择考试课程页面,在该页面中选择要考试的课程,并单击“拟定”按钮,进入到准备考试页面,如图5-13所示。在该页面中,单击“开始考试”按钮,将关闭当前窗口,并打开新的窗口显示试题,如图5-14所示:图5-13准备考试页面图5-14随机抽取试题并显示试题的运营结果在准备考试页面中,单击“开始考试”按钮,将调用JavaScript关闭窗口并打开新的窗口,用于显示试题,具体代码如下:<html:buttonproperty="button"styleClass="btn_grey"value="开始考试"onclick="window.opener=null;window.close();window.open('startExam.do?action=startExam','','width=786,height=600,scrollbars=1');"/>a)随机抽取试题的方法randomGetQuestion()。在randomGetQuestion()方法中,一方面获取指定课程所拥有的套题ID,然后将获取的套题ID保存到一个数组中,并根据套题的个数获取一个随机数,即保存套题ID数组的指定下标,最后根据该下标获取相应的套题ID并返回。随机抽取试题的方法randomGetQuestion()方法的关键代码如下:publicintrandomGetQuestion(intlessonID){ intquestionsID=0; Stringsql="SELECTtaoTiIDFROM(SELECTdistinctlessonID,taoTiIDfrom"+"(SELECTlessonId,taoTiIDFROMtb_questionsGROUPBYtaoTiID,lessonID,type)"+"aslessonTaoTiGROUPBYlessonId,taoTiIDhavingcount(taoTiID)>1)astemp"+"WHERElessonID="+lessonID+""; ResultSetrs=conn.executeQuery(sql); inti=0;try{ rs.last(); intrecordNum=rs.getRow(); rs.first(); int[]id=newint[recordNum];do{id[i]=rs.getInt(1);i++;}while(rs.next());intrand=Math.abs(newRandom().nextInt(id.length));questionsID=id[rand];}catch(Exceptionex){ ex.printStackTrace();} returnquestionsID;}b)开始考试时保存考试成绩的方法startSaveResult()。为了防止试题泄露,可以通过在开始考试时先将考试信息保存到考生成绩表中,然后等提交试卷时,再修改考试成绩实现,这样即使考生并不提交试卷,下次也同样不能再进行考试了。在startSaveResult()方法中,需要根据传递的课程ID参数获取相应的课程名称,然后再将准考证号、所属课程及单选题成绩(设立为0)和多选题成绩(设立为0)保存到考生成绩表信息表中。开始考试时保存考试成绩的方法startSaveResult()的关键代码如下:publicintstartSaveResult(StringstudentID,intlessonID){Stringlesson=((LessonForm)lessonDAO.query(lessonID).get(0)).getName(); Stringsql="INSERTINTOtb_stuResult(stuId,whichLesson,resSingle,resMore)values('"+studentID+"','"+lesson+"',0,0)";intret=conn.executeUpdate(sql); returnret;}c)获取试题的方法queryExam()。queryExam()方法包含两个参数,一个用于指定套题ID,另一个用于指定试题类型的参数,假如该参数的值为0,就代表查询指定套题中的单选题,否则为1,就代表查询多选题,在将试题保存到相应的ActionForm中时,还需要先将字符型的对的答案分割为数组,再保存到相应属性中。5.3.5自动阅卷并显示考试成绩的实现过程在显示试题页面中,单击“交卷”按钮或是到达考试结束时间时,系统将自动阅卷并将考试成绩以对话框的形式反馈给考生,如图5-15所示:图5-15显示考试成绩对话框5.4后台首页模块概述网络在线考试系统的后台首页是管理员对网站信息进行管理的首页面。在该页面中,管理员可以清楚地了解网站后台管理系统包含的基本操作。网络在线考试系统后台首页包含的重要模块如下:a)管理员信息管理:重要涉及管理员信息列表、添加管理员、修改管理员和删除管理员。b)考生信息管理:重要涉及查看注册考生信息列表和删除已注册的考生信息。c)考生成绩查询:重要用于根据准考证号、考试课程或考试时间模糊查询考生成绩。d)课程信息管理:重要涉及查看课程列表、添加课程信息和删除课程信息。e)套题信息管理:重要涉及查看套题信息列表、添加套题信息、修改套题信息和删除套题信息。f)考试题目管理:重要涉及查看考试题目列表、添加考试题目、修改考试题目和删除考试题目。g)退出管理:重要用于退出后台管理系统。为了方便管理员管理,在网络在线考试系统的后台首页中显示考生成绩查询页面,其运营结果如图5-16所示:图5-16网络在线考试系统的后台首页的运营结果5.5考试题目管理模块设计5.5.1考试题目管理模块的概述考试题目管理模块重要涉及查看考试题目列表、添加考试题目信息、修改考试题目信息和删除考试题目信息4个功能。考试题目管理模块的框架如图5-17所示:开始开始考试题目列表查看考试题目列表添加考试题目信息修改考试题目信息删除考试题目信息图5-17考试题目管理模块的框架图5.5.2查看考试题目列表的实现过程管理员登录后,单击“考试题目管理”超链接,进入到查看考试题目列表页面,在该页面中将以列表形式显示所有考试题目信息,同时提供添加考试题目、修改考试题目和删除考试题目的超链接。查看考试题目列表页面的运营效果如图5-18所示:图5-18查看考试题目列表页面的运营效果5.5.3添加考试题目的实现过程管理员登录系统后,单击“考试题目管理”超链接,进入到查看考试题目列表页面,在该页面中单击“添加考试题目”超链接,进入到添加考试题目页面。在该页面的“属性课程”下拉列表框中选择“计算机专业英语”,在“所属套题”下拉列表框中将显示该课程相应的套题名称。添加考试题目页面的运营结果如图5-19所示:图5-19添加考试题目页面的运营结果5.6套题信息管理模块概述套题信息管理模块重要涉及修改套题信息、添加套题和删除套题3个功能。假如想要修改套题信息,单击“修改按钮”,跳出如图5-20所示的页面,可以修改套题名称,该套题所属课程,单击“保存”按钮,修改套题信息就成功了。假如要添加套题,就单击“添加”按钮,输入套题名称,并选择该套题所属课程,点击“保存”按钮,完毕了套题的添加。删除套题的方法类似。图5-20修改套题信息页面的运营效果5.7课程信息管理模块概述课程信息管理模块重要涉及查看课程信息、添加课程和删除课程3个功能。假如想要添加课程,单击“添加课程”,跳出如图5-21所示的页面,填写课程名称后,单击“保存”按钮,添加课程就成功了。假如要删除套题,就单击“删除”按钮,确认删除。图5-21添加课程信息页面运营结果5.8考生成绩查询模块概述考生成绩查询模块可以按照准考证号、考试课程和考试时间3种查询条件来查询成绩,或者也可以输入关键字来进行查询考生的成绩。如图5-22所示:图5-22考生成绩查询页面的运营效果5.9考生信息管理模块概述考生信息管理模块重要涉及查看注册考生信息列表和删除已注册的考生信息2个功能。5.10管理员信息管理模块概述管理员信息管理重要涉及管理员信息列表、添加管理员、修改管理员和删除管理员。假如要添加管理员,单击“添加管理员信息”按钮,跳出如图5-23所示的对话框,输入管理员名称,密码,并进行确认密码后,点击“保存”按钮,就可以完毕管理员信息的添加了。删除管理员,点击“删除”按钮,确认是否删除后,就可以完毕操作。图5-23添加管理员信息页面运营结果6软件开发与测试6.1软件开发技术概述Ajax技术是AsynchronousJavaScriptandXML的缩写,意思是异步的JavaScript和XML。Ajax并不是一门新的语言或技术,它是JavaScript、XML、CSS、DOM等多种已有技术的组合,它可以实现客户端的异步请求操作。这样可以实现在不需要刷新页面的情况下与服务器进行通信的效果,从而减少了用户的等待时间。6.2通过Ajax技术实现计时与显示剩余时间在通过Ajax技术实现计时与显示剩余时间,一方面需要创建一个封装Ajax必须实现的功能的对象AjaxRequest,并将其代码保存为AjaxRequest.js,然后在开始考试页面中包含该文献,具体代码如下:<scriptlanguage=“javascript”src=“..//JS/AjaxRequest.js”></script>由于通过Ajax技术实现计时与显示剩余时间表的方法类似,下面以实现自动计时为例进行介绍。编写调用AjaxRequest对象的函数、错误解决函数和返回值解决函数,具体代码如下:<scriptlanguage="javascript">functionshowStartTime(){varloader=newnet.AjaxRequest("startExam.do?action=showStartTime&nocache="+newDate().getTime(),deal_s,onerror,"GET");}functiononerror(){window.open('../index.jsp','','toolbar,menubar,scrollbars,resizable,status,location,directories,copyhistory,height=600,width=778');window.close();}functiondeal_s(){ showStartTimediv.innerHTML=this.req.responseText;}
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 足协工作总结
- 广东省湛江市2024−2025学年高二上学期10月月考 数学试题含答案
- 端午节体会(31篇)
- 湖北省武汉市(2024年-2025年小学五年级语文)人教版专题练习(上学期)试卷及答案
- 黑龙江绥化市(2024年-2025年小学五年级语文)人教版摸底考试((上下)学期)试卷及答案
- 高级办公自动化教案
- 非营利组织管理教案
- 无碱玻璃纤维短切丝征求意见稿
- 2024年广东省深圳市中考英语适应性试卷
- 上海市市辖区(2024年-2025年小学五年级语文)统编版竞赛题(下学期)试卷及答案
- GA/T 1567-2019城市道路交通隔离栏设置指南
- 谭嗣同介绍ppt演示说课讲解
- 第六章革命军队建设和军事战略的理论
- 年度取用水计划申请表
- 初中数学华东师大七年级上册第1章走进数学世界七年级数学上册数学活动月历中
- 硬笔书法章法课件
- 专题四 植物的三大生理作用
- 智能制造专业群建设(智能制造业专业技术学校创业计划)课件整理
- 小马过河托福考试阅读真经1200单词
- 2022年北京科技大学辅导员招聘考试试题及答案解析
- 医疗医院康养项目商业地产整合营销方案
评论
0/150
提交评论