收藏 分享(赏)

(Web模式下基于数据库组卷模块设计).doc

上传人:知识的力量 文档编号:6360422 上传时间:2022-08-03 格式:DOC 页数:31 大小:1.93MB
下载 相关 举报
(Web模式下基于数据库组卷模块设计).doc_第1页
第1页 / 共31页
(Web模式下基于数据库组卷模块设计).doc_第2页
第2页 / 共31页
(Web模式下基于数据库组卷模块设计).doc_第3页
第3页 / 共31页
(Web模式下基于数据库组卷模块设计).doc_第4页
第4页 / 共31页
(Web模式下基于数据库组卷模块设计).doc_第5页
第5页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、 . . . - 1 - / 31本本科科毕毕业业论论文文(设设计计)征心系统设计征心系统设计学生学生:智高帆梁亮林松涛XXX学号学号:091542228091542226091542237091542227系部系部:计算机科学与技术专业专业: 信息管理与信息系统指导教师指导教师: 钟雪灵提交日期提交日期: 2012 年 06 月 25 日2008-JX16-2008-JX16-金融学金融学院院 注:教师 XX 后留有一个空格,后面填写教师职称。下面加下划线。阅后删除此文本框。 . . . I / 31摘摘 要要随着高校考试制度改革的不断深化与网络技术的飞速发展, 试题库管理系统越来越受到广大

2、高校和教师的青睐。试题库管理系统的主要功能包括试题管理和试卷管理,其中试卷管理的核心是试卷生成。试卷生成具有手工组卷和自动组卷两种方式,自动组卷是在已有题库的基础上,按照考核目的,在若干预设的条件下,按一定算法生成一份满足要求的试卷。本文在认真分析和总结现有各类试题库系统优点和不足的基础上,根据省精品课程规在网络课程方法的基本精神,设计并实现了基于B/S 模式的Web 试题库组卷系统。同时,为提高系统的运行效率,试题库系统采用LINQ TO SQL操作数据库,引入遗传算法的全局优化功能,在预先给定的约束条件下,正确、高效地组卷,并采用微软的Silverlight技术在网页中显示出来。关键词:自

3、动组卷;题库管理; Silverlight;LINQ;WebAbstractAbstractAlong with the university examination system reform unceasing deepening and the networking rapid development, tries the question bank management system more and more to receive the general universities and teachers favor.Tries the question bank managemen

4、t system the main function including the test question management and the examination paper management, in which examination paper management core is the examination paper production.The examination paper production has the hand work team or group volume and the automatic group volume two ways, the

5、automatic group volume was in had in the question bank foundation, according to inspection goal, in if intervened under the condition which supposed, produced one according to certain algorithm to satisfy the request the examination paper.This article is analyzing earnestly with the summary existing

6、 . . . II / 31each kind tries in the question bank system merit and the insufficient foundation, according to the Guangdong Province high-quality goods curriculum standard in the network curriculum method basic spirit, designed and realizes has tried the question bank group volume system based on B/

7、S pattern Web.At the same time, for enhances the system the operating efficiency, tries the question bank system to use LINQ TO the SQL operation database, the introduction genetic algorithm global optimization function, in assigns in advance under constraint condition, correct, highly effective gro

8、up volume, and uses Microsofts Silverlight technology to demonstrate in the homepage.KeyKey WordsWords:Automatic test paper;Question Bank Management;Silverlight; LINQ; Web . . . I / 31目目 录录摘要摘要IAbstractII1 1、绪论、绪论- 1 -1.1 课题的研究背景和意义- 1 -1.2 国外研究现状- 1 -1.3 选题研究容- 2 -2 2、需求分析、需求分析- 2 -2.1 功能分析- 2 -2.2

9、 技术分析- 3 -3.3.总体设计总体设计- 4 -3.1 系统的功能模块- 4 -3.2 主要模块基本流程图- 4 -3.2.1 组卷模块- 4 -3.2.2 试题管理模块- 5 -3.2.3 试卷管理模块- 5 -3.3 系统功能描述- 6 -3.3.1 登录模块- 6 -3.3.2 系统管理模块- 6 -3.3.3 考点管理模块- 6 -3.3.4 试题管理模块- 6 -3.3.5 组卷管理模块- 6 -3.3.6 用户操作模块- 7 -3.4 数据库设计- 7 - . . . II / 313.4.1 用户表设计- 7 -3.4.2 角色表设计- 8 -3.4.3 用户角色表设计-

