计算机软件基础大作业--考试管理系统分析与设计

合集下载

计算机应用基础考试系统分析与设计

计算机应用基础考试系统分析与设计

图1 学生实训管理系统的软件架构在系统软件设计中,采用三层构架进行系统设计,首先进行系统分析,设计的步骤是从底层开始,完成数据访问设计,在此基础上进行模型的设计和实现,然后以此为基础设计程序逻辑,最后完成功能的设计[2]。

系统的功能模块如图图2 系统功能模块图根据系统功能需求分析,划分了相应的系统功能模块,图3 系统详细设计3 数据库设计数据库保存应用系统数据,良好的数据库架构可以更有效保存数据,并且有利于系统设计中的数据访问代码编写。

数据库设计的目的是较好地存储系统的相关数据,针对本系统的具体情况,在数据库中需要保存教师的组卷信息、试卷信息,并且可以在考试结束后进行查询和阅卷,学生提交的试卷也需要保存在数据库,数据库还需要保存教师、学生等的信息。

具体设计如下。

1)基本数据保存。

主要包括学生信息、教师信息、班级信息、科目信息、新闻管理、题型设置。

这些数据都是构建试题数据、试卷数据的基础。

2)试题数据保存。

数据库可以保存试题数据,每条试题数据包括试题的具体类型,为了便于管理,将所有类似的试题保存在同一张数据表中。

依据表中的试题类型字段进行区别。

3)试卷信息保存。

在保存试卷中,依据用户组卷的方式,如果用户采用随机试卷,那么在试题库中保存用户的组卷策略编号,具体的组卷策略保存在组卷策略表中。

图4 用户登录界面系统登录采用分角色权限登录机制,系统会自动根据用户的权限显示不同的功能菜单。

登录页面是系统的起始页面,根据MVC的机制,需要首先创建登录控制器LoginController,设置控制器默认的Action(Index)的转向页面,在该转向页面中设计登录界面。

登录流程如图5所示。

4.2 主界面设计图5 登录流程学生和教师登录后,系统会进入MainFrame框架页面,根据用户的类型加载不同的菜单框架页面,教师主界面如图图6 教师主界面图7 管理菜单结构考试系统中的基础数据是试题库,因此,在系统设计中,需要着重考虑如何管理题库,如果能够快捷导入试题,就可以更好进行试题管理。

《大学计算机基础考试系统的分析与设计》

《大学计算机基础考试系统的分析与设计》

《大学计算机基础考试系统的分析与设计》篇一摘要:本文主要分析了大学计算机基础考试系统的需求背景、系统架构、功能设计及关键技术实现。

通过对系统的深入分析与设计,旨在构建一个高效、便捷、智能的在线考试平台,以适应现代大学计算机基础教育的需求。

一、引言随着信息技术的快速发展和高等教育改革的不断深入,大学计算机基础课程的教学与考试方式也在不断更新。

为了满足学生在线学习和自主复习的需求,提高考试管理的效率和准确性,开发一套大学计算机基础考试系统显得尤为重要。

二、系统需求分析1. 用户需求:本系统主要服务于教师、学生和管理员三大用户群体。

教师可进行题库管理、试卷生成及在线阅卷;学生可进行在线答题、成绩查询及错题复习;管理员负责系统维护和用户权限管理。

2. 功能需求:系统应具备在线答题、自动评分、成绩统计与分析、题库管理、试卷生成及在线阅卷等核心功能。

同时,为保障系统安全,需实现用户身份验证和权限管理。

三、系统架构设计1. 技术架构:本系统采用B/S架构,基于前后端分离的开发模式,使用Spring Boot框架进行后端开发,前端采用HTML5、CSS3及JavaScript技术。

数据库选用MySQL或MongoDB等关系型或非关系型数据库,以满足大规模数据存储的需求。

2. 整体架构:系统整体架构分为表示层、业务逻辑层和数据访问层。

表示层负责用户界面展示;业务逻辑层负责业务处理和数据处理;数据访问层负责与数据库的交互。

