毕业论文(Web模式下基于数据库组卷模块设计).doc_第1页
毕业论文(Web模式下基于数据库组卷模块设计).doc_第2页
毕业论文(Web模式下基于数据库组卷模块设计).doc_第3页
毕业论文(Web模式下基于数据库组卷模块设计).doc_第4页
毕业论文(Web模式下基于数据库组卷模块设计).doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

本本科科毕毕业业论论文文 设设计计 征心系统设计征心系统设计 学生姓名学生姓名 刘智 曹高帆 梁亮 林松涛 XXX 学号学号 091542228 091542226 091542237 091542227 系部系部 计算机科学与技术 专业专业 信息管理与信息系统 指导教师指导教师 钟雪灵 提交日期提交日期 2012 年 06 月 25 日 2008 JX16 广东金广东金 融学院融学院 注 教师姓名后留有 一个空格 后面填写 教师职称 下面加下 划线 阅后删除此文本框 摘摘 要要 随着高校考试制度改革的不断深化及网络技术的飞速发展 试题库管理系 统越来越受到广大高校和教师的青睐 试题库管理系统的主要功能包括试题管 理和试卷管理 其中试卷管理的核心是试卷生成 试卷生成具有手工组卷和自 动组卷两种方式 自动组卷是在已有题库的基础上 按照考核目的 在若干预 设的条件下 按一定算法生成一份满足要求的试卷 本文在认真分析和总结现有各类试题库系统优点和不足的基础上 根据广 东省精品课程规范在网络课程方法的基本精神 设计并实现了基于B S 模式的 Web 试题库组卷系统 同时 为提高系统的运行效率 试题库系统采用LINQ TO SQL操作数据库 引入遗传算法的全局优化功能 在预先给定的约束条件下 正 确 高效地组卷 并采用微软的Silverlight技术在网页中显示出来 关键词 自动组卷 题库管理 Silverlight LINQ Web AbstractAbstract Along 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 teacher s favor Tries the question bank management 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 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 each 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 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 group volume and uses Microsoft s Silverlight technology to demonstrate in the homepage Key Words Automatic test paper Question Bank Management Silverlight LINQ Web 目目 录录 摘摘 要要 I Abstract II 1 1 绪论 绪论 1 1 1 课题的研究背景和意义 1 1 2 国内外研究现状 1 1 3 选题研究内容 2 2 2 需求分析 需求分析 2 2 1 功能分析 2 2 2 技术分析 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 3 4 1 用户表设计 7 3 4 2 角色表设计 8 3 4 3 用户角色表设计 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 毕业设计心得与收获毕业设计心得与收获 17 参考文献参考文献 19 致致 谢谢 20 附录附录 系统使用说明系统使用说明 21 WebWeb 模式下基于数据库的组卷模块设计模式下基于数据库的组卷模块设计 1 1 绪论 绪论 1 1 课题的研究背景和意义 一直以来 我国高校和社会上的各种考试大都采用传统的人工出卷方式 显然 人工出卷存在着种种弊端 譬如自教自考 所考的知识点不全面 考前漏题等 同时 试卷的编辑 整理占了很大的工作量 造成了很大的时间和人力资源浪费 随着考试 制度改革的不断深化和网络技术的逐步完善 用 Web 试题库系统代替传统的人工出 卷方式 已成为高校和社会上各种考试发展的趋势 当前 很多研究人员进行了试题 库组卷系统的研究 也开发出了不少组卷系统 促进了试题库组卷系统的发展 然而 目前的试题库组卷系统仍存在着一些普遍的问题 如性能分析功能不强 组卷速度慢 试题的公式及图片录入往往需要专业人员的操作才能完成 极大的阻碍了智能组卷 系统的发展 针对当前系统的开发现状和不足 本文设计了一个 Web 模式下基于数 据库的组卷系统 该系统是结合 Silverlight 和 LINQ 技术开发的 Web 应用程序 与其 他系统相比 本系统有很多明显的优点 一是系统具有扩展性强的特点 不需要修改程 序代码即可适用于其他科目 二是系统采用微软最新的 RIA 技术 Siverlight 达到一 个丰富的媒体体验和交互式应用 三是同时支持自动组卷和手工组卷两种方式 用户 可根据需要自行选择 同时 系统还具有完善的用户 角色权限的管理功能 以确保 试题库的安全运行 1 2 国内外研究现状 国外对题库系统的设计做过比较详尽的研究和探讨 早在 1968 年 IBM 公司和美 国洛杉矶学区共同开发的一个 CTSS Classroom Teacher Supporting System CTSS 系统最初用于管理一个美国历史题库 后来 加利福尼亚州开发了一个称为 SOCRATEB CATC 系统 专为加利福尼亚州 19 个州立大学中的 1 6 万名教师和 29 万学生服务 随 后 题库系统的研究发展迅猛 研究也逐渐深入 历经 40 余年的发展 国外许多大 型教育机构 地方教育部门 高等院校以及工业和专业资格认证机构都对题库构建 试卷编制等进行过各种研究 目前 题库系统已经在国外得到了广泛的应用 最近几年 我国的题库研究和应用发展活跃 华东师范大学 北京师范大学 江 西师范大学等高校都有人在进行教育测量理论应用于题库建设方面的研究 北京师大 电子系完成的七五科技攻关项目中的子项目 通用试题库生成系统的研究 通过由机 电部组织的技术鉴定 清华大学和北京理工大学分别主持完成了高校工科 大学物理 和 高等数学 两门课程的试题库系统 另外 随着计算机在国内普及和应用 题库 系统在我国的应用也越来越广泛 很多地方和高校结合自身的需求 纷纷建立自己试 题库 题库系统的研究已经成为近年来教育系统中一个十分引人注目的课题 虽然目前存在很多试题库管理系统 但其中仍存在不少问题 这些问题主要表现 在以下几个方面 1 自动组卷速度慢 究其原因是组卷策略不恰当 有些试题库为了设计简单 而选取了随机抽取法或回溯试探法 然而这两种算法都存在较大的缺陷 组卷的效率 和质量都很难令用户满意 所以必须寻求另外的解决方案 2 系统的通用性差 很多试题库管理系统只是面向个别学科或者某些公共学 科 若要适应其他学科则必须经过比较大的改动或者根本行不通 3 很多试题库管理系统为 C S 模式甚至是单机版 用户若要使用试题库则必 须安装相应的软件 无论是对用户的使用或者系统的更改或升级都是很不方便的 4 组卷模式单一 在众多试题库系统中 有不少是只支持手工组卷或者是自 动组卷后不能修改的 这给用户的选择比较少 而且也不灵活 1 3 选题研究内容 本课题研究的系统主要面向教师 目的旨在设计一个在 B S 模式下 基于数据库 能够在线管理题库并能采用某种组卷策略从数据库里抽取适当的试题并组成一份试卷 最后在网页上显示出来的系统 2 2 需求分析 需求分析 2 1 功能分析 根据用户的使用需求 本系统的主要功能有 1 教师可以选择手工组卷或者自动组卷 在自动组卷方面 教师只要输入试卷 的一些约束条件即可进行自动组卷 为了保证组卷的高效性和正确性 必须采用适当 的组卷算法进行组卷 对于手动组卷 则要做到用户能够方便的选择试题 2 试题管理 试题管理主要体现在试题的增删改查 在试题录入方面 系统为 不同的题型提供不同的模板 用户只须根据提示录入相应的题目内容即可把题目添加 到数据库 试题的修改和删除均建立在试题的检索之上 用户可根据条件查询出相应 的试题 然后根据需要修改或删除试题 3 组卷模块通用性 通用性同样是组卷模块要解决的一个重要问题 系统应该 不经修改或稍加修改即可得到很好的扩展已适应不同科目的要求 以保证使用价值 同时 也要能非常方便的嵌入到其他考试系统中 4 用户的角色权限管理 系统采用了基本的权限管理机制 每个用户都属于某 个角色 每个角色会拥有对试题的若干权限 以保障系统的信息安全 5 试卷的显示 用户可以预览当前生成的试卷或者已保存的试卷 2 2 技术分析 本系统的开发环境为 Windows 7 Microsoft Visual Studio 2008 Microsoft Expression Blend3 Microsoft SQL Server 2005 这在本文的总体设计和详细设计 中会有详细介绍 题库系统在构建过程中需要解决一些问题 例如 自动组卷的算法选择 算法的 选择决定组卷的效率和质量 随机组卷法和回溯试探法是目前使用比较多的两种 但 这两种算法都有很大的缺陷 随机选取法是利用计算机提供的随机函数或随机量 根 据组卷状态空间的约束条件 不断抽取符合约束条件的试题放入试卷中 直到组卷成 功 或再也无法从题库中抽取满足控制指标的试题为止 这种算法对于单个实体的抽 取速度快 但对于整个组卷过程来说组卷成功率较低 花费时间长 回溯试探法是将 随机选取法产生的每一状态都记录下来 当搜索失败时释放上次记录的类型 然后再 依据一定的规律 正是这种规律破坏了选取试题的随机性 变换一种新的状态类型进行 试探 通过不断的回溯试探直到试卷生成完毕或退回出发点为止 对于状态类型和出 题量都较小的题库系统而言 组卷成功率较好 但是在实际到一个应用时发现这种算 法对内存的占用量大 程序结构相对比较复杂 而且选取试题缺乏随机性 组卷时间 长 因此它不是一种很好的用来自动组卷的算法 对于这些缺陷 用户通常是无法接 受的 基于上述分析 本系统采用了当今公认比较好的组卷算法 遗传算法 遗传算 法是一种模拟自然选择和自然遗传机制的随机优化算法 其具有并行性 通用性 自 适应性 全局优化性和收敛速度快的特点 3 3 总体设计总体设计 3 1 系统的功能模块 系统功能如图 3 1 所示 试 题 库 管 理 系 统 系统登录 系统管理 试题管理 组卷管理 用户操作 用户管理 考点管理 新增用户 角色管理 权限管理 考点新增修改 试题添加 试题修改 试题删除 试题检索 自动组卷 修改密码 单选题 多选题 填空题 简答题 论述题 上机题 手工组卷 试卷管理 注销 登出系统 图 3 1 系统功能模块图 3 2 主要模块基本流程图 系统的主要模块为组卷模块 试题管理模块 试卷管理模块 这几个模块的流程 图如下所示 3 2 1 组卷模块 组卷模块的基本流程图如图 3 2 所示 图 3 2 组卷模块流程图 3 2 2 试题管理模块 试题管理基本流程如图 3 3 所示 图 3 3 试题管理基本流程图 3 2 3 试卷管理模块 试卷管理基本流程如图 3 4 所示 Y N 登 录 试卷管理 自动组卷 手动组卷加载题目 输入试卷属性 选择题目 设置题型分 数 注 自动组卷失败是指有一个或多个约束条件不能满足 预览 保存试卷 自动组卷 开始 成 功 N Y 登 录 试题管理 检索试题 添加试题输入属性保存试题 输入条件 存在试题 修改删除 图 3 4 试卷管理基本流程图 3 3 系统功能描述 如图 3 1 所示 交互式题库系统包括以下几个功能模块 3 3 1 登录模块 用户必须登录后才能使用系统的功能 题库系统为用户设立账号 以确保题库系 统的安全性 3 3 2 系统管理模块 系统管理模块主要管理用户的角色权限 每个用户都属于某个角色 每个角色都 有若干权限 管理员可以新增或者删除角色 或者更改角色的权限 以达到用户权限 的高效 统一管理 此模块只有管理员能够进入操作 3 3 3 考点管理模块 用户可以新增或者更改考点 3 3 4 试题管理模块 试题管理模块主要是试题增删改查的实现 新增试题方面 系统为六种题型 即 单选 多选 填空 简答 论述 上机操作 提供不同的模板 录入时只需输入与题 目有关的必要内容即可把题目保存到数据库 试题检索方面 系统为用户提供了多个 条件的筛选 用户根据某个条件或多个条件的组合来检索试题 试题检索完成后 用 户可以根据需要修改或者删除题目 3 3 5 组卷管理模块 组卷模块是系统的核心功能模块 用户可以选择手工组卷和自动组卷 手工组卷 的目的是为了更好的定制试卷 而自动组卷则是只要用户输入必要的限制条件 系统 就会自动组合出满足条件的试卷 自动组卷完成后 用户还可以更改个别试题 试卷 的修改和删除和试题管理的设计类似 都须先查询出相应的试卷然后进行修改删除操 N Y 登 录 试卷管理检索试卷 卷 输入条件 存在试卷 修改删除 作 3 3 6 用户操作模块 用户可在此模块修改账号密码以及相关的个人信息 3 4 数据库设计 本系统使用 Microsoft SQL Server 2005 作为后台数据库 Microsoft SQL Server 2005 以其安全性 扩展性 易用等多个优点著称 在数据库建模方面 采用的是 PowerDesigner PowerDesigner 提供了一个完整 的建模解决方案 通过多次的修改 数据库的关系如图 3 5 所示 图 3 5 数据库的关系图 3 4 1 用户表设计 本系统为 B S 模式 用户表主要记录用户的登录和个人信息 用户表的设计如表 3 1 所示 表 3 1 用户表 DF TeaInfo 字段名类型长度主键约束说明 IDInt not null 是标识增量用户 ID DIdInt null 否系别 ID NameNvarchar 20 not null20 否姓名 GenderNvarchar 2 not null2 否性别 LoginIdNvarchar 50 not null50 否登录帐号 PasswordNvarchar 50 not null50 否密码 UserGroupId Nvarchar 20 null 20 否用户组 AdminGroupNvarchar 20 null20 否管理组 TimeStampdatetime 否修改时间 3 4 2 角色表设计 每一个记录代表一个角色组 角色表的设计如表 3 2 所示 表 3 2 角色表 YZF Role 字段名类型长度主键约束说明 IDInt not null 是标识增量角色 ID RoleNameNvarchar 20 null20 否角色名 TimeStampdatetime 否修改时间 3 4 3 用户角色表设计 用户角色表的设计旨在为每个用户都分配一个角色 通过查询用户角色表即可知 道用户所属角色 用户角色表的设计如表 3 3 所示 表 3 3 用户角色表 YZF UserRole 字段名类型长度主键约束说明 IDInt not null 是标识增量用户角色 ID UserIDInt not null 否外键用户 ID RoleIDInt not null 否外键角色 ID TimeStampdatetime 否修改时间 3 4 4 权限表设计 系统允许设置不同的用户权限 权限表的设计如表 3 4 所示 表 3 4 权限表 YZF Right 字段名类型长度主键约束说明 IDInt not null 是标识增量权限 ID RightNvarchar 20 null20 否权限名 TimeStampdatetime 否修改时间 3 4 5 角色权限表设计 角色权限表的设计旨在为每个角色分配不同的权限 角色权限表的设计如表 3 5 所示 表 3 5 角色权限表 YZF RoleRight 字段名类型长度主键约束说明 IDInt not null 是标识增量用户角色 ID RoleIDInt not null 否外键角色 ID RightIDInt not null 否外键权限 ID TimeStampdatetime 否修改时间 3 4 6 知识点表设计 知识点表记录课程的每个知识点 由于知识点一般都有上级知识点 所以设置 FatherID 字段以标识上级知识点 也方便在 treeview 等树形控件中呈现 知识点表 的设计如表 3 6 所示 表 3 6 知识点表 YZF PointID 字段名类型长度主键约束说明 IDInt not null 是标识增量用户角色 ID NameNvarchar 50 not null 否角色 ID FatherIDInt not null 否父知识点 ID TimeStampdatetime 否修改时间 3 4 7 试题表设计 试题表的设计是数据库设计的主要部分 每一道试题都其唯一的编号 该编号在 试题录入时自动生成 为了简化数据库的设计 所有题型的题目都保存在一个表上 其中 ID PointID TypeID Context Level Differential Time Count Keywords 和 TimeStamp 为公共属性 Selections 和 Answer 字段只有单选题和多选题才有值 File 字段只有上 机操作题才有值 试题表中比较关键的属性是 Level 字段和 Differential 字段 其中 Level 字段代表的是试题的难度系数 通常用未通过率来表示 即一次考试中未答对 某道试题的考生数在其总体中所占的比例 一般来说 难度系数值为 0 5 时 是中等 难度 如果小于 0 3 试题太简单 如果大于 0 7 试题太难 如果考生都会做或都不会 做 则难度系数为 0 或为 1 Differential 表示试题的区分度 指某道题对不同水平考 生加以区分的能力 区分度高的试题 对学生水平有较好的鉴别力 试题表的设计如 表 3 7 所示 表 3 7 试题表 YZF Question 字段名类型长度主键约束说明 IDInt not null 是标识增量试题 ID PointIDint not null 否外键知识点 ID TypeIDInt not null 否外键题型 ID ContextNvarchar max not null4000 否试题 RTF FileNvarchar 200 null200 否文件 LevelReal not null 否难度系数 DifferentialReal not null 否区分度 TimeInt not null 否作答时间 CountInt not null 否默认 0出现次数 AnswerNvarchar 50 null50 否答案 KeyWordsNvarchar 50 not null50 否关键字 SelectionsNvarchar 500 null500 否选项 TimeStampdatetime 否修改时间 3 4 8 试卷表设计 试卷表保存手动组卷或自动组卷的每份试卷 Context 保存试题以及每种题型的 分数 其值是一个 XML 结构的字符串 Level 难度系数的计算公式是 P Di Si Si 其中 i 1 2 N N 是试卷所含的题目数 Di Si分别是第 i 题的 难度系数和分数 试题表的设计如表 3 8 所示 表 3 8 试卷表 YZF Examination 字段名类型长度主键约束说明 IDInt not null 是标识增量试卷 ID TotalValueint 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 题型表设计 题型表的每个记录代表一种题型 系统不能修改此表 只能通过数据库新增记录 题型表的设计如表 3 9 所示 表 3 9 题型表 YZF Type 字段名类型长度主键约束说明 IDInt not null 是标识增量题型 ID NameNvarchar 20 null20 否题型名称 3 4 10 试题操作记录表设计 用户对试题的每一个操作 增 改 删 都将被记录在此表 试题操作记录表的设 计如表 3 10 所示 表 3 10 试题操作记录表 YZF Log 字段名类型长度主键约束说明 IDInt not null 是标识增量记录 ID QuestionIDInt not null 否外键约束试题 ID UserIDInt not null 否外键约束用户 ID TimeDatetime not null 否 Getdate 操作试卷 OperationNvarchar 10 not null10 否 Delete modify add 操作类型 4 4 详细设计与实现详细设计与实现 4 1 开发环境及技术选择 本系统的开发环境是基于 Windows 7 操作系统 采用 Microsoft Visual Studio 2008 Microsoft Expression Blend3 编程工具开发 后台数据是 Microsoft SQL Server 2005 采用的查询语言是 SQL 为了让用户有丰富的媒体体验和交互式应用 本系统选择微软力推的 RIA 技术 Silverlight 在数据操作方面 采用的是 LINQ 技术 微软 Silverlight 是一个跨浏览器 跨客户平台的技术 能够设计 开发和发布有 多媒体体验与富交互 RIA Rich Interface Application 的网络交互程序 因为 Silverlight 提供了一个强大的平台 能够开发出具有专业图形 音频和视频 的 Web 应用程序 增强了用户体验 所以 SilverLight 吸引了设计人员和开发人员的 眼球 同时 Silverlight 还提供了强大的工具来提高他们的工作效率 Silverlight 能创 建一种具有很高艺术性的应用程序 具有以下的特点 1 一种跨浏览器 跨平台的技术 可以在所有流行的浏览器中运行 2 无论在哪运行 都能提供一致的用户体验 3 只需要下载很小的文件 以安装支持 4 它的视频和音频流 视频质量无论从移动设备还是桌面浏览器都是 720p HDTV video 模式 5 用户可在浏览器中直接对其进行控制 可以拖动 翻转 放大的图片 6 它读取数据并且更新外观 但不会通过刷新整体页面来打断用户操作 语言集成查询 LINQ 是一组技术的名称 这些技术建立在将查询功能直接集成 到 C 语言 和可能的任何其他 NET 语言 中 借助于 LINQ 查询现在已是高级 语言构造 就如同类 方法 事件等等 LINQ 最明显的 语言集成 部分是查询表 达式 查询表达式是使用 C 3 0 中引入的声明性查询语法编写的 通过使用查询语 法 我们可以使用最少的代码对数据源执行复杂的筛选 排序和分组操作 同时使用 相同的基本查询表达式模式来查询和转换 SQL 数据库 ADO NET 数据集 XML 文档和流以及 NET 集合中的数据 4 2 系统架构 系统采用的架构是经典的 Web 三层架构 所谓的三层架构 即数据访问层 业 务逻辑层 还有表现层 以往采用 Web 三层开发需要建立相应的类库 诸如实体类 类库 数据库工具类库等 这样是相当费时费力的 即使有了第三方的自动生成工具 也要作大量的修改 所以我借助 LINQ 提供 LINQ TO SQL 设计器 只要设置好数据 源 然后在可视化界面直接把表拖动到 LINQ TO SQL 设计器 设计器就会自动检测 主外键等约束关系 然后为每个表建立实体类并建立关系 并封装了每个表的 CRUD 方法 从而完成了数据访问层的工作 在业务逻辑层 由于 Silverlight 不能直接读取 数据库 所有与数据库的交互都必须通过 WebService WCF 或 RIA Service 等方法间 接访问 最后选择相对简单的 WebService 来充当业务逻辑层 之所以不再新建一个 业务逻辑类库 是因为假如再把业务逻辑方法封装在一个类库里 那业务方法的调用 过程就是从表现层调用 Webservice 方法 Webservice 再调用业务类库的方法 那就显 得太多余了 所以我把业务逻辑层都放在一个 Webservice 里 在 Webservice 里 我 实例化了一个 Datacontext 对象 DataContext 对象管理着当前处理的数据库中的所有 事务 每一个业务逻辑方法都要用到 Datacontext 对象以操作数据库 最后在 Silverlight 中调用 Webservice 来完成对数据库的操作 系统架构如图 4 1 所示 图 4 1 系统架构图 4 3 主要功能设计与实现 主要介绍试题添加功能 试题修改删除功能 自动组卷功能 手动组卷功能以及 试卷修改删除功能的设计和实现方法 4 3 1 试题添加功能 本功能完成的功能是把题目录入到数据库 不同的题型录入需要不同的模板 每 个模板对应一个页面 所有的题目添加都必须选择知识点 输入题目 难度 区分度 作答时间和关键字 除此之外 单选题和多选题还必须输入 ABCD 四个选项和答案 而上机题则必须上传有关文件 其中知识点选择是通过一个 Combox 控件选择的 页 面加载时 首先实例化一个 Webservice 实例 为 GetAllPointsCompleted 和 SaveQuestionCompleted 事件注册方法 然后调用 Webservice 的 GetAllPointsAsync 方法从数据库异步读取所有知识点 当数据读取完成后加载到相应的知识点下拉列表 由于试题内容可能存在图片或者其他信息 所以系统采用 Richtextbox 来作为试题的 编辑器 这是由于 Richtextbox 支持 RTF 富文本格式 使试题不但能够插入图片 而 且文本内容还能设置不同的样式 最后保存在数据库也是以 rtf 文本格式保存 文件 上传方面 也是通过 Webservice 完成的 首先选择要上传的文件 然后创建上传文件 的只读 Filestream 然后从读取 Filestream 里所有的字节序列 最后调用 Webservice 的相应方法上传到服务器 输入完所有必要属性后 点击提交按钮 系统会检查所有 的试题属性值是否符合要求 只有全部都符合要求时才能新增题目 例如新增单选题 时如图 4 2 示 图 4 2 单选题新增图 4 3 2 试题修改删除功能 试题修改和删除都须先进行试题的检索才能操作 用户只需输入知识点 题型 难度 关键字等多个条件的某个或多个组合就能从数据库检索出相应的题目 然后在 DataGrid 控件上显示 DataGrid 控件的每一行代表一条试题记录 每一行都会有一 个删除和修改按钮以操作试题 试卷的修改通过弹出窗口进行 当点击修改按钮后 系统会自动获得所要修改的题型 然后加载相应的修改模板进行编辑 修改完成后 系统更新题库并在网页上显示出来 试题删除的实现方法是当用户点击删除按钮的时 候 系统会把 DataGrid 该行的数据实体传递给 WebService 然后根据该实体删除数 据库的相应试题 用户也可以选择多条试题批量删除 若有试卷关联着试题 则会报 错 并提示出错试题关联的试卷号 界面如图 4 3 所示 图 4 3 题库管理图 4 3 3 自动组卷功能 自动组卷是系统的核心 用户只须输入难度 作答时间 各个题型的题数和分值 所考知识点 然后点击生成即可调用相应算法从数据库中抽取试题组合试卷 系统采 用的组卷策略是遗传算法 遗传算法是模拟达尔文的遗传选择和自然淘汰的生物进化 过程的计算模型 是一种通过模拟自然进化过程搜索最优解的方法 它用于解决多约 束条件下的最优问题 遗传算法有三个基本操作 选择 交叉 变异 这些操作又有 不同的方法来实现 1 选择 选择用于确定在下一代种群有哪些个体组成 选择的依据是个体的 适应度 即首先计算每个个体的适应度 然后以概率方式选择适应度较好的个体进入 下一代种群 通过选择操作 父代中的个体及由交叉和变异形成的新个体中 适应度 好的个体能以较高的概率存活下来 2 交叉 交叉是指父代中的两个个体之间进行基因片断的交换 基因片断在 染色中的位置和长度的选择是随机的 通过交叉操作 可以将多个体中的优秀片断进 行重组 形成适应度更优的个体 3 变异 交叉之后子代经历的变异 实际上是子代基因按小概率扰动产生的 变化 依据个体编码表示方法的不同 主要包括实值变异和二进制变异两种方法 自动组卷流程分别对应遗传算法的三个基本操作 首先调用 make begin recordset 函数产生初始种群并对初始种群执行一次交叉和变异操作 种群的每一个个体代表一份试卷 试卷初始种群不是采用完全随机的方法产生 而是 根据题型比例 总分 知识点不重复 不考章节等要求随机产生 使得初始种群一开 始就满足了题型 总分和知识点等要求 这样可加快遗传算法的收敛并减少迭代次数 在编码方面 采用实数编码 以克服以往采用二进制编码搜索空间过大和编码长度过 长的缺点 同时取消了个体的解码时间 提高了求解速度 然后进入选择操作 在选 择之前 首先调用 product wheel 函数 其作用是根据适应度生成轮盘表 然后调 用 choose arithmetic operators 函数进入选择过程 选择过程主要根据试卷个体 的适应程度决定试卷在下一代是被淘汰还是被复制 选择过程结束后 然后调用 cross 函数进入交叉过程 由于在编码时采用的是分段实数编码 所以在进行交叉 时采用分段单点交叉 按题型分段来进行交叉 整个染色体就表现为多点交叉 交 叉的实现过程 将群体中的染色体任意进行两两配对 对每对染色体产生一个 0 1 的 随机数 r 若 r pc pc 取值范围是 0 6 0 8 则分段随机产生一个交叉点 然后分 段进行互换以得到下一代 最后调用 mutation 进入变异过程 在遗传算法中 变异 概率一般较小 这里只对某段上的某个基因进行变异 对某个染色体 随机生成一个 0 1 范围内的实数 r 若 r 0 01 则对该染色体进行变异 否则不进行变异 变异 的操作如下 循环读取每个题段 若变异几率 p 0 01 则对该题进行变异 变异基因 的选择原则与原基因题型相同 在三个基本操作完成之后 调用 save best policy 函 数保存最优策略函数 由此循环若干 最大 200 次后 结束遗传算法 返回生成试 卷 其算法流程图如图 4 4 所示 图 4 4 组卷算法流程图 4 3 4 手工组卷功能 尽管自动组卷为用户带来了极大的便利 但手工组卷仍然有它不可取代的优势 通过手工组卷 用户可以自由地确定题目 以保证试卷的质量 为了能使用户方便地 进行手工组卷 系统在手工组卷页面放置了 7 个 DataGrid 控件 其中 6 个 DataGrid 分别对应 6 种题型的列表 点击题型可对相应的 DataGrid 进行折叠或展开 第 7 个 DataGrid 为当前已选题目列表 每选择一个题目 该题目会自动出现在已选列表上 并且统计试卷分数难度和时间 用户可以随时对试卷进行预览 最后只要输入试卷标 题即刻保存试卷 4 3 5 试卷修改删除功能 试卷修改和删除都须先进行试卷的检索才能操作 用户只需输入试卷的难度 分 数 时间 生成时间等多个条件的单个或多个组合就能从数据库检索出相应的试卷 然后在 DataGrid 控件上显示 DataGrid 控件的每一行代表一份试卷记录 每一行都会 有一个删除和修改按钮以操作试卷 试卷的修改通过弹出窗口进行 试卷的修改只能 修改选中试卷的标题和题型分值 修改完成后 系统更新题库并在网页上显示出来 试题删除的实现方法是当用户点击删除按钮的时候 系统会把选中的试卷号传递给相 应的 WebService 方法进行删除 5 5 毕业设计心得与收获毕业设计心得与收获 通过对试题库系统的研究 探讨了试题库系统的数据库设计 组卷模式选择 用 户角色管理 考点管理 试题管理和试卷管理等模块的设计 并结合 Silverlight 和 LINQ 等技术成功地开发出在 Web 模式下基于数据库的试题库管理系统 由于系统设计所用到的技术很多是以前从没接触过的 所以一切都要从自学开始 一边自学一边做设计 由于学的东西是越来越多 也越来越深 所以在毕业设计中 相同功能可能用了不同的做法 相比在系统设计中使用最新的技术 个人觉得系统模 块划分在系统设计中占有非常重要的比重 刚开始划分系统模块 由于对系统功能把 握得不够好 所以模块的划分显得比较混乱 在界面设计阶段 由于采用了微软的 Silverlight 技术 面对的再不是熟悉的 html 标签 而是全新的 XAML 所以刚开始 时页面布局时要经常查阅 MSDN 帮助 在设计工作的后期 随着知识的积累越来越丰富 编码速度和程序质量都有明显 提高 用的控件也越来越丰富 在某些页面甚至添加了一些简单的动画效果以使用户 界面更加友好 虽然系统最后能够完成 但是由于工作实习原因和时间关系 所以系统仍存在很 多不足 1 由于系统是通过 WebService 对数据库进行异步操作的 由于 WebService 本来速度就不高 所以当传输数据量比较大 如数百个题目 时 会有明显的操作延 迟 虽然系统提供了人性化的等待提示 但根本的解决办法还是改进与数据库的连接 通信 2 试题编辑采用的是 Richtextbox 控件 微软在 Silverlight3 并没有提供类 似 Richtextbox 的富文本编辑器 系统里所采用的 Richtextbox 是一个免费第三方控 件 在添加图片及文本格式控制等方面还需另写代码 不过微软已经在 Silverlight4 新增了 Richtextbox 控件 所以到时候这个问题也会迎刃而解 3 组卷算法有待进一步完善 虽然系统采用的算法能够满足用户的一般要求 但有时仍会出现组卷失败或出错的现象 总的来说 通过这次毕业设计 不仅巩固和扩充了原有的专业知识 而且分析 问题和编码能力也有显著的提高 参考文献 1 McGrawHill Oracle Database 10g SQL 2002 p314 316 2 Rampant TechAdvanced SQL Database Programmers 2003 p234 236 3 殷荣庆 题库系统的设计于研究 J 安徽教育学院学报 2004 22 6 36 40 4 张建栋 许锦标 基于 Web 的试题库组卷系统的研究与开发 CNKI SUN DNZS 0 2008 10 040 5 夏爱月 基于遗传算法的自动组卷系统研究与实现 CNKI SUN DNBC 0 2009 02 038 6 魏德志 林丽娜 吴 旭 遗传算法在智能组卷系统中的设计与实现 CNKI SUN CJDL 0 2008 01 084 7 罗江英 遗传算法的研究与应用 CNKI SUN DNZS 0 2008 14 058 8 崔欣 Silverlight 技术的发展与应用 CNKI SUN DNZS 0 2009 22 049 9 孙超 钟珞 基于 Silverlight 的富界面应用研究 CNKI SUN WHGY 0 2008 12 023 10 付坤 探讨 SilverLight 技术在增强客户体验方面的应用 CNKI SUN KJXX 0 2009 05 582 11 田江 浅谈 LINQ 访问技术 CNKI SUN KJXH 0 2009 07 236 12 史红军 快速开发基于 Linq to Sql 的三层 Web 应用 CNKI SUN ZXLJ 0 2009 24 017 13 王炯炜 胡宏伟 基于 LINQ 的三层体系结构应用 CNKI SUN KJXI 0 2008 21 352 致 谢 在本文完成之际 谨向 学院计算 机科学与技术系的全体教师致以衷心的感谢 特别要感谢 我的导师 潘章明老师 本论文是在 潘老师的精心指导 和关怀下完成 的 从论文的选题 方案设计 到论文的撰写和修改 都倾注了潘老师的心血 和汗水 在学习期间 他的言传身教将使我终生受益 他认真严谨的治学态度 豁达宽广的胸怀 平易近人的处事风格是我一生的楷模 值此提交论文之时 在此再向潘老师表达衷心的感谢 附录 系统使用说明 1 系统登录 图 1 登录界面 如图 1 所示 正确输入账号名称和密码后点击登录或者按回车就可跳转到系统主 界面 密码和账号名称都区分大小写 2 主界面 图 2 主界面 登录成功后 系统自动进入主界面 如图 2 所示 主界面的左侧是导航栏 包含 系统所有的操作链接 用户可根据需要选择菜单 然后在右侧区域进行操作 3 用户管理 用户管理只能由超级管理员进行操作 超级管理员可以使用系统的所有功能 1 用户添加 图 3 用户添加 选择 用户管理 添加用户 菜单即可进入添加用户的界面 如图 3 所示 只要正确地全部输入资料即可添加用户 2 角色管理 图 4 用户角色管理 选择 用户管理 角色管理 菜单即可进入用户角色管理界面 如图 4 所示 在用户角色管理界面的用户角色列表上 点击更换角色即可将所选用户的角色更改为 角色下拉列表所选角色 点击删除用户按钮即可删除用户 在新增角色文本框中输入 角色名就可新增一个角色组 在删除角色处选择所要删除的角色就会删除所选角色组 包括属于此角色的用户也会同时删除 3 权限管理 图 5 角色权限管理 选择 用户管理 权限管理 菜单即可进入角色权限管理界面 如图 5 所示 角色列表的选择角色发生变化时 权限列表也会自动更新 在权限列表勾选相应的权 限即可把权限赋予选中角色 4 考点管理 图 6 知识点管理 选择 考点管理 考点管理 菜单即可进入知识点管理界面 如图 6 所示 所有的知识点都会用一个 Treeview 表示 选中知识点时右面的修改菜单也会绑定该知 识点的数据并同时显示出来 用户只要按更改按钮就可完成更改 在新增菜单 只要 选择父知识点 父知识点为空时为顶级知识点 和输入名称即可新增知识点 5 试题管理 1 试题添加 图 7 试题添加 在 试题管理 菜单下 选择不同的题型就会出现相应的新增模板 以上为单选 题新增模板 如图 7 所示 只要正确填入所有信息即可添加试题到数据库 2 试题管理 图 8 试题管理 选择 试题管理 试题查询修改 菜单即可进入试题管理界面 如图 8 所示 输入一个或多个查询条件即可进行试题的检索 检索完成后可以点击列表上的修改或 删除按钮进行操作 也可进行批量删除 6 试卷管理 1 自动组卷 图 9 自动组卷 选择 试卷管理 自动组卷 菜单即可进入自动组卷界面 输入试卷的各个 属性然后单击生成即可进行自动组卷 自动组卷的所需时间一般在 10 秒以内 然后 可以单击预览查看整份试卷 最后点击保存按钮把试卷保存在数据库 2 手工组卷 图 10 手动组卷 选择 试卷管理 手工组卷 菜单即可进入自动组卷界面 如图 10 所示 页面加载时由于要从数据库读取题目 所以会出现等待工具条 页面加载完成后会把 各个题型的题目分别加载到 6 个 Datagrid 控件里 用户只需点击相应的题型就会出 现相应列表 然后就可以选择题目 每选择一条题目 该题目都会出现在最下

温馨提示

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

评论

0/150

提交评论