10、8 -3.4.4 权限表设计- 9 -3.4.5 角色权限表设计- 9 -3.4.6 知识点表设计- 9 -3.4.7 试题表设计- 9 -3.4.8 试卷表设计- 10 -3.4.9 题型表设计- 11 -3.4.10 试题操作记录表设计- 11 -4.4.详细设计与实现详细设计与实现- 12 -4.1 开发环境与技术选择- 12 -4.2 系统架构- 13 -4.3 主要功能设计与实现- 14 -4.3.1 试题添加功能- 14 -4.3.2 试题修改删除功能- 15 -4.3.3 自动组卷功能- 15 -4.3.4 手工组卷功能- 17 -5.5. 毕业设计心得与收获毕业设计心得与收获-

11、 17 -参考文献参考文献- 19 -致致- 20 -附录系统使用说明附录系统使用说明- 21 - . . . - 1 - / 31WebWeb 模式下基于数据库的组卷模块设计模式下基于数据库的组卷模块设计1 1、绪论、绪论1.1 课题的研究背景和意义一直以来, 我国高校和社会上的各种考试大都采用传统的人工出卷方式。显然, 人工出卷存在着种种弊端,譬如自教自考、所考的知识点不全面、考前漏题等,同时试卷的编辑、整理占了很大的工作量,造成了很大的时间和人力资源浪费。随着考试制度改革的不断深化和网络技术的逐步完善,用 Web 试题库系统代替传统的人工出卷方式,已成为高校和社会上各种考试发展的趋势。当

12、前, 很多研究人员进行了试题库组卷系统的研究,也开发出了不少组卷系统,促进了试题库组卷系统的发展。然而,目前的试题库组卷系统仍存在着一些普遍的问题,如性能分析功能不强、组卷速度慢、试题的公式与图片录入往往需要专业人员的操作才能完成,极大的阻碍了智能组卷系统的发展。针对当前系统的开发现状和不足。本文设计了一个 Web 模式下基于数据库的组卷系统,该系统是结合 Silverlight 和 LINQ 技术开发的 Web 应用程序。与其他系统相比,本系统有很多明显的优点:一是系统具有扩展性强的特点, 不需要修改程序代码即可适用于其他科目;二是系统采用微软最新的 RIA 技术 Siverlight,达到

13、一个丰富的媒体体验和交互式应用。三是同时支持自动组卷和手工组卷两种方式,用户可根据需要自行选择;同时,系统还具有完善的用户、角色权限的管理功能,以确保试题库的安全运行。1.2 国外研究现状国外对题库系统的设计做过比较详尽的研究和探讨。早在 1968 年 IBM 公司和美国洛杉矶学区共同开发的一个 CTSS (Classroom Teacher Supporting System),CTSS系统最初用于管理一个美国历史题库。后来,加利福尼亚州开发了一个称为 SOCRATEB CATC 系统,专为加利福尼亚州 19 个州立大学中的 1.6 万名教师和 29 万学生服务。随后,题库系统的研究发展迅猛

14、,研究也逐渐深入。历经 40 余年的发展,国外许多大型教育机构、地方教育部门、高等院校以与工业和专业资格认证机构都对题库构建、试卷编制等进行过各种研究。目前,题库系统已经在国外得到了广泛的应用。 . . . - 2 - / 31最近几年,我国的题库研究和应用发展活跃。华东师大学、师大学、师大学等高校都有人在进行教育测量理论应用于题库建设方面的研究。师大电子系完成的七五科技攻关项目中的子项目“通用试题库生成系统的研究”通过由机电部组织的技术鉴定;清华大学和理工大学分别主持完成了高校工科“大学物理”和“高等数学”两门课程的试题库系统。另外,随着计算机在国普与和应用,题库系统在我国的应用也越来越广泛