四、功能设计1. 题库管理功能:教师可对题目进行增删改查,支持多种题型(如选择题、填空题、简答题等),并可对题目进行分类和标签管理。

2. 在线答题功能:学生可进行在线答题,系统支持随机组卷和固定组卷两种方式,自动记录答题进度和成绩。

3. 自动评分与成绩统计功能:系统根据答题情况自动评分,并生成详细的成绩统计报表,便于教师进行成绩分析和教学评估。

4. 试卷生成与在线阅卷功能:教师可根据需求生成试卷,系统支持多种阅卷模式(如手动阅卷、自动阅卷等),提高阅卷效率。

《大学计算机基础考试系统的分析与设计》范文

《大学计算机基础考试系统的分析与设计》范文

《大学计算机基础考试系统的分析与设计》篇一一、引言随着信息技术的快速发展,计算机基础教育逐渐成为大学教育中不可或缺的一部分。

而考试作为评估学生学习效果的重要手段,结合计算机技术设计出适合的考试系统变得尤为重要。

因此,本篇范文将对大学计算机基础考试系统进行全面的分析与设计。

二、考试系统的需求分析1. 用户需求分析本系统主要服务于大学计算机基础课程的教师和学生。

教师需要一款能够方便出题、组卷、评卷的考试系统,而学生则需要一个能够进行在线答题、查看成绩的系统。

2. 功能需求分析根据用户需求,考试系统应具备以下功能:(1)题库管理:包括题目的添加、删除、修改、浏览等功能。

(2)试卷生成:根据教师设置的题型、难度、分值等参数,自动生成试卷。

(3)在线答题:学生登录后,进行在线答题,系统应具备计时、交卷等功能。

(4)自动评卷:系统应能自动评阅客观题,减少教师的工作量。

(5)成绩管理:包括成绩的录入、查询、统计、分析等功能。

三、考试系统的设计1. 系统架构设计本系统采用B/S架构,即浏览器/服务器架构。

用户通过浏览器访问系统,服务器负责处理用户的请求并返回相应的数据。

系统使用数据库进行数据存储,保证数据的安全性和可靠性。

2. 数据库设计数据库是考试系统的核心,应包含以下数据表:(1)题目表:存储各种类型的题目。

(2)试卷表:存储生成的试卷信息。

(3)成绩表:存储学生的答题信息和成绩。

(4)用户表:存储教师和学生用户的信息。

3. 系统功能设计根据需求分析,系统应具备以下功能模块:(1)题库管理模块:实现题目的添加、删除、修改、浏览等功能。

(2)试卷生成模块:根据教师设置的参数,自动生成试卷。

(3)在线答题模块:学生登录后,进行在线答题,系统应具备计时、交卷等功能。

(4)自动评卷模块:系统应能自动评阅客观题,对于主观题,教师可以进行手动评阅。

(5)成绩管理模块:包括成绩的录入、查询、统计、分析等功能。

教师可以通过此模块了解学生的答题情况和成绩分布。

《基于WEB的计算机应用基础考试系统的开发与设计》范文

《基于WEB的计算机应用基础考试系统的开发与设计》范文

《基于WEB的计算机应用基础考试系统的开发与设计》篇一一、引言随着信息技术的飞速发展,计算机应用基础考试系统的开发与设计已成为教育领域的重要课题。

基于WEB的计算机应用基础考试系统,以其高效、便捷、可扩展等优势,越来越受到广大教育机构和考生的青睐。

本文将介绍一种基于WEB的计算机应用基础考试系统的开发与设计方法,以期为相关研究与应用提供参考。

二、系统需求分析首先,我们需要明确系统的需求。

基于WEB的计算机应用基础考试系统应具备以下功能:1. 考生管理:包括考生信息的录入、查询、修改和删除等功能。

2. 题库管理:包括题目的录入、编辑、分类和查询等功能,以便于题目的更新和维护。

3. 在线考试:考生可随时随地进行在线考试,系统应支持多种题型,如选择题、填空题、简答题等。

4. 自动评分:系统应能自动对考生的答题进行评分,并给出总分和各题得分。

