在Excel中设计试卷生成系统.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在Excel中设计试卷生成系统 在Excel中设计试卷生成系统 PAGE / NUMPAGES 在Excel中设计试卷生成系统 在 Excel 中设计试卷生成系统 作为一名教师,经常要经历考试、出卷这个过程。虽然“无纸化”考试已经开始被大家所了解,但真正实现的学校却不多。作为一名信息技术教师, 我希望能够利用计算机开发出一套简单实用、可以自动生成试卷的系统, 把大家从繁琐的出卷过程中解放出来。考虑到试卷要 打印出来, 我没有选择VB, 而是选择了大家都很熟悉的Excel 2000,利用其中的VBA脚本语言来实现试卷的自动生成。 ? 系统实现的功能 ? 组卷方式为章节控制方式。保证各章节的分值不易失衡,根 据出题者的要求,按章节随机从题库中抽题组卷。? 格式化试卷(包括设置试卷标题、 进行页面设计、添加页眉等),达到可以直接打印的要求。 ? 题库中试题内容与参考答案融为一体, 由系统生成的试卷文档 既可以打印出学生考试用卷,也可以打印出样卷。? 构建题库 ? ? 该系统题库采用 Excel 表格的形式,字段名分别为 “标准答案” 、 “题干”、 “答案 A”、“答案 B”、“答案 C”、“答案 D”(如 图 1)。题库中的记录可以采用两种方法来录入: ? 直接手工录入:打开工作簿,在题库工作表中可以直接输入题目; ? 从已有题库文件中导入到 Excel 题库里面,比如可以从现成的 Access 题库中直接导入到该题库里。 ? 但是无论哪种方法都必须满足下面的条件: 所有的题目按章节排序,并记录每一章节题目的起始位置, 以后向题库里面添加记录时不能在文件尾追加, 而是要放到所属章节的位置, 并修正试卷生成界面里相应的地方。 ? 建立试卷生成界面 ? ? 所谓试卷生成界面就是系统提供给用户的用于输入各种条件值 的地方,本系统是由用户设定各章节所出题目的个数, 因此界面 比较简单。我们把工作簿中的 Sheet3 工作表设计为系统界面 (如图 2)。在该界面下用户只要在 B 列相应单元格中输入每个章节的题目数(例如,第一、二章都出 10 个题,就在 B1、B2 单元格 里分别输入 10,没有出题的章节后面可以为空白, 如图 2 所示),然后按“ Ctrl+D ”组合键执行宏命令就可以生成试卷。其中此界 面除 B 列外其余各列都设置为保护状态, 以避免用户的误操作影响程序的执行。在图 2 中我们还可以看到 D、F 列标明了题库中每一章题目的起始位置, 这里的设置是在完成题库后根据题库内容来填写,一般只填写一次,如果题库的内容有变化,一定要在此处作相应的改变。 ? 生成试卷 ? 生成试卷是本系统的核心部分,这部分的设计主要是采用 Excel 里面的宏命令。 其中的关键代码主要是自己编制的, 有些辅助功 能采用录制宏的方法实现。 本系统的组卷方式为按照各章节要求 的题目数自动随机组卷, 所以核心代码部分为三个方面: 按照用 户要求产生符合要求的随机数, 并把该数存储于一个数组中, 产 生的随机数就是选中题目的序号;按要求把所选记录复制到 Sheet2 工作表中,并转换成我们常见的试卷模式; 格式化试卷。 ? 1. 生成随机数 ? 本系统中的随机数主要是标志出现在试卷中题库记录的位置, 例如我们随机产生了一个数 99,表示题库中第 99 条记录是我们试卷中的一个题目。 关于随机数的要求: 一是生成的数必须不能重复,这样就避免试卷中重题的出现; 二是生成的数必须在给定的范围里产生,如图 2 所示要求,第一章的题目范围是 1~117,所以我们产生的 10 个随机数必须是在 1~ 117 之间的不能重复的数。具体实现代码如下: ? ①产生一定范围的随机数我们用 RND()函数,我们把产生的这 个函数赋予临时变量 j ,其中的 2 中 D、F 列中相应值。 ?  fanwei(1,1),fanwei(1,2)  为图 j = Int(Rnd()  * (fanwei(l,  2) - fanwei(l,  1) + 1))  + fanwei(l, 1)? ②产生不重复的随机数。 我们采用的方法是用新产生的数和前面 产生的数分别比较,如果不同就直接记入数组 id() ,如果有相 同的话重新再生成,然后再比较,如此循环。 ? For i = 1 To timu(l)? a:j = Int(Rnd() * (fanwei(l, 2) - fanwei(l, 1) + 1)) + fanwei(l, 1)? id(i) = j? 避免产生重复的随机数 ? For k = 1 To i - 1? If j = id(k) Then? GoTo a:? Else? id(i) = j? End If? Next k? 2. 按产生的随机序列

文档评论(0)

131****9837 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档