15、,很多地方和高校结合自身的需求,纷纷建立自己试题库,题库系统的研究已经成为近年来教育系统中一个十分引人注目的课题。虽然目前存在很多试题库管理系统,但其中仍存在不少问题。这些问题主要表现在以下几个方面:(1)自动组卷速度慢。究其原因是组卷策略不恰当。有些试题库为了设计简单而选取了随机抽取法或回溯试探法。然而这两种算法都存在较大的缺陷,组卷的效率和质量都很难令用户满意,所以必须寻求另外的解决方案。(2)系统的通用性差。很多试题库管理系统只是面向个别学科或者某些公共学科,若要适应其他学科则必须经过比较大的改动或者根本行不通。(3)很多试题库管理系统为 C/S 模式甚至是单机版。用户若要使用试题库则必

16、须安装相应的软件,无论是对用户的使用或者系统的更改或升级都是很不方便的。(4)组卷模式单一。在众多试题库系统中,有不少是只支持手工组卷或者是自动组卷后不能修改的,这给用户的选择比较少,而且也不灵活。1.3 选题研究容本课题研究的系统主要面向教师,目的旨在设计一个在 B/S 模式下,基于数据库,能够在线管理题库并能采用某种组卷策略从数据库里抽取适当的试题并组成一份试卷,最后在网页上显示出来的系统。2、需求分析2.1 功能分析根据用户的使用需求,本系统的主要功能有:1、教师可以选择手工组卷或者自动组卷。在自动组卷方面,教师只要输入试卷的一些约束条件即可进行自动组卷,为了保证组卷的高效性和正确性,必

17、须采用适当的组卷算法进行组卷。对于手动组卷,则要做到用户能够方便的选择试题。 . . . - 3 - / 312、试题管理。试题管理主要体现在试题的增删改查,在试题录入方面,系统为不同的题型提供不同的模板,用户只须根据提示录入相应的题目容即可把题目添加到数据库;试题的修改和删除均建立在试题的检索之上,用户可根据条件查询出相应的试题,然后根据需要修改或删除试题。3、组卷模块通用性。通用性同样是组卷模块要解决的一个重要问题,系统应该不经修改或稍加修改即可得到很好的扩展已适应不同科目的要求,以保证使用价值。同时,也要能非常方便的嵌入到其他考试系统中。4、用户的角色权限管理。系统采用了基本的权限管理机

18、制,每个用户都属于某个角色,每个角色会拥有对试题的若干权限,以保障系统的信息安全。5、试卷的显示。用户可以预览当前生成的试卷或者已保存的试卷。2.2 技术分析本系统的开发环境为 Windows 7 + Microsoft Visual Studio 2008 + Microsoft Expression Blend3 + MicrosoftSQL Server 2005。这在本文的总体设计和详细设计中会有详细介绍。题库系统在构建过程中需要解决一些问题,例如,自动组卷的算法选择,算法的选择决定组卷的效率和质量。随机组卷法和回溯试探法是目前使用比较多的两种,但这两种算法都有很大的缺陷。随机选取法是

19、利用计算机提供的随机函数或随机量,根据组卷状态空间的约束条件,不断抽取符合约束条件的试题放入试卷中,直到组卷成功,或再也无法从题库中抽取满足控制指标的试题为止。这种算法对于单个实体的抽取速度快,但对于整个组卷过程来说组卷成功率较低,花费时间长。回溯试探法是将随机选取法产生的每一状态都记录下来,当搜索失败时释放上次记录的类型,然后再依据一定的规律(正是这种规律破坏了选取试题的随机性)变换一种新的状态类型进行试探,通过不断的回溯试探直到试卷生成完毕或退回出发点为止。对于状态类型和出题量都较小的题库系统而言,组卷成功率较好。但是在实际到一个应用时发现这种算法对存的占用量大,程序结构相对比较复杂,而且