5. 考试监控:系统应具备考试监控功能,如防作弊、考试时间控制等。

6. 数据分析:系统应能对考生的考试成绩进行统计和分析,以便于教师和学生了解学习情况。

三、系统设计根据需求分析,我们可以进行系统设计。

系统设计主要包括以下几个方面:1. 技术架构设计:采用B/S架构,使用HTML5、CSS3、JavaScript等前端技术,以及Java、PHP等后端技术进行开发。

数据库采用MySQL或Oracle等关系型数据库。

2. 界面设计:界面应简洁明了,操作便捷。

可采用响应式设计,以适应不同设备的显示。

3. 功能模块设计:根据需求分析,将系统划分为考生管理模块、题库管理模块、在线考试模块、自动评分模块、考试监控模块和数据分析模块等。

4. 数据库设计:设计合理的数据库表结构,以满足系统的数据存储需求。

四、系统开发在完成系统设计后,我们可以进行系统开发。

开发过程主要包括以下几个步骤:1. 编写代码:按照功能模块设计,编写前端和后端代码。

2. 数据库搭建与配置:搭建数据库环境,配置相关参数。

《大学计算机基础考试系统的分析与设计》

《大学计算机基础考试系统的分析与设计》

《大学计算机基础考试系统的分析与设计》篇一一、引言随着信息技术的迅猛发展,计算机在高等教育中发挥着越来越重要的作用。

为适应这种发展趋势,各大高校都建立了计算机基础考试系统。

这种系统旨在帮助学生进行计算机基础知识的学习与巩固,并有效地进行知识测评。

本文将对该考试系统进行详细的分析与设计。

二、系统需求分析1. 用户需求分析本系统主要服务于大学计算机基础课程的教师和学生。

教师需要一套便捷的出题、组卷、发布、阅卷及成绩分析的系统,而学生则需要一个能够进行自我检测、实时反馈的在线考试平台。

2. 功能需求分析(1) 试题管理:系统应具备题库管理功能,包括试题的录入、编辑、删除等操作。

(2) 组卷功能:根据考试需求,系统应能自动或手动组卷,保证试卷的难易程度和知识覆盖面。

(3) 在线考试:学生需通过该功能完成考试,系统应支持实时监考,防止作弊行为。

(4) 阅卷与成绩分析:系统应具备自动阅卷功能,并能对考试成绩进行统计分析,为教师提供详细的成绩报告。

三、系统设计1. 系统架构设计本系统采用B/S架构,用户通过浏览器访问系统,无需安装额外的软件。

系统后端采用服务器-数据库架构,保证数据的安全性和稳定性。

2. 数据库设计(1) 试题表:记录试题的基本信息,包括题目、答案、知识点等。

(2) 试卷表:记录试卷的基本信息,如试卷名称、考试时间、总分数等。

(3) 用户表:记录教师和学生等用户的基本信息。

(4) 成绩表:记录学生的考试成绩及分析数据。

3. 系统功能模块设计(1) 登录模块:教师和学生通过账号密码登录系统。

(2) 试题管理模块:教师通过该模块进行试题的录入、编辑、删除等操作。

(3) 组卷模块:教师根据考试需求,进行手动或自动组卷。

(4) 在线考试模块:学生通过该模块完成考试,系统支持实时监考和防作弊功能。

(5) 阅卷与成绩分析模块:系统自动阅卷,并生成详细的成绩报告供教师参考。

四、系统实现与测试1. 系统实现系统采用Java语言开发,使用Spring Boot框架进行后端开发,前端采用HTML5、CSS3和JavaScript等技术实现。

《大学计算机基础考试系统的分析与设计》范文

《大学计算机基础考试系统的分析与设计》范文

《大学计算机基础考试系统的分析与设计》篇一一、引言随着信息技术的迅猛发展,计算机考试已成为高校教学评价的重要手段。

为提高考试管理的效率及考试的公平性,大学计算机基础考试系统的开发显得尤为重要。

本文旨在分析大学计算机基础考试系统的需求、设计思路及实现方法,为相关系统的开发提供理论依据和技术支持。

