计算机等级考试辅导系统测评测试子系统
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
试题库的操作
Xpath 查询语言可以根据位置定位符和模式 匹配来查找xml文档节点.编程结构DOM既 可以同时实现对xml文档的读操作也可以实现 对文档的写操作. Xpath表达式直接表示节点的路径如: “//question/content”. DOM对xml文档可以用XmlTextReader来读 取,用AppendChild 的方式来实现写操作.
运行结果演示
程度评测 初始界面
程度评测过程未结束的界面
click
程度评测结果
习题强化
模拟测试
订正巩固
结论
试题测试模块能够按照要求生产各类试题,满 足用户需求; 结合其他模块后,计算机等级考试辅导学习,能 够有效的提高学习效率
thank you!
分析:这种算法可以产生随机的不同的试题;但是有明显的缺 陷,当试题库比较小的时候,由于试题是顺序产生的,考生 可以记住答案应付考试.
该算法的主要思想是: Step1:random一个1到试题数A之间的数字n. If n!=n1,n2,n3,...n-1//n1,n2,n3,...是以前产生过的随机数字。 {Step2 在试题库中读取试题n以及相关信息 } Else {While(试题数量不满足要求) Goto step1 } 分析:这种算法不停的产生随机数字,如果随机数不同则根据 随机数产生试题.这种算法修改了上一种算法的顺序性弊端, 但是有些消耗计算机资源因为它一直在判断条件,反复执 行.而且在试题量较少的情况下很可能产生重复的试题.
ቤተ መጻሕፍቲ ባይዱ
约束条件下的的连续随机算法
分析:该算法能满足 产生随机的不重复题 random产生i 目的要求,而且可以根 据要求产生各种类型试题; 是 i是否重复 由于采用了连续随机算法, 否 它在反复执行 读取试题库 随机数产生操作,速度较慢
启动试题生成
结束试题生成 是 否 否 是否满足约束条件 是 生成试题 试题数量是否满足
连续随机算法
分块随机算法
算法可以描述为: Step1: 初始化i=1,将试题库试题分为K块有k1,k2,k3...。 Step2: random产生一个1到试题数k1之间的数字n. {i++; k1=k [i]; 读题指针p->n} If 试题数量不满足 Go to step2 Else 试题产生完毕 分析:该算法不会出现以上两种算法出现的弊端;但是分块不 合理会产生很多问题,当分块太多时,有一部分试题无法抽 取到;分块太少又不能产生满足试题数量要求的试题.而且 也可能会导致试题的不科学,因为它没有考虑到知识的重点 问题,重点知识应该占有题目数量较大比例.
试题数据库组织
该系统试题主要来源于《全国计算机等级考试三级教 程——网络技术》(2004年版) 为了方便在后期订正巩固模块中使用该数据库,在系 统设计前期对所有试题进行了标注。 例如:1.1.2 (1)因特网的前身是美国( )。 A)商务部的X25 NET B)国防部的ARPANE C)军事与能源的MILNET D)科学与教育的NSFNET 本试题的相关知识点可以在章节1.1.2中找到。
formOftest -button -menustrip1 -richtextbox -radiobutton +buttonclick_change() +menustripclick() +radiobutton_clickchange()
实体类
边界类
数据库实现
XML 文档数据库 Xpath 查询语言 DOM 编程接口 Visual Studio.NET C#
替代路径
无
后置条件
学习计划修改
模拟测试模块的分析模型
时序图动态的反映用户和界 面的交互过 程.FormofSimulateexam 是模拟测试界面 database 是试题数据库 wrongquestiondatabase 是 错题数据库,订正巩固模块 调用 的是该数据库
Form of simulate exam database wrongquestiondatabase 用户::student 1:click_change()
主要内容
●试题生成的实现 ●试题测试模块的分析与设计 ●试题测试模块功能的实现 ●结论
试题生成的算法
◆单一随机生成算法 ◆连续随机生成算法 ◆分块随机生成算法 ◆利用矩阵框架随机生成算法
◆约束条件下的连续随机算法(该系统中主要 用这种方法)
单一随机生成试题算法
算法描述: Step1:random产生一个1到试题数A之间的数字n. 读题指针 p->n Step2.然后在试题库中读取第n题以及相关信息.。 If:试题数量不足, 将试题读取指针向下移动p-> n+1,goto step2。 Else 试题产生完毕。
计算机等级考试辅导系统分 析与试题测试模块的设计
电信学院 信息39 学生 马彦飞 指导教师 高峰 教授 设计所在单位 系统工程研究所
知识学习中存在的主要问题
1.知识信息量剧增,让人们无法迅速找到想要的 知识和信息. 2.每天接触大量的冗余重复信息, 影响了人们掌 握知识的效率. 计算机考试辅导系统采用“知识结构化”表 示的方式以提高人么的学习效率,该系统由 三个模块组成,我主要完成试题测试模块的 设计与开发.
试题库读取操作
主要代码:
XpathDocument doc= new XpathDocument (“database1.xml”); //将文件读入内存 XpathNavitator navigator =doc.Creatnavitator (); //创建文件读取游标 XpathNodeIterator iterator =navigator.Select (“//question/content”) iterator.MoveNext (); 利用迭代器进行读取路径
系统分析与设计
一、需求分析 二、用例描述 三、时序分析 四、类的抽象与实现
程度评测用例描述
用例名称 活动者 前置条件 触发条件 程度评测 用户 用户登陆系统 点击程度评测控件 1.进入程度评测界面. 2.调用生成测试试题的用例. 3考生进行评测 4.生成评测结果. 5.提示用户修改学习计划
基本事件流
1.0:load_date()
1.0.1:eturn to Form
1.2:examing
1.3:translate dateto()
类的抽象
设计模型是一个转折点,最重要的成品就是设计类 。在UML中, 类是一组具有相同结构、行为、关系的对象的集合。一般将类分 为三种:边界类,实体类和控制类
dataBase -content:string -q-id:int -type:string -answer:string -take_num:int -false_num:int -dificulty -location -answerdetails -details +xmldocument() +paperout()
矩阵为框架的随机算法
算法思想: Step1:利用random()产生1到试题总数之间的数字n; Step2:连续取n以后的k个题目(内部程序不显示题目),并且 将n,n+1,...n+k保存在矩阵中。 Step3:利用random()产生1到k两个数字a,b并且将矩阵中a,b的 值交换。 Step4:显示矩阵中保存的试题序号对应的试题以及相关信息。 If试题数量不满足 Go to Step 1 Else 试题生成完毕 分析:k的选择比较关键, k 值较大则k个数字中只有两个交换 位置,生成的试题仍然具有顺序性; k值较小则相当于连续 随机算法;而更加糟糕的时这种算法产生重复题目的可能性 更大.
试题数据库
试题库的组织
整个试题库采用xml文档格式,包含724个题目,在 数据库编写时,把试题的属性作为xml文档的元素 名,而属性值作为元素值.采用树形结构组织,有 一个根节点<testdatabase> ,第一层子节点 <question> ,下一层为节子结点<question_id>、 <type>、 <content>、<answer> <answerdetails>、 <location>
试题库读取
数据库 写入
试题库的写入操作
主要思想 创建一个XmlDocument 然后给这个文件 创建XmlNode作为文件根节点, 最后把该节点通过appendchild 函数 添加到文件中. 这样数据库中就会出现 <? Xml version=“1.0” ?> 其他数据用同样的方法, 通过添加节点 和元素来完成写入 最后保存 Xmldoc.save(”testdata.xml”)