20、选取试题缺乏随机性,组卷时间长,因此它不是一种很好的用来自动组卷的算法。对于这些缺陷,用户通常是无法接受的。基于上述分析,本系统采用了当今公认比较好的组卷算法遗传算法,遗传算法是一种模拟自然选择和自然遗传机制的随机优化算法,其具有并行性、通用性、自 . . . - 4 - / 31适应性、全局优化性和收敛速度快的特点。3.总体设计3.1 系统的功能模块系统功能如图 3.1 所示。试题库管理系统系统登录系统管理试题管理组卷管理用户操作用户管理考点管理新增用户角色管理权限管理考点新增修改试题添加试题修改试题删除试题检索自动组卷修改密码单选题多选题填空题简答题论述题上机题手工组卷试卷管理注销登出系统

21、图 3.1 系统功能模块图3.2 主要模块基本流程图系统的主要模块为组卷模块,试题管理模块,试卷管理模块,这几个模块的流程图如下所示:3.2.1 组卷模块组卷模块的基本流程图如图 3.2 所示: . . . - 5 - / 31图 3.2 组卷模块流程图3.2.2 试题管理模块试题管理基本流程如图 3.3 所示:图 3.3 试题管理基本流程图3.2.3 试卷管理模块试卷管理基本流程如图 3.4 所示:YN登录试卷管理自动组卷手动组卷加载题目输入试卷属性选择题目,设置题型分数注:自动组卷失败是指有一个或多个约束条件不能满足。预览保存试卷自动组卷开始成功NY登录试题管理检索试题添加试题输入属性保存

22、试题输入条件存在试题修改删除 . . . - 6 - / 31图 3.4 试卷管理基本流程图3.3 系统功能描述如图 3.1 所示,交互式题库系统包括以下几个功能模块:3.3.1 登录模块用户必须登录后才能使用系统的功能,题库系统为用户设立账号,以确保题库系统的安全性。3.3.2 系统管理模块系统管理模块主要管理用户的角色权限,每个用户都属于某个角色,每个角色都有若干权限,管理员可以新增或者删除角色,或者更改角色的权限,以达到用户权限的高效、统一管理。此模块只有管理员能够进入操作。3.3.3 考点管理模块用户可以新增或者更改考点。3.3.4 试题管理模块试题管理模块主要是试题增删改查的实现,新

23、增试题方面,系统为六种题型(即单选、多选、填空、简答、论述、上机操作)提供不同的模板,录入时只需输入与题目有关的必要容即可把题目保存到数据库。试题检索方面,系统为用户提供了多个条件的筛选,用户根据某个条件或多个条件的组合来检索试题,试题检索完成后,用户可以根据需要修改或者删除题目。3.3.5 组卷管理模块组卷模块是系统的核心功能模块,用户可以选择手工组卷和自动组卷。手工组卷的目的是为了更好的定制试卷,而自动组卷则是只要用户输入必要的限制条件,系统就会自动组合出满足条件的试卷,自动组卷完成后,用户还可以更改个别试题。试卷的修改和删除和试题管理的设计类似,都须先查询出相应的试卷然后进行修改删除操N

24、Y登录试卷管理检索试卷卷输入条件存在试卷修改删除 . . . - 7 - / 31作。3.3.6 用户操作模块用户可在此模块修改账号密码以与相关的个人信息。3.4 数据库设计本系统使用 Microsoft SQL Server 2005 作为后台数据库,Microsoft SQL Server 2005 以其安全性,扩展性,易用等多个优点著称。在数据库建模方面,采用的是 PowerDesigner,PowerDesigner 提供了一个完整的建模解决方案,通过多次的修改,数据库的关系如图 3.5 所示:图 3.5 数据库的关系图3.4.1 用户表设计本系统为 B/S 模式,用户表主要记录用户的

25、登录和个人信息,用户表的设计如表3.1 所示。 . . . - 8 - / 31表 3.1 用户表(DF_TeaInfo)字段名类型长度主键约束说明IDInt,not null是标识增量用户 IDDIdInt, null否系别 IDNameNvarchar(20),not null20否GenderNvarchar(2),not null2否性别LoginIdNvarchar(50),not null50否登录PasswordNvarchar(50),not null50否密码UserGroupIdNvarchar(20),null20否用户组AdminGroupNvarchar(20),nu