二、系统需求分析1. 用户需求大学计算机基础考试系统主要服务于教师、学生和管理员。

教师需要发布考试信息、在线组卷、监考及评卷;学生需要参加考试、查询成绩;管理员需要维护系统数据、监控考试状态。

2. 功能需求系统需具备在线组卷、考试通知发布、在线监考、自动评卷、成绩查询与统计、考生信息管理等功能。

同时,为保证考试公平性,需实现防作弊功能,如禁止切屏、在线检测等。

三、系统设计1. 系统架构设计大学计算机基础考试系统采用B/S架构,基于Web浏览器进行访问。

系统后端采用Java语言开发,数据库选用MySQL,保证系统的稳定性和数据的安全性。

2. 数据库设计数据库设计是系统设计的关键部分。

根据系统需求,设计考生信息表、试卷信息表、成绩表等,确保数据的准确性和完整性。

同时,为提高数据查询效率,需对数据库进行优化设计。

3. 系统功能设计根据需求分析,设计系统各个功能模块。

包括用户登录模块、考试通知发布模块、在线组卷模块、监考模块、评卷模块、成绩查询与统计模块等。

各个模块之间通过接口进行数据交互,保证系统的稳定运行。

四、系统实现1. 技术选型系统实现采用Spring Boot框架,结合HTML、CSS、JavaScript等前端技术,实现系统的前后端分离。

同时,为保证系统的安全性,需采用HTTPS协议进行数据传输。

2. 具体实现(1)用户登录:通过验证用户名和密码,实现用户的登录功能。

(2)在线组卷:教师可根据考试需求,在线组卷,生成试卷。

(3)考试通知发布:系统自动将考试通知发送至学生邮箱或短信平台。

(4)在线监考:通过摄像头和屏幕共享技术,实现在线监考功能。

计算机等级考试管理系统的开发与应用分析

计算机等级考试管理系统的开发与应用分析

计算机等级考试管理系统的开发与应用分析作者:***来源:《中国新通信》2021年第11期【摘要】随着通信技术和计算机技术的不断发展和应用,我国高校将计算机作为考试工具,并对计算机等级考试提出了更高的要求,旨在实现计算机考试的规范化、标准化和系统化管理。

为了提高计算机等级考试的效率和效果,现设计一款功能完善、实用性强的计算机等级考试管理系统。

首先,针对系统需求分析结果,完成对系统基本架构设计以及系统构成设计,其次,从数据模块设计、试题管理端功能设计、考生客户端功能设计三个方面入手,完成对系统核心功能详细设计和开发,最后,探讨了系统推广应用方式。

结果表明:计算机等级考试管理系统运行正常、可靠、稳定,各个功能模块实现满足设计相关要求,符合实际应用需求。

希望通过这次研究,为相关从业者提供有效的借鉴和参考。

【关键词】计算机等级考试管理系统开发应用传统计算机等级考试模式下,需要借助软盘向考生发送试题,这就要求工作人员在开考之前,大规模地复制软盘,浪费了大量的人力成本、物力成本和财力成本。

而计算机等级考试管理系统的出现和应用可以从根本上解决以上问题。

通过开发和应用该系统,不仅可以实现对计算机等级考试的统一化、集中化控制和管理,还能根据考试级别,自动向考生发放试题,为实现上机文件的全面收集和整理提供重要的平台支持。

因此,如何科学开发和应用计算机等级考试管理系统是技术人员必须思考和解决的问题。

一、系统总体设计1.1系统基本架构设计该系统在具体的设计中,主要在使用C/S系统架构模式的基础上,综合运用了客户/服务器数据库技术,构建出如图1所示的系统C/S架构结构。

从图1中可以看出,考生在上机考试期间,主要采用FTP服务器模式,完成对程序文件的上传[1]。

此外,通过利用FTP服务器,可以构建出多种文件夹,这些文件夹与考生的考试语种一一对应,另外,在所有的语种文件夹内,均收集和整理了上机程序试题文件。

1.2系统构成该系统主要包含以下五个子系统:1.试题管理子系统。

