毕业设计(论文)-基于Web版的试题库管理及组卷系统.doc_第1页
毕业设计(论文)-基于Web版的试题库管理及组卷系统.doc_第2页
毕业设计(论文)-基于Web版的试题库管理及组卷系统.doc_第3页
毕业设计(论文)-基于Web版的试题库管理及组卷系统.doc_第4页
毕业设计(论文)-基于Web版的试题库管理及组卷系统.doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

2002级本科毕业设计论文 第 32页 共32页1 引言网络化教育代表了教育改革的一个发展方向,已经成为现代教育的一个特征,并对教育的发展形成新的推动力。随着Internet/Intranet的迅速发展和广泛普及,建立在其上的远程教育成为现代教育技术未来发展方向之一,考试测试作为远程教育的一个子系统也成为一个重要的研究领域。现代远程教育作为一种新的教学手段已经开始进入我们的生活,正在给传统教育模式带来新的变革,并对教育的发展形成新的推动力。Internet技术的发展使得考试的技术手段和载体发生了革命性的变化,Internet的开放性、分布性的特点和基于Internet的巨大的计算能力使得考试突破了时间和空间的限制。基于Internet的考试系统正成为人们的研究热点之一。与传统考试模式相比,网上考试具有无可比拟的优越性,它可以将传统考试过程中的试卷组织、审定印制、传送收集、登记发放、评判归档各个环节缩小到一至两个环节,几乎屏蔽了所有人工直接干预考试活动的可能性,不但能够节约大量的时日、人力、物力与财力,而且还可以大幅度提高考试成绩的客观性和公正性。网上考试系统课题产生的背景是当今教育信息化的趋势及我国高校教育信息化系统的建设,目的是充分利用学校现有的计算机软、硬件资源和网络资源实现无纸化考试以避免传统手工考试的不足。与传统考试模式相比,网上考试渗入了更多的技术环节,对实现安全性的途径、方法也提出了更高的技术要求。通过Internet/Intranet来实现网上考试,是现代教育技术的一个具体实现,具有很重要的现实意义。可以实现教考分离以及考务工作的全自动化管理,可以有效利用校园网的软硬件资源,使其发挥最大效力,更好的为学校的教学、科研、管理服务,可以大规模的实行考试,实现考试的客观、公证性,自动化组卷、阅卷可以减轻教师的工作强度。传统考试要求老师刻试卷、印试卷、安排考试、监考、收集试卷、评改试卷、讲评试卷和分析试卷。这是一个漫长而复杂的过程,已经越来越不适应现代教学的需要。网络考试系统是传统考场的延伸,它可以利用网络的无限广阔空间,随时随地的对学生进行考试,加上Web数据库技术的利用,大大简化了传统考试的过程。本系统以Internet为平台,研究了基于Web考试系统的设计与实现,包括系统需求分析和系统功能设计以及数据库设计。重点阐述了试题库管理模块、试卷管理模块、在线练习模块的设计。特别是试卷管理模块中的自动组卷功能常用的算法进行了比较。最后选择简单产生随机数的方法来随机生成试题。2 系统需求分析2.1 国内外研究现状针对传统纸面化考试的种种缺陷,目前在国内外就网络化考试系统在理论研究和技术实践方面的探索,大体经历的三个阶段发展:一是单机化考试,即基于单机的计算机考试系统,单机化考试,考前逐机安装考试系统,考后,逐机手工阅卷,用软盘回收成绩,然后将成绩汇总上报。在回收过程中一旦软盘或软驱发生故障则需要换盘或修复软驱后重新回收。这种“半手工半机器”的单机化考试,更没有充分利用网络的优点。在当今学校规模不断扩大,参加考试的学生不断增加的情况下,单机化考试的考务工作量越来越重。二是C/S架构下的网络化考试,这是一种基于局域网的考试,典型的例子是美国ATA公司研发的“ATA考试系统”,它用于考试的机器分为服务器(Server)和客户机(Client)两种,优点是作到了对客户机的灵活控制和试卷的自动回收,缺点是需要分别开发和安装相应的考试服务系统和考试客户系统,在这点上与单机化考试的考前准备工作量相比是有增无减。三是B/S架构下的网络化考试,这是一种基于Web的网络化考试,目前应用比较广泛,如清华大学的“清华网络学堂”、“清华在线教育”等网络教学平台中都采用了这种考试方式,以适应和促进网络教学和远程教育。它将软件、试题、成绩等全部存放在服务器上,客户机只要是能上网的微机即可;它突破时空限制,可在任何时间、任何能够上网的地点进行远程考试和考务工作。它可自动生成和打印试卷;它能实现中途换机等意外情况下的继续考试;考试结束时可迅速给出客观题考试成绩,主观题部分也是以网上阅卷的方式进行并实时提交成绩。这种阅卷给了考生最大的公平感。这些都使得网络化考试比传统的纸面考试和单机化考试具有无以比拟的效率和公平上的优越性,是现代化考试发展的方向。2.2 本系统的优点(1)可以创立电子试题库,方便地实现试题的数字化管理。所谓题库就是试题的仓库,是把许多题目集合到一起,供试卷编制者随时查询和使用的集合。目前我国广大教育工作者的试题管理工作仍然停留在手工操作的低水平上,程式不外乎于先把试题抄写到卡片纸上,再分别放置于不同的试题柜中,不仅复制极其困难,而且更新、查找也十分麻烦,效率极其低下。在先进理论指导下的使用计算机管理试题的电子题库,具有科学、高效、经济、灵活、方便等显著特点,为题目的保存、分类和检索提供了便利,为编制试卷提供了高效率和低成本的手段。电子题库是网络考试系统的重要组成部分,也是考试系统中最具有特色和实用价值的模块之一。(2)可以按照科学的策略智能组卷,从而提高出卷效率。网络考试系统以电子试题库为依托,可以按照系统制定的组卷策略自动的抽题成卷,极大的提高了出卷效率。为一些面向社会开放的常年考场,提供了海量试卷资源的有力支持。也可以被广大教师用来辅助教学和测验。(3)可以具有操作性和交互性。计算机考试系统与传统纸上考试相比,有一个显著的优点和特点就是具有操作性和交互性。可以更好的“设置一定的情景让学生表现,以此衡量学生的心理品质”。如计算机应用技能的考试等,使用计算机模拟就具有纸面考试无法比拟的效果。计算机考试系统可以根据学生的反应,对试题进行调整和反馈,使一些非经典的测量理论。能够在实践中得以实现,发挥出它们的优点和长处。而网络化考试很好地继承了这个优点。(4)使考试和判卷更具规范性和合理性。网络考试系统使用计算机系统来进行考试和自动判卷。具有更好的规范性和合理性。试题的呈现和判卷的标准都是严格统一的,一般不会发生学生忘记书写姓名,答题卡填写方法不正确或错位等意外丢分情况。学生答题过程中,由于系统限制也必将更加规范,不会出现笔试中经常出现的由于学生没有严格按照答题要求做,判卷时被强行扣分的事情。判卷由系统自动完成,极大的提高了准确性,防止了人工判卷时经常出现的错判、漏判和分数计算错误的情况。使考试更加公正合理,具有权威性。(5)实现自动判卷和试卷的有效保存。如果说考试使教师教学过程中重要工作之一的话,那么判卷又是教师在考试实施过程中最重要和最烦琐的工作之一。判卷有两个基本的要求,那就是快速和准确。学生希望在最短的时间内知道自己准确的考试成绩,在集体中的位置知道问题出现的所在和应该努力的方向。这也是考试教育功能的重要体现。如果判卷越慢这种对学生的反馈和激励的效果就会越小,达不到原有的考试目的。快速和准确对传统的教师手工判卷来说是一对矛盾,加重了教师的工作负担。而使用考试系统的自动判卷功能,能很好的解决这些问题。甚至在学生考试完成后,他就能马上看到自己的成绩。试卷的保存工作很好解决,它可以在数数据库中直接保存试卷内容,还可以把试卷的内容以Word文档的形式保存成Word文件,以便于下次调阅试卷。2.3 可行性分析可行性分析也称为可行性研究,即是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会的方面进行分析和研究,以避免投资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。该系统的可行性分析包括以下几个方面的内容。(1)经济可行性主要是对项目的经济效益进行评价,本系统作为一个毕业设计,无需开发经费,对于我们在经济上是可以接受的。所以本系统在经济上是可行的。(2)技术可行性技术上的可行性分析主要分析技术条件是否能顺利完成开发工作,硬、软件能否满足开发者的需要等。试题库系统及组卷算法需要的各种软件环境都已具备,如,开发用Visual studio .Net 2003,C#语言,IIS服务器,数据库服务器方面则有SQL Server,均能够处理大量数据,同时保持数据的完整性并提供许多高级管理功能。其灵活性、安全性和易用性为数据库编程提供了良好的条件。因此,系统的软件开发平台已成熟可行。(3)操作可行性目前,大学的校园网路覆盖了教学区和学生区的主要建筑物及部分家属宿舍,从而满足校内各学院,各职能部门,各直属单位上网需求。学校良好的网络设施为开发使用无纸化网络考试系统提供了坚实的基础。综上所述,此系统开发目标已明确,在技术和经济等方面都可行,并且投入少、见效快。因此系统的开发是完全可行的。3 开发环境简介3.1 Visual studio .NETVisual Studio .NET 是一套完整的开发工具,用于生成 ASP Web 应用程序、XML Web services、桌面应用程序和移动应用程序。Visual Basic .NET、Visual C+ .NET、Visual C#.NET 和 Visual J#.NET 全都使用相同的集成开发环境 (IDE),该环境允许它们共享工具并有助于创建混合语言解决方案。另外,这些语言利用了.NET Framework 的功能,此框架提供对简化 ASP Web 应用程序和 XML Web services 开发的关键技术的访问。ASP.NET是建立在通用语言运行时刻库(CLR)上的应用程序框架,用来在服务器端创建功能强大的Web应用程序,ASP.NET提供了几个超越以前Web开发模式的优点:(1)性能强ASP.NET是运行在服务器端的编译后的CLR代码,它利用提前绑定、即时编译、本地优化和缓存服务来提高性能,性能远优于以往写的每一行代码。(2)世界级水平的开发工具支持在Visual Studio.NET的集成开发环境(IDE)中,ASP.NET框架由丰富的工具箱和设计器组成,采用所见即所得的编辑方式。(3)具有伸缩性和扩展性由于ASP.NET基于(CLR),因此,整个.NET平台强大且富有弹性,可以应用于Web应用程序开发者.NET框架的类库、消息以及数据访问解决方案,都可以紧密地集成到Web。ASP.NET也是语言中立的,因此,可选择自己最熟悉的语言,如C#,VB,VC+.NET等,或通过几种语言共同完成一个应用。ASP.NET提供一种良好的扩充结构,允许开发者在适当的级别“插入”代码,事实上,使用自己编写的组件,执行自定义验证或状态服务变得十分容易。(4)使用更加简单 ASP.NET使执行日常工作变得容易,如从简单的表单提交,客户端验证到部署站点配置都得到了简化。此外,CLR简化了部署,用来管理代码服务,例如,自动参照和垃圾回收。(5)安全性内建的Windows验证每一个应用程序的独立配置,可以认定应用程序是安全的。Web服务作为一种新的基于Internet的分布式解决方案,Web服务完全是基于标准的技术,正是采用了上述的技术标准,使得它主要具有如下优势:(a)平台无关性。正是由于Web服务采用基于XML的SOAP协议,才使它可以跨平台操作。(b)通用的通信通道。Web服务运行是以Internet作为其通信机制的。SOAP协议可以绑定到HTTP协议上,由于几乎所有的防火墙都允许HTTP通过,因此,它可以穿越防火墙,提供一个通用的通信通道。(c)服务器中立性。由于Web服务接口描述使用基于XML的WSDL,并且客户机和服务器之间的消息传递使用SOAP协议,因此,开发使用的语言和服务器软件无关。3.2 Microsoft SQL Server 2000简介Microsoft SQL Server 2000 由一系列产品组成,不仅能够满足最大的数据处理系统和商业 Web 站点存储数据的需要,还能为个人或小企业提供易于使用的数据存储服务。Microsoft SQL Server 2000 的特性包括: (1)Internet 集成SQL Server 2000 数据库引擎提供完整的 XML 支持。它还具有构成最大的 Web 站点的数据存储组件所需的可伸缩性、可用性和安全功能。SQL Server 2000 程序设计模型与 Windows DNA 构架集成,用以开发 Web 应用程序,并且 SQL Server 2000 支持 English Query 和 Microsoft 搜索服务等功能,在 Web 应用程序中包含了用户友好的查询和强大的搜索功能。(2)可伸缩性和可用性 同一个数据库引擎可以在不同的平台上使用,从运行 Microsoft Windows 98 的便携式电脑,到运行 Microsoft Windows 2000 数据中心版的大型多处理器服务器。SQL Server 2000 企业版支持联合服务器、索引视图和大型内存支持等功能,使其得以升级到最大Web 站点所需的性能级别。(3)企业级数据库功能 SQL Server 2000关系数据库引擎支持当今苛刻的数据处理环境所需的功能。数据库引擎充分保护数据完整性,同时将管理上千个并发修改数据库的用户的开销减到最小。SQL Server 2000 分布式查询使您得以引用来自不同数据源的数据,就好像这些数据是SQL Server 2000数据库的一部分,同时分布式事务支持充分保护任何分布式数据更新的完整性。复制同样使您得以维护多个数据复本,同时确保单独的数据复本保持同步。可将一组数据复制到多个移动的脱接用户,使这些用户自主地工作,然后将他们所做的修改合并回发布服务器。(4)易于安装、部署和使用SQL Server 2000 中包括一系列管理和开发工具,这些工具可改进在多个站点上安装、部署、管理和使用 SQL Server 的过程。SQL Server 2000 还支持基于标准的、与 Windows DNA 集成的程序设计模型,使 SQL Server 数据库和数据仓库的使用成为生成强大的可伸缩系统的无缝部分。这些功能使您得以快速交付SQL Serve应用程序,使客户只需最少的安装和管理开销即可实现这些应用程序。(5)数据仓库SQL Server 2000 中包括析取和分析汇总数据以进行联机分析处理 (OLAP) 的工具。SQL Server 中还包括一些工具,可用来直观地设计数据库并通过 English Query来分析数据。4 系统设计4.1 概念设计根据系统需求分析,可画出下如图4-1的ER图:组卷61用户练习1N单选题判断题综合题1试卷类型试卷信息N组卷1N1N11N1N组卷5N1练习2N1练习3N1练习41练习5N1N组卷4填空题组卷3多选题组卷2图4-1 ER图4.2 逻辑设计将上述ER图,转化为如下关系模式: 判断题(编号, 题干, 答案, 所在章节, 难度, 添加时间, 解析)综合题(编号, 题干, 答案, 所在章节, 难度, 添加时间, 解析)填空题(编号, 题干, 答案, 所在章节, 难度, 添加时间, 解析, 填空数目, 是否有序)单选题(编号, 题干, 答案, 所在章节, 难度, 添加时间, 解析, 选项A, 选项B, 选项C, 选项D)多选题(编号, 题干, 答案, 所在章节, 难度, 添加时间, 解析, 选项A, 选项B, 选项C, 选项D)用户(编号, 用户名, 密码, 权限, 真实姓名, 性别, 电子邮件, 班级, 添加时间)试卷类型(编号, 类型名称, 试卷总分,填空题分值, 填空题个数, 判断题分值, 判断题个数, 单选题分值, 单选题个数, 多选题分值, 多选题个数, 综合题分值, 综合题个数)试卷信息(编号, 试卷名称, 专业名称, 类型编号, 考试方式, 考试时间, 拟卷时间, 试卷内容, 试卷保存位置)4.3 物理设计 根据数据库逻辑设计的数据结构,并结合需求分析的内容,数据库的物理结构设计如下图:试卷类型:tk_type 数据表结构如表4-1试题信息表:tk_mess 数据表结构如表4-2计算题:tk_count 数据表结构如表4-3判断题表:tk_pd 数据表结构如表4-4填空题表:tk_pd 数据表结构如表4-5单选题表:tk_single 数据表结构如表4-6多选题表:tk_multi 数据表结构如表4-7用户表:tk_user数据表结构如表4-8表4-1字段名字段类型字段长度字段含义idInt4ID,类型编号typenameVarchar 50类型名称Typescorevarchar5试卷总分tkscoreVarchar 5填空题分值tknumVarchar 5填空题数量pdscoreVarchar 5判断题分值、pdnumVarchar5判断题数量singlescoreVarchar 5单选题分值singlenumVarchar5单选题数量multiscoreVarchar5多选题分值multinumVarchar5多选题数量countscoreVarchar5计算题数量countnumVarchar5计算题分值表4-2字段名字段类型字段长度字段含义idInt4ID,试卷编号testnameVarchar50试卷名称zhuanyenameVarchar50专业名称typename,Varchar50类型名称testmodeVarchar50考试方式testtimeVarchar50考试时间buildtimeVarchar50拟卷日期contenttext16试卷内容docpathVarchar50试卷保存路径表4-3字段名字段类型字段长度字段含义idInt4ID,自动编号questionVarchar 1000题干tkeyVarchar 200正确答案chapterVarchar 50所属章节difVarchar 1难度系数:1-4addtimeVarchar20添加日期helpVarchar 400解析表4-4字段名字段类型字段长度字段含义idInt 4ID,自动编号questionVarchar 500题干tkeyVarchar 5正确答案chapterVarchar 50所属章节difVarchar1难度系数:1-4addtimeVarchar 20添加日期helpVarchar 400解析表4-5字段名字段类型字段长度字段含义idInt4ID,自动编号questionVarchar 1000题干tkeyVarchar 100答案,多个答案之间用,隔开chapterVarchar 50所属章节difVarchar 1难度系数:1-4addtimeVarchar 50添加日期helpVarchar 400解析tknumVarchar 1填空个数isorderVarchar 1答案是否有序表 4-6字段名字段类型字段长度字段含义idInt 4ID,自动编号questionVarchar1000题干tkeyVarchar 10正确答案chapterVarchar 50所属章节difVarchar 1难度系数:1-4addtimeVarchar50添加日期helpVarchar 400解析AVarchar 400备选项BVarchar400备选项CVarchar 400备选项DVarchar 400备选项表 4-7字段名字段类型字段长度字段含义idInt 4ID,自动编号questionVarchar 1000题干tkeyVarchar 10答案,多个答案之间用,隔开chapterVarchar 50所属章节difVarchar 1难度系数:1-4addtimeVarchar 50添加日期helpVarchar 400解析AVarchar 400备选项BVarchar 400备选项CVarchar 400备选项DVarchar 400备选项表4-8字段名字段类型类型说明字段含义idInt 4整型ID,自动编号usernameVarchar 50字符型用户名passwordVarchar 10字符型密码purviewVarchar1字符型0表示学生,1表示管理员realnameVarchar 10字符型用户真实姓名sexVarchar 5字符型性别emailVarchar 50字符型电子邮件classVarchar 50字符型学生所在班级addtimeVarchar 50字符型注册时间5 系统功能模块及实现过程本系统主要由登陆注册模块、试题库管理模块、试卷管理模块和在线练习模块组成,其中各模块还由各种小模块组成。系统设计时采用类封装的方法,把系统中各个操作放在类里面处理,这样有利于编程过程中的代码复用,提高编程效率,缩小程序的大小。系统中各个模块的操作类都放在config.cs文件中,这个文件中还包含对数据库的连接类,它在这里提供一个通用的数据库连接方法,这样有利于程序的移植和对数据库访问的高效性。系统对数据库的连接字符串是放在Web.config文件中的,下面的是连接数据库的方法: 5.1 登陆注册模块 登陆注册模块由一个登陆页面和一个注册页面组成。登陆页面中可以进行学生登陆和管理员登陆,登陆时如果输入用户名、密码和选择用户角色,点登陆按钮就能进行系统登陆。当用户第一次进入系统时,由于还没有注册,是不能直接进行登陆的,这时用户可以点击“注册”按钮,这时系统转达到注册页面,用户可以在这里填写用户信息进行注册,值得注意的是这里注册的用户只有学生权限,而没有管理员权限。注册成功后返回登陆页面,此时用户可以通过刚才注册的账号和密码进行登陆。图5-1登陆页面 图5-2 注册页面5.2 试题库管理模块试题库管理模块功能主要由三个子模块完成,分别是添加试题、修改试题和删除试题三个模块。5.2.1 添加试题 因为试题库是由单选题、多选题、判断题、填空题和综合题五种类型的题目组成,所以试题库试题的添加也分成五个添加页面,分别是“单选题添加”、“多选题添加”、“判断题添加”、“填空题添加”和“综合题添加”。图5-3为单选题添加页面,在此页面中,管理员可以通来两个下拉菜单选择试题要添加到的章节和试题的难度,然后在下面相应的文本区域写入试题信息,当试题信息填写完成时,单击“添加”即可进行试题的添加。此处的添加是一条条记录的形式向数据库中写入试题信息。其他如“多选题添加”、“判断题添加”和“填空题添加”类似“单选题添加”页,此处就不给予介绍。图5-3 添加单选题图5-4 添加多选题上图5-4是综合题添加页面,这个页面主要不同其他几个添加页面之处在于这里添加了一个形如Word文档编辑器的控件,这里增加这个控件的主要目的是为了输入特殊字符和各种表达式。例如各种数学表达式,公式,数学符号等,有这个控件有利于综合试题信息的添加,使网络化考试更接近纸面化考试。5.2.2 修改试题同添加一样,修改试题模模块也有五个页面组成。如下图5-5是单选题修改页面,在页面中可以找到一条红线,红线的上半部分可以用来确定你要修改试题的位置,换言之,就是能找到所在修改的试题。在两个下拉列表框中选择试题所在的章节,和试题的难度,单击“确定”按钮,下面就可以显示出所选章节和难度的试题总数,并在红线下方显示第一题试题信息,可以通过“下一题”和“上一题”按钮查看下一题或上一题直到末尾,还可在转到后面的文本框中填写在转到第几题,再点击“GO”按钮跳转相应的试题。在红线下面的下拉列表框中选择把试题修改到那个章节和进行难度调整,在下面各文本框中对试题信进行修改。图5-5 修改单选题在对试题信息修改之后,务必点击“修改此题”按钮,再接着去修改另外一题,在修改试题结束时,务必单击“修改完成”,这样就可以保存修改结果。因为系统算法是把满足条件的试题选出来放入到一个数据表(DataTable)中,当修改完一个试题的信息后点击修改此题按钮只是把修改后的信自己写入到数据表(DataTable)中,下面是他的源代码:DataRow myrow=mytable.Rowsi;myrow.BeginEdit();/开始修改行中数据myrowquestion=txtquestion.Text;myrowhelp=txthelp.Text;myrowtkey=select.SelectedValue;myrowaddtime=DateTime.Now.ToString();myrowA=txtselectA.Text;myrowB=txtselectB.Text;myrowC=txtselectC.Text;myrowD=txtselectD.Text;myrowchapter=chapter1.SelectedValue;myrowdif=dif1.SelectedValue;myrow.EndEdit();/修改行结束同样在修改完成后单击“修改完成”是为了将修改过的数据表(DataTable)中的数据推进到数据库中,这样就完成了试题的修改,在没有点击修改完成就退出了该页,那么修改是不成功的。其他如“多选题修改”、“判断题修改”、“填空题修改”、“综合题修改”页面也是同样的道理,操作步骤也是一样。5.2.3 删除试题 类似于修改和删除页面,这个模块也由五个页面组成,分别对填空题、判断题、单选题,多选题,综合题进行删除操作。如下图5-6是单选题删除页面。此页面中可以通过下拉列表框选择要删除的试题所在的章节和难度,单击“确定”,下面的表格中显示出满足条件的所有单选题。在表格中,能看到试题的一部分信息,如要查看试题详细信息,点击“查看”,就可以查看试题的详细信息。如果要删除试题,选中要删除的试题前的单选按钮,如果要一次删除多个也可以选中多个单选框,单击“删除试题”按钮,即可对选中试题进行删除。图5-6 删除单选题下面是删除试题按钮的操作源代码:int j=0;for(i=0;iDataGrid1.Items.Count;i+)/对数据表中的数据行进行遍历DataGridItem item=DataGrid1.Itemsi;CheckBox select=(CheckBox)item.FindControl(CheckBox1);if(select.Checked)/找到选中行DataRow myrow=ds.Tables0.Rowsi;myrow.Delete();/删除选中行j+;if(j=0)config.Alert(请选择您要删除的题目!,Page);updatetest delete=new updatetest();delete.desingle(ds.Tables0);BindGrid();for(i=0;i0;i-)/dif1是填空题较易题型的个数 while(true)if(!selectrow.Contains(Row)/判断行Row是否民被选出break;Row=r.Next(rownum);selectrow.Add(Row);DataRow findrow=tkTb.RowsRow;DataRow addrow=tktempTb.NewRow();addrowquestion=findrowquestion;addrowtkey=findrowtkey;tktempTb.Rows.Add(addrow);/把满足条件的试题加入到数据表中同理,其他类型的题型也按照同样的方法产生。在所有的试题生成以后,就要把存入数据表中的内容用arr数组来存贮,下面是源代码:(以产生填空为例)arr.Add(new PositionData(填空题(+tkscore+分+tknum+个); for(int m=0;mtktempTb.Rows.Count;m+)/显示符合要求的填空试题int b=m+1;DataRow myrow=tktempTb.Rowsm;arr.Add(new PositionData(+b.ToString()+.+myrowquestion.ToString();arr.Add(new PositionData();显示试卷是用Repeater控件示出来的,把存放试题的arr数级做为Repeater控件的数据源,这样试卷就显示出来了。在生成试卷的同时,系统还把试卷以Word文档的形式保存下来。系统写Word的方式是程序控制的方式。在类CCWordApp.cs中定义了要生成Word文档所要用到的Word宏的函数。写Word实际上是调用Word宏来实现的。试卷生成时把试卷的保存路径存入到数据库,点击“保存试卷”实际上是跳转到Word文档,例如Response.Redirect(docpath);。下面是系统写Word源代码:CCWordApp ccw=new CCWordApp();ccw.Open();ccw.SetAlignment(Center);ccw.SetFontSize(18);ccw.InsertText(testname);ccw.InsertLineBreak();ccw.SetAlignment(Center);ccw.SetFontSize(14);ccw.InsertText(专业名称:);ccw.InsertText(zhuanyename);ccw.InsertText( 考试类型:);ccw.InsertText(testmode);ccw.InsertText( 考试时间:);ccw.InsertText(testtime);ccw.InsertLineBreak(2);if(tktempTb.Rows.Count0) ccw.SetFontSize(14);ccw.SetAlignment(Left);ccw.InsertText(填空题(+tkscore+分+tknum+个);ccw.InsertLineBreak();for(int i=0;itktempTb.Rows.Count;i+)ccw.SetFontSize(12);ccw.SetAlignment(Left);int b=i+1;DataRow myrow=tktempTb.Rowsi; ccw.InsertText(b.ToString()+.+myrowquestion.ToString();ccw.InsertLineBreak();ccw.SetLeftIndent(14);ccw.InsertText( 答案:+myrowtkey.ToString();ccw.InsertLineBreak();docpath=;docpath=test/+testname+.doc;ccw.SaveAs(Server.MapPath(docpath);ccw.Quit();5.3.4 删除试卷删除试卷操作与删除试题库中试题操作相似,参照上面删除试题操作即可。不同的是删除试卷不仅要删除试题库中的关于选中的某个试卷的记录,还要删除在组卷时生成的Word文档。这里用到了一个文件操作,在引用中添加一个using system.IO,在删除每一个行时间同时删除与这个试卷记录相关的那个Word文件。下面是删除试卷按钮的主要代码:int j=0;for(i=0;iDataGrid1.Items.Count;i+)DataGridItem item=DataGrid1.Itemsi;CheckBox select=(CheckBox)item.FindControl(CheckBox1);if(select.Checked)DataRow myrow=ds.Tables0.Rowsi;string docpath=myrowdocpath.ToString();File.Delete(Server.MapPath(docpath);myrow.Delete();j+;if(j=0)config.Alert(请选择您要删除的题目!,Page);updatetest delete=new updatetest();delete.detest(ds.Tables0);BindGrid();5.4 在线练习模块 在线练习部分分为章节练习和综合练习两个部分。如下图5-11是章节练习页面,在此页面中用户可以根据自己的学习情况选择想练习的章节、练习的题型、练习难度和题目的个数,再点击“开始练习”按钮,系统开始按用户选择和输入的条件生成练习试题。如图5-12是用户练习页面,此页面中用户可以进行答题,用户可以把答案填写在右边的答题表中,在用户答题完成之后用户可以点击“显示答案”,就可以看到参考答案,系统还可以把用户答案和试题库中的参考答案进行比较,判断用户答案的对错,并给出标记,有于用户看到自己的答案情况。图5-11 章节在线练习 在线练习的试题的生成方式和组卷系统的类似,也是先获取要选出题的个数,然后利用产生随机行的方法获得试题,再把行号加入到一个数组,下次抽取的行号在此数组中就丢弃,如不在就选取该题,这样也是为了保证抽到的试题是不一样的,这样可以保证一份练习题中不会出现相同的题目。图5-12 章节在线练习答题 综合练习页面也和章节练习相似,在页面中可以选择练习的难度,系统再根据设定好的题型生成试题。也可以点击“查看答案”可以看到该试题的详细情况,包括试题参考答案和解析。6 系统实现遇到的问题及解决方案在系统实现的过程中遇到了各种各样的问题,这些问题有些是人为因素的原因,有些是没有掌握相应的技术方法的原因。下面是系统在实现过程中遇到的一些主要影响系统设计进度的问题:问题1:系统登陆成功时不能提示用户和用户没有权限时不提示的问题。解决方案:系统在用户输入用户名和密码之后登陆成功不能提示用户登陆成功而直接返回首页,经研究发现是因为受Response.Redirect(index.aspx);语句的限制只能直接跳转,后来选择一种弹出对话框的方法,config.Confirm(登陆成功!,Button2,Page);语句是用来显示一个登陆成功对话框,点击“确定”之后返回首页。Button2的事件是Response.Redirect(index.aspx);。而用户没有权限时只能直接返回首页也是受Response.Redirect(index.aspx);语句的影响,经研究采用一个中间页面的方法来提示用户,下图5-13就是出现错误时的页面。图5-13 出错页面问题2:综合题添加时因加入了Word文档编辑器而导致不能进行正常数据库写入操作,这主要发生在综合题的添加修改。解决方案:问题现象是从客户端(txtquestion=FONT face=幼圆 col.)中检测到有潜在危险的 Request.Form 值,请求验证过程检测到有潜在危险的客户端输入值,对请求的处理已经中止。该值可能指示危及应用程序安全的尝试,如跨站点的脚本攻击。通过在 Page 指令或 配置节中设置 validateRequest=false 可以禁用请求验证。但是,在这种情况下,强烈建议应用程序显式检查所有输入。问题的解决办法是在Web.config文件的后面加入语句。该语句可以禁用请求证,这样就可以进行正常的数据库写入。问题3:修改和删除试题库中试题时把修改和删除后的数据表整体推进到数据库中的问题。解决方案:修改试题库中的试题是对选中试题形成的数据表的数据行进行修改,当修改完成后,点击“修改完成”是把修改后的数据表推进到数据库中,刚开始时实现此功能有很大的困难,主要找不到正确的方法写进数据库,后经研究发现,使用编者系统生成的代码能有效的把数据表推进到数据库中。因此,把修改后的数据表作为参数传给类中的函数进行处理,从面把整个修改后的数据表写入到数据库中。删除试题也和修改试题一样,也是选对数据表中的数据进行删除数据行的操作,删除数据行完成之后再把整个数据表推进到数据库中。问题4:组卷算法实现产生的问题。解决方案:最初设计组卷算法是这样设计的:从数据库中选出满足用户输入条件的试

温馨提示

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

评论

0/150

提交评论