26、ll20否管理组TimeStampdatetime否修改时间3.4.2 角色表设计每一个记录代表一个角色组。角色表的设计如表 3.2 所示。表 3.2 角色表(YZF_Role)字段名类型长度主键约束说明IDInt,not null是标识增量角色 IDRoleNameNvarchar(20), null20否角色名TimeStampdatetime否修改时间3.4.3 用户角色表设计用户角色表的设计旨在为每个用户都分配一个角色,通过查询用户角色表即可知道用户所属角色。用户角色表的设计如表 3.3 所示。表 3.3 用户角色表(YZF_UserRole)字段名类型长度主键约束说明IDInt,no

27、t null是标识增量用户角色 IDUserIDInt,not null否外键用户 IDRoleIDInt,not null否外键角色 IDTimeStampdatetime否修改时间 . . . - 9 - / 313.4.4 权限表设计系统允许设置不同的用户权限,权限表的设计如表 3.4 所示。表 3.4 权限表(YZF_Right)字段名类型长度主键约束说明IDInt,not null是标识增量权限 IDRightNvarchar(20), null20否权限名TimeStampdatetime否修改时间3.4.5 角色权限表设计角色权限表的设计旨在为每个角色分配不同的权限。角色权限表的

28、设计如表 3.5所示。表 3.5 角色权限表(YZF_RoleRight)字段名类型长度主键约束说明IDInt,not null是标识增量用户角色 IDRoleIDInt,not null否外键角色 IDRightIDInt,not null否外键权限 IDTimeStampdatetime否修改时间3.4.6 知识点表设计知识点表记录课程的每个知识点,由于知识点一般都有上级知识点,所以设置FatherID 字段以标识上级知识点,也方便在 treeview 等树形控件中呈现。知识点表的设计如表 3.6 所示。表 3.6 知识点表(YZF_PointID)字段名类型长度主键约束说明IDInt,n

29、ot null是标识增量用户角色 IDNameNvarchar(50),not null否角色 IDFatherIDInt,not null否父知识点 IDTimeStampdatetime否修改时间3.4.7 试题表设计 . . . - 10 - / 31试题表的设计是数据库设计的主要部分。每一道试题都其唯一的编号,该编号在试题录入时自动生成。为了简化数据库的设计,所有题型的题目都保存在一个表上,其中 ID,PointID,TypeID,Context,Level,Differential,Time,Count,Keywords 和TimeStamp 为公共属性,Selections 和 A

30、nswer 字段只有单选题和多选题才有值,File 字段只有上机操作题才有值。试题表中比较关键的属性是 Level 字段和Differential 字段,其中 Level 字段代表的是试题的难度系数,通常用未通过率来表示,即一次考试中未答对某道试题的考生数在其总体中所占的比例。一般来说,难度系数值为 0.5 时,是中等难度,如果小于 0.3 试题太简单,如果大于 0.7 试题太难,如果考生都会做或都不会做,则难度系数为 0 或为 1。 Differential 表示试题的区分度,指某道题对不同水平考生加以区分的能力,区分度高的试题,对学生水平有较好的鉴别力。试题表的设计如表 3.7 所示。表

31、3.7 试题表(YZF_Question)字段名类型长度主键约束说明IDInt,not null是标识增量试题 IDPointIDint,not null否外键知识点 IDTypeIDInt,not null否外键题型 IDContextNvarchar(max),not null4000否试题,RTFFileNvarchar(200), null200否文件LevelReal,not null否难度系数DifferentialReal,not null否区分度TimeInt,not null否作答时间CountInt,not null否默认 0出现次数AnswerNvarchar(50),n

32、ull50否答案KeyWordsNvarchar(50),not null50否关键字SelectionsNvarchar(500),null500否选项TimeStampdatetime否修改时间3.4.8 试卷表设计试卷表保存手动组卷或自动组卷的每份试卷,Context 保存试题以与每种题型的分数,其值是一个 XML 结构的字符串,Level 难度系数的计算公式是: . . . - 11 - / 31P=DiSi/Si;其中i=1,2,.N,N是试卷所含的题目数,Di,Si分别是第i题的难度系数和分数。试题表的设计如表 3.8 所示。表 3.8 试卷表(YZF_Examination)字段