试题管理系统UML系统分析与设计说明

试题管理系统UML系统分析与设计说明

《信息系统分析与设计》课程设计报告班级:_____________ 信管1002 __________________ 姓名:_______________________________________ 学号:_______________________________________试题管理系统课程设计要求:1、应画出该系统的完整用例图。

2、给出负责模块的用例的详细事件流描述。

3、从用例的事件流描述中获取候选的实体类,确定类之间的关系并画出正确的类图。

4、画出用例的顺序图以及协作图。

5、根据用例的事件流描述,画出用例的活动图。

6、根据类图,画出类的状态图。

7、最后给出系统的构件图、部署图。

&具有完整清晰的设计流程。

9、各图布局合理、美观。

10、提供完整的课程设计说明书。

课程设计说明书的正文应包含以下几部分:1、封面;2、系统分析:给出详细分析过程;3、系统设计:给出系统的UML图;4、遇到的问题及解决方案。

摘要传统的试题管理方法因受到时间、空间和管理维护等因素的限制,已很难适应现代信息社会教育教学发展的需求。

随着计算机技术、网络技术和数据库技术的成熟与稳定以及全国各高校校园网的建立和教育教学管理信息化程度的不断提高,试题管理系统获得了前所未有的发展前景与强大的技术支持。

因此,教学管理者希望有一个集试卷分类、试卷管理、试题管理等功能于一体的网络试题库管理系统,以提高管理效率。

而利用计算机自动生成试卷,并通过积累逐步形成有效试题库,使试题和试卷的管理高效便捷,同时也使教学方式和考试方式有更多选择。

这对提高教学效率,有效利用资源和使传统的教学方式逐步走向自动化具有重要作用。

所开发的系统提供了试卷分类、试卷管理、试题管理及试卷生成等功能,为教师提供了一个功能强大的平台,通过这个平台教师可以根据实际教学情况来组成相应的试题与试卷,并轻松的管理试题库与试卷库,在实际应用中可以有效减轻教师的工作量。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机软件技术基础课程设计设计题目:考试管理系统分析与设计班级:自动化学号:***********姓名:***指导老师:***引言世界经济的快速发展和计算机技术的日益成熟,计算机被应用到人类活动的各个领域,各种应用软件也相继问世,这其中有相当一部分是管理软件。

使用管理软件自然是为了方便人们对一些事物进行管理,而有些软件功能比较单一或已经过时,不能满足当今社会的需要,这就要求我们要跟上时代的步伐,不断的去创新和完善。

如今各大、中院校的学生或计算机爱好者都在热情高涨地学习计算机语言,而且在学习过程中或学习到某一阶段后,都要对已掌握的知识进行练习和测验。

这需要对已有的大量试题进行有条件的选择,然后再做一般的练习和做成试卷。

然而,这种普及的学习计算机语言是近些年才有的,根据调查得知,学习者在巩固知识和检验自己水平时作的试题练习,主要方式是基于在书本上寻找合适的试题,然后再到书面上去完成试题,最后再对照正确答案,教师在给学生出试卷时也基本是以上方式。

这样选择由于试题繁多,不易查找;选题、对照答案、评分或选题、排版,出卷这一过程会浪费很多时间。

而且很多试题分散在各个书本上,不能集中在一起。

基于此问题,我认为有必要建立一个考试管理系统,学生信息管理和试题选择及管理工作规范化,系统化,程序化,提高试题处理的速度和准确性,能够快速、准确、有效的对试题进行需要的操作。

目录第一章概述…………………………………………1.1 目的和意义………………………………1.2 程序功能介绍……………………………1.3 程序框图…………………………………1.4 考试管理系统结构图……………………第二章系统需求分析………………………………2.1 整体需求分析……………………………2.2 命题子系统的分析………………………2.3 考试子系统的分析………………………2.4 阅卷子系统的分析………………………2.5 查询子系统的分析………………………第三章随机抽题算法设计…………………………第四章客观机器阅卷算法设计……………………4.1 系统需求分析……………………………4.2 系统总体设计……………………………4.3 选择题阅卷模块…………………………4.4 填空题阅卷模块…………………………第五章结束语………………………………………第六章参考文献……………………………………第一章概述1.1 目的和意义一个学校,考试管理是学校一项重要工作。

考试管理无论是哪个学校都要进行的工作。

计算机管理信息、试卷、题库档案,日常办公,实现无纸化办公,分析题库现状通过强大的查询和索检高效的索检出数据,提高办事效率。

因此,开发这样一套考试管理软件成为很有必要的事情,在下面的内容中我介绍一下我的考试管理系统,并谈谈其开发过程和所涉及到的问题及解决方法。

1.2 程序功能介绍考试管理系统主要包括命题子系统,考试子系统,阅卷子系统和查询子系统。

主要涉及的信息数据包括系统管理员信息、系部信息、班级信息、学生信息、教师信息、考试信息和各种题库等数据,设计的操作主要包括信息数据的管理,为考试定制试卷、试卷管理等管理操作。

功能包括:1)基本信息管理:包括对系统管理元登录信息、系部信息、班级信息、学生信息、教师信息的录入、修改和删除等功能。

2)试卷管理:包括创建的试卷数据的删除、添加、修改,定制考试试卷、选择考试试卷、输出考试试卷等功能。

3)题库管理:包括对选择题、填空题、单选、多选题题库的管理功能。

1.3程序框图系统 学生教师1.4 考试管理系统的结构图第二章 系统需求分析2.1整体性需求分析考试是教与学最直接、有效的检验手段,利用计算机进行考试,要求考试系统能够满足“教”的主体(老师)与“学”的主体(学生)的实际需求。

我们可以简单的用流程图描绘出这种关系如下:在需求分析中我们经常采用结构化的分析思想:自顶向下,逐步求精。

利用关系模型建立简单的图形进行设计的分析。

再进一步进行分析:其数据图层如下所示:2.2 命题子系统的分析在该子系统的设计,要考虑到命题库的特点及其类型。

其大致可分为两类:主观题部分和客观题部分。

在教师登陆时,需要输入相应的指令,据此,可以分析教师在该子系统中的一个属性。

通过登陆到系统中从而进行命题。

教师的属性可以用关系模型来表示:如下所示:用户名教师密码数据的需求:如题目的录入与随机的组合,用数据字典(DD)记录数据。

该子系统完成主观题与客观题两部分的录入,组合成试题库,老师登陆管理后,可以在该系统内进行题目的更改和增加,完成命题的功能。

在客观题部分,可以将不同题型题目输入进去;如填空题和选择题,然后再把标准的答案分装进去。

主观题部分,对于题目给出的答案只能作为参考,真正考试阅卷时,需对不同的考生进行不同的阅读。

2.3 考试子系统的分析此模块的功能是学生窗口,学生登陆考试子系统,进行考试。

在考试子系统中,其需要有识别考生的功能,并记录考生的考试状况,以便后面子系统的设计查询。

对学生这个实体而言,可以用如下的一个关系模型来表示:学生属性图在考生登陆该系统进行考试后,考试系统能完成随机抽题的功能,试题可自动生成,例如题目可以设置为选择题,判断题。

其属性也可以用关系模型来表示(如下图所示),在考试结束后系统会保存考生的答题及试卷,然后送至阅卷子系统进行评分考试试题属性图2.4阅卷子系统的分析在此模块内,系统会自动对填空题、选择题以及判断题进行确定,评分,该环节包括了对考试子系统生成考生文件的核对,完成评分功能。

那么在阅卷子系统中,就必须要对标准答案进行保存,并能够在考试子系统送来的文件后进行比较判断考生的答案是否正确。

以上属于客观题评分部分,那么对于主观题,可以要求教师登陆系统,抽出考生的试卷,参照给出的标准答案进行人工的评分阶段。

当完成主观题和客观题部分,提示完成阅卷并自动生成考试成绩文件,可以供考生查询。

2.5 查询子系统的分析在考生登陆该系统后,根据考生的信息,可以查询考试成绩。

对于成绩可以用如下(见下图)的关系模型来表示。