33、名类型长度主键约束说明IDInt,not null是标识增量试卷 IDTotalValueint,not null否总分TotalTimeInt,not null否总作答时间Levelreal,not null否难度系数ContextNvarchar(max), null4000否试题IsCreateByTchbit,not null否创建者TitleNvarchar(50),not null50否试卷标题TimeStampDatetime,null否修改时间GenerateTimeDatetime,null否getdate()生成时间3.4.9 题型表设计题型表的每个记录代表一种题型,系统不

34、能修改此表,只能通过数据库新增记录。题型表的设计如表 3.9 所示。表 3.9 题型表(YZF_Type)字段名类型长度主键约束说明IDInt,not null是标识增量题型 IDNameNvarchar(20), null20否题型名称3.4.10 试题操作记录表设计用户对试题的每一个操作(增,改,删)都将被记录在此表。试题操作记录表的设计如表 3.10 所示。表 3.10 试题操作记录表(YZF_Log)字段名类型长度主键约束说明IDInt,not null是标识增量记录 IDQuestionIDInt,not null否外键约束试题 ID . . . - 12 - / 31UserIDI

35、nt,not null否外键约束用户 IDTimeDatetime,not null否Getdate()操作试卷OperationNvarchar(10),not null10否Delete,modify,add操作类型4.详细设计与实现4.1 开发环境与技术选择本系统的开发环境是基于 Windows 7 操作系统,采用 Microsoft Visual Studio 2008 + Microsoft Expression Blend3 编程工具开发,后台数据是 Microsoft SQL Server 2005,采用的查询语言是 SQL。为了让用户有丰富的媒体体验和交互式应用,本系统选择微软

36、力推的 RIA 技术Silverlight,在数据操作方面,采用的是 LINQ 技术。微软 Silverlight 是一个跨浏览器、跨客户平台的技术,能够设计、开发和发布有多媒体体验与富交互(RIA,Rich Interface Application)的网络交互程序。因为 Silverlight 提供了一个强大的平台,能够开发出具有专业图形、音频和视频的 Web 应用程序,增强了用户体验,所以 SilverLight 吸引了设计人员和开发人员的眼球。同时,Silverlight 还提供了强大的工具来提高他们的工作效率。Silverlight 能创建一种具有很高艺术性的应用程序,具有以下的特点