查询子系统模块中,系统要有识别考生信息的功能,能够把在阅卷子系统中产生的考试成绩文件调入该查询模块系统,可以供考生查询。

成绩属性图以上各部分完成了四个子系统的功能模块的需求性分析,对不同的模块进行可功能的分工,相互之间却又建立着紧密的联系。

总体上完成了对该考试管理系统的需求性分析与设计要求的规划。

第三章随机抽题算法设计随机抽题是很多有关考试软件经常会遇到的问题,设相关题库中有n道题,要从中抽取m ( m<=n ) 道题,这要首先产生m个随机数。

在C语言中,一般的做法是:int *intArray;int i;time_t t;intArray = malloc(m*sizeof(int));/*time(&t)将获取当前时间,srand把当前时间作为随机数的种子*/srand((unsigned) time(&t));/*依次产生m个随机数*/for(i=0; i<m; i++)intArray[i] = rand() %n;……free(intArray);这样,就可以产生m个随机数,方法很简单,并且利用了当前时间作为随机数的种子,尽量地避免了出现重复抽题。

但仔细一分析,重复抽题并未完全避免,同时是否已抽题不影响今后的抽取,将导致各个试题被抽取的几率不等。

修正的方法有检查新抽取的题是否重复,若重复则重抽,这样做的方法很简单,仅仅在上面的程序中加入判断重复的语句,但各个试题被抽取的几率仍然不等。

怎样办呢?我们可以将1到n的n个数看成是n个人围成一个圆形,先产生一个随机数round,从1开始数(超过n有将是1),当数到round时,round号人退出(以后数到round时将跳过);接着又产生一个随机数round1,从前面的round一直数到round1(依次往下数,若经过round 时将跳过),…,如此下去,一直到m个题都被抽取。

此方法表面看来很难,要设一个有n个元的集合,已被数到的元素将被删除,直到m个元素都被抽取为止,这样要有一个n(一般n>>m)个元的集合,将消耗较多的时间和空间资源。

有没有更简单的方法呢?先分析“退出”的影响。

round退出后,小于round的编号不变,大于round的编号减一;round1退出后,小于round1的编号不变,大于round1的编号又要减一;…,这样就可以很简单的分析出一个简单的算法:依旧按前面所述的方法抽取随机数roundk,将roundk 按n求余数,再将roundk与round1, round2, …, roundk-1(此k-1个数已增序排列,roundk-1为前k-1次得到的随机数最大者)相比较,然后进入比较程序,先与round1比较,若roundk>= round1,则roundk增一,再与round2比较,若roundk>= round2,则roundk再增一,…,这样就可以很简单地实现了无重复而且各个试题被抽取的几率相同的随机抽题算法。

具体的做法是:int *intArray;int i,j,k,temp;time_t t;intArray = malloc(m*sizeof(int));srand((unsigned) time(&t));/*依次产生m个随机数*/for(i=0; i<m; i++){temp= rand() %n;/*查找temp原先的“真实”编号*/for(j=0; j<i; j++)if(temp>= intArray[j])temp++;else{/*temp应插在k位置处, 这样数组intArray就实现了排序,同时得到了temp原先的编号*/k=j-1;break;}for(j=i-1;j>k;j--)intArray [j+1]= intArray [j];intArray [k] =temp; ①/*以下根据题号产生题库部分省略*/……}free(intArray);上述做法的好处在于,没有任何附加存储空间,运算的复杂性大致上等于一个插入排序算法,但原始产生的题号顺序已经“被忽略了”,添加一个有m个元素的附加数组,就可以保留原始产生的题号顺序,例如intRandArray是一个有m个元素的附加数组,将①改为:intRandArray[i] =intArray [k]= temp;如此我们就可以已很小的时间与空间代价,实现了无重复而且各个试题被抽取的几率相同的随机抽题算法。

第四章客观题机器阅卷算法设计4.1 系统需求分析为了使系统能有效地实现对考试的自动阅卷,同时能很好地满足使用者的需求,系统的需求分析是系统的设计与实现的基础。

相关文档
最新文档