37、:(1(一种跨浏览器、跨平台的技术。可以在所有流行的浏览器中运行;(2(无论在哪运行,都能提供一致的用户体验;(3(只需要下载很小的文件,以安装支持;(4(它的视频和音频流,视频质量无论从移动设备还是桌面浏览器都是 720p HDTV video 模式;(5(用户可在浏览器中直接对其进行控制,可以拖动、翻转、放大的图片;(6(它读取数据并且更新外观,但不会通过刷新整体页面来打断用户操作。语言集成查询 (LINQ) 是一组技术的名称,这些技术建立在将查询功能直接集成到 C# 语言(和可能的任何其他 .NET 语言)中。借助于 LINQ,查询现在已是高级语言构造,就如同类、方法、事件等等。LINQ

38、 最明显的“语言集成”部分是查询表达式。查询表达式是使用 C# 3.0 中引入的声明性查询语法编写的。通过使用查询语法,我们可以使用最少的代码对数据源执行复杂的筛选、排序和分组操作。同时使用 . . . - 13 - / 31一样的基本查询表达式模式来查询和转换 SQL 数据库、ADO.NET 数据集、XML 文档和流以与 .NET 集合中的数据。4.2 系统架构系统采用的架构是经典的 Web 三层架构,所谓的三层架构,即数据访问层,业务逻辑层,还有表现层。以往采用 Web 三层开发需要建立相应的类库,诸如实体类类库,数据库工具类库等,这样是相当费时费力的,即使有了第三方的自动生成工具,也要作

39、大量的修改。所以我借助 LINQ 提供 LINQ TO SQL 设计器,只要设置好数据源,然后在可视化界面直接把表拖动到 LINQ TO SQL 设计器,设计器就会自动检测主外键等约束关系,然后为每个表建立实体类并建立关系,并封装了每个表的 CRUD 方法,从而完成了数据访问层的工作。在业务逻辑层,由于 Silverlight 不能直接读取数据库,所有与数据库的交互都必须通过 WebService、WCF 或 RIA Service 等方法间接访问,最后选择相对简单的 WebService 来充当业务逻辑层,之所以不再新建一个业务逻辑类库,是因为假如再把业务逻辑方法封装在一个类库里,那业务方法

40、的调用过程就是从表现层调用 Webservice 方法,Webservice 再调用业务类库的方法,那就显得太多余了,所以我把业务逻辑层都放在一个 Webservice 里,在 Webservice 里,我实例化了一个 Datacontext 对象,DataContext 对象管理着当前处理的数据库中的所有事务,每一个业务逻辑方法都要用到 Datacontext 对象以操作数据库。最后在 Silverlight中调用 Webservice 来完成对数据库的操作。系统架构如图 4. 1 所示: . . . - 14 - / 31图 4.1 系统架构图4.3 主要功能设计与实现主要介绍试题添加功能

41、、试题修改删除功能、自动组卷功能、手动组卷功能以与试卷修改删除功能的设计和实现方法。4.3.1 试题添加功能本功能完成的功能是把题目录入到数据库。不同的题型录入需要不同的模板,每个模板对应一个页面。所有的题目添加都必须选择知识点,输入题目,难度,区分度,作答时间和关键字,除此之外,单选题和多选题还必须输入 ABCD 四个选项和答案,而上机题则必须上传有关文件。其中知识点选择是通过一个 Combox 控件选择的,页面加载时,首先实例化一个 Webservice 实例,为 GetAllPointsCompleted 和SaveQuestionCompleted 事件注册方法,然后调用 Webser

42、vice 的GetAllPointsAsync()方法从数据库异步读取所有知识点,当数据读取完成后加载到相应的知识点下拉列表。由于试题容可能存在图片或者其他信息,所以系统采用Richtextbox 来作为试题的编辑器,这是由于 Richtextbox 支持 RTF 富文本格式,使试题不但能够插入图片,而且文本容还能设置不同的样式,最后保存在数据库也是以rtf 文本格式保存。文件上传方面,也是通过 Webservice 完成的,首先选择要上传的文件,然后创建上传文件的只读 Filestream,然后从读取 Filestream 里所有的字节 . . . - 15 - / 31序列,最后调用 We

43、bservice 的相应方法上传到服务器。输入完所有必要属性后,点击提交按钮,系统会检查所有的试题属性值是否符合要求,只有全部都符合要求时才能新增题目。例如新增单选题时如图 4.2 示:图 4.2 单选题新增图4.3.2 试题修改删除功能试题修改和删除都须先进行试题的检索才能操作。用户只需输入知识点,题型,难度,关键字等多个条件的某个或多个组合就能从数据库检索出相应的题目,然后在DataGrid 控件上显示,DataGrid 控件的每一行代表一条试题记录,每一行都会有一个删除和修改按钮以操作试题。试卷的修改通过弹出窗口进行,当点击修改按钮后,系统会自动获得所要修改的题型,然后加载相应的修改模板

44、进行编辑,修改完成后,系统更新题库并在网页上显示出来。试题删除的实现方法是当用户点击删除按钮的时候,系统会把 DataGrid 该行的数据实体传递给 WebService,然后根据该实体删除数据库的相应试题,用户也可以选择多条试题批量删除,若有试卷关联着试题,则会报错,并提示出错试题关联的试卷号。界面如图 4.3 所示: . . . - 16 - / 31图 4.3 题库管理图4.3.3 自动组卷功能自动组卷是系统的核心,用户只须输入难度,作答时间,各个题型的题数和分值,所考知识点,然后点击生成即可调用相应算法从数据库中抽取试题组合试卷,系统采用的组卷策略是遗传算法,遗传算法是模拟达尔文的遗传

45、选择和自然淘汰的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法,它用于解决多约束条件下的最优问题。遗传算法有三个基本操作:选择、交叉、变异。这些操作又有不同的方法来实现。(1)选择。选择用于确定在下一代种群有哪些个体组成,选择的依据是个体的适应度,即首先计算每个个体的适应度,然后以概率方式选择适应度较好的个体进入下一代种群。通过选择操作,父代中的个体与由交叉和变异形成的新个体中,适应度好的个体能以较高的概率存活下来。(2)交叉。交叉是指父代中的两个个体之间进行基因片断的交换,基因片断在染色中的位置和长度的选择是随机的。通过交叉操作,可以将多个体中的优秀片断进行重组,形成适应

46、度更优的个体。(3)变异。交叉之后子代经历的变异,实际上是子代基因按小概率扰动产生的变化。依据个体编码表示方法的不同,主要包括实值变异和二进制变异两种方法。自动组卷流程分别对应遗传算法的三个基本操作,首先调用 . . . - 17 - / 31make_begin_recordset()函数产生初始种群并对初始种群执行一次交叉和变异操作,种群的每一个个体代表一份试卷,试卷初始种群不是采用完全随机的方法产生,而是根据题型比例、总分、知识点不重复、不考章节等要求随机产生,使得初始种群一开始就满足了题型、总分和知识点等要求,这样可加快遗传算法的收敛并减少迭代次数。在编码方面,采用实数编码,以克服以往

47、采用二进制编码搜索空间过大和编码长度过长的缺点,同时取消了个体的解码时间,提高了求解速度。然后进入选择操作,在选择之前,首先调用 product_wheel()函数,其作用是根据适应度生成轮盘表,然后调用 choose_arithmetic_operators()函数进入选择过程,选择过程主要根据试卷个体的适应程度决定试卷在下一代是被淘汰还是被复制,选择过程结束后,然后调用cross()函数进入交叉过程,由于在编码时采用的是分段实数编码,所以在进行交叉时采用分段单点交叉(按题型分段来进行交叉) ,整个染色体就表现为多点交叉。交叉的实现过程:将群体中的染色体任意进行两两配对,对每对染色体产生一个

48、0, 1 的随机数 r,若 rpc(pc 取值围是 0.6-0.8) ,则分段随机产生一个交叉点,然后分段进行互换以得到下一代。最后调用 mutation 进入变异过程,在遗传算法中,变异概率一般较小。这里只对某段上的某个基因进行变异。对某个染色体,随机生成一个0,1围的实数 r,若 r0.01,则对该染色体进行变异,否则不进行变异。变异的操作如下:循环读取每个题段,若变异几率 p0.01,则对该题进行变异,变异基因的选择原则与原基因题型一样。在三个基本操作完成之后,调用 save_best_policy()函数保存最优策略函数,由此循环若干(最大 200)次后,结束遗传算法,返回生成试卷。其

49、算法流程图如图 4.4 所示:图 4.4 组卷算法流程图 . . . - 18 - / 314.3.4 手工组卷功能尽管自动组卷为用户带来了极大的便利,但手工组卷仍然有它不可取代的优势,通过手工组卷,用户可以自由地确定题目,以保证试卷的质量。为了能使用户方便地进行手工组卷,系统在手工组卷页面放置了 7 个 DataGrid 控件,其中 6 个 DataGrid分别对应 6 种题型的列表,点击题型可对相应的 DataGrid 进行折叠或展开,第 7 个DataGrid 为当前已选题目列表,每选择一个题目,该题目会自动出现在已选列表上,并且统计试卷分数难度和时间。用户可以随时对试卷进行预览,最后只

50、要输入试卷标题即刻保存试卷。4.3.5 试卷修改删除功能试卷修改和删除都须先进行试卷的检索才能操作。用户只需输入试卷的难度,分数,时间,生成时间等多个条件的单个或多个组合就能从数据库检索出相应的试卷,然后在 DataGrid 控件上显示,DataGrid 控件的每一行代表一份试卷记录,每一行都会有一个删除和修改按钮以操作试卷。试卷的修改通过弹出窗口进行,试卷的修改只能修改选中试卷的标题和题型分值,修改完成后,系统更新题库并在网页上显示出来。试题删除的实现方法是当用户点击删除按钮的时候,系统会把选中的试卷号传递给相应的 WebService 方法进行删除。5.5. 毕业设计心得与收获毕业设计心得

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报