资源描述
基于.NET的自动阅卷考试系统设计【摘要】随着网络技术的发展,教学方式发生了很大的变化。传统的教学考试方式已渐渐无法适应社会的发展,它要求有新的考试方式来适应新的教学方式。网络化考试系统在很多领域都已经有所应用,但在计算机类考试中较为鲜见,特别是带阅卷功能的考试系统。本系统利用.NET技术,采用C#语言来实现应用程序的设计和功能的实现,数据库则采用SQL SERVER 2000来设计。这是一个基于B/S(浏览器/服务器模式)架构的系统。本文介绍了自动阅卷考试系统的社会需求、发展前景和系统的主要功能,对各个功能模块进行了详细的介绍。关键词:B/S(浏览器/服务器模式),反射,.NET,自动阅卷Automatic Scoring Examination SystemBased On .NETAbstractWith the development of network technology, teaching methods have taken great changes. Examination of the traditional teaching methods are gradually unable to adapt to the development of society, it requires a new examination of ways to adapt to the new teaching methods.Network examination system have been used in many areas, but in the computer examination is uncommon, especially with automatic scoring function of the examination system. This system used. NET Technology and C # language to achieve the application of the design and functionality of the realizetion .The database is used SQL SERVER 2000 to design;This system is based on B / S (browser / server model) structure. In this paper ,it Introduced the Social needs、development prospects and main function of the automatic scoring examination system ,of course carried out a detailed introduction of the various functional modules.Keywords: B/S (browser/server model), reflection,.NET, automatic scoring目 录1.背景介绍11.1.网络考试的背景介绍11.1.1.网络考试系统的社会需求11.1.2.目前已有的考试系统的优、缺点11.2.选择考试系统的原因21.3.设计目标22.基于.NET的自动阅卷考试系统概述32.1.用户需求简介32.1.1.功能需求32.1.2.性能需求32.1.3.可靠性和可用性需求32.2.工作过程32.3.系统特点33.设计中要解决的问题53.1.用户权限53.2.考卷的设置53.3.自动阅卷的实现53.4.考试时间控制问题54.总体设计64.1.系统设计64.1.1.设计目标64.1.2.开发环境64.1.3.开发语言64.1.4.开发工具64.1.5.后台数据库64.1.6.运行环境64.2.数据库需求设计64.2.1.系统流程图64.2.2.系统E-R图84.2.3.数据库中的表84.2.4.数据库中的视图124.3.系统总体构架设计144.3.1.系统层次结构图144.3.2.系统流程图145.系统主要功能模块设计185.1.登陆模块185.2.注册模块185.3.学生模块185.4.教师模块185.5.重点、难点代码设计195.5.1.时间控制的实现195.5.2.自动阅卷的实现215.6.实现界面306.系统实现技术366.1.B/S模式366.2.反射366.3.SqlHelper387.性能测试与分析407.1.测试目的和原则407.1.1.测试的目的407.1.2.测试的原则407.2.测试环境与测试条件407.2.1.测试环境407.2.2.测试条件407.3.测试实例的研究与选择407.4.实例测试结果427.5.性能分析42结束语43谢辞43参考文献43基于.NET的自动阅卷考试系统随着网络技术的发展,教学方式发生了很大的变化。传统的教学考试方式已渐渐无法适应社会的发展,它要求有新的考试方式来适应新的教学方式。网络化考试系统在很多领域都已经有所应用,但在计算机类考试中较为鲜见,特别是带阅卷功能的考试系统。研究这个系统,重点在于考卷的自动生成和批阅,特别是对于主观填空题和编程题。充分利用在大学所学的知识和现有的网络科技技术进行研究,加深、巩固已学知识,接触、学习新的知识,提高技能,希望能通过研究增强实践经验,减轻老师的负担,节约资源,同时 对自己进行考核,为步入社会做准备。1. 背景介绍1.1. 网络考试的背景介绍随着计算机网络技术的突飞猛进及教育网络化的不断推进,传统的考试模式表现出一些弊端,比如繁杂的试卷收发、投入相当人力的阅卷等。在相当程度上,这些工作可以完全或部分交由计算机完成。在线考试系统指利用计算机,通过计算机网络实现对学生的考核。与传统的考试模式相比,它极大限度排除了人为因素的作用,保证了考试的客观、公正;通常考生在考试之后,即可得到考试成绩;而且通过计算机阅卷,通过事先设计好的答案,使得阅卷具有高效性、可靠性、公平性。尤其在应用考试系统对计算机有关知识的考核中,除了理论知识之外,还可以考查考生的实际动手操作能力。网络考试系统是一个基于数据库和计算机网络的在线实时测试系统,包括考生管理系统、考试系统、题库系统、阅卷系统、考试管理系统等。该系统可以在被允许的任何地点、时间进行在线实时考试。具有信息量大、效率高、管理方便、考试客观公正等优点,教学人员可以很容易地从考试结果中获得教学反馈信息。1.1.1. 网络考试系统的社会需求考试是教学效果测量的重要手段。传统的考试方式是以纸为媒介的,它要求教师印试卷、安排考试、监考, 收集试卷, 评改试卷, 这是一个漫长而复杂的过程, 越来越不适应现代化教学的需要.近年来,随着计算机技术和网络技术的不断进步和飞速发展,依托计算机技术的在线考试方式或网上考试方式的研究一直在进行之中,目前在线考试方式在驾照考试和英语考试等领域已付诸实施,而对于计算机类考试的系统则比较少见,特别是带有自动改卷功能的考试系统。随着计算机科学技术和网络的发展,传统等教学方式很难适应需求,它要求一种新的教学方式,而网络化教育方式顺势而生。基于.NET的网上考试系统正是实施网络化教育的一个重要组成部分, 它可以利用网络的无限空间, 随时随地对学生进行考试, 利用数据库使考试过程得到简化.考试过程中试卷的生成和批改都由计算机完成, 其目标是实现考试的无纸化、标准化和学生成绩管理的网络化和自动化。1.1.2. 目前已有的考试系统的优、缺点网络考试系统是近年来的一个热点。随着网络的发展,大家都希望可以充分利用现代化技术减轻工作量,实现自动化管理。以往的许多网络考试系统实现了考试环节中的大部分工作,已经可以很完美的投入使用,其安全性、扩充性、准确性、便捷性都得到了充分的体现。其中,选择题、判断题等客观题的自动阅卷、学生信息的管理、考卷的组织等功能模块做的非常不错。对于主观题如填空题、编程题、简答题,绝大多数只实现了考试而为实现批阅的功能,未实现全部自动化。这使得教师在系统批阅完客观题后还要手动批阅主观题,不能很好的节约人力、物力,使得资源无法充分利用。主观题的阅卷有人为的参与,存在主观因素,没办法保证考试的公平、公正。1.2. 选择考试系统的原因因为以往的考试系统存在一定的缺陷,未完成主观题的阅卷部分,而一个完整的含主观题自动阅卷的考试系统被迫切需求。此设计在原有考试系统的基础上突破、创新,增加主观填空题、程序题的自动阅卷功能。应用C#语言中的反射知识可以实现简单的程序体的修改。选择该开发系统,具有创新性、可行性、需要性,其科学性也不言而喻。1.3. 设计目标本设计的目的是设计一套完整的考试系统,实现考卷的自动生成、试卷管理、查看考生考试结果、学生考试、自动阅卷等功能,增加主观题中填空题和编程题的自动阅卷功能。实现考试的无纸化、标准化和学生成绩管理的网络化和自动化。1.4. 小结由上所知,网络考试系统是科学技术发展的必然要求,具有很大的社会需求。而现有的用于计算机学科的网络需考试系统不完善,缺少主观题自动阅卷功能,这些证明基于.NET的自动阅卷考试系统是正确的选择。2. 基于.NET的自动阅卷考试系统概述2.1. 用户需求简介基于.NET的自动阅卷考试系统是一个面向计算机类学科的考试系统,它与其他其他考试系统的区别在于它增加了主观填空题、编成题的自动阅卷功能。它应用C#语言开发,以.NET为平台,采用B/S(浏览器/服务器) 模式, 用户分为两种:普通用户和管理员用户(admin)。学生属普通用户,教师属管理员用户。他们拥有的权限有所不同,学生只能进行考试和修改密码;教师可以根据自己所教授的课程新建科目、管理题库,还可以设置试卷、查看学生的考试结果。通过对页面的操作对数据库进行读写操作。2.1.1. 功能需求 该系统要求实现题库管理、班级管理、学生答题、试卷组织、自动阅卷等功能,教师能够查看学生的考试成绩及答题情况,在试卷投入使用前能想进行测试、查看考卷的整体情况,学生能自行修改自己的密码。2.1.2. 性能需求学生在做完程序题后,需上传exe文件,然后连同试卷其它部分的答案一起提交,此过程必须在2分钟内完成。安全性有所保障,学生密码由学生本人设置,以防他人冒用其帐号进行考试。2.1.3. 可靠性和可用性需求系统能正常运行,在100人以内同时登录时不发生错误,其所有功能在运行时不发生故障。2.2. 工作过程基于.NET的自动阅卷考试系统采用B/S(浏览器/服务器) 模式,客户无需安装客户端,只要有浏览器就可以使用。在登陆页面,如果已注册的用户,更具自己的帐号、密码就可以进去系统,根据用户权限进入不同的页面;如果是还未注册的用户则比需先按注册按钮进行注册后才可以进入系统。一般用户(学生)登陆系统后,根据User.js跳转到一般用户主页面,其中具有修改密码、考试、退出三个功能,用户可以自行对其进行操作;管理员用户(教师)登陆系统后,根据Admin.js跳转到用户主页面,里面有科目管理、试卷管理、各种题目管理、答题测试、查看考试结果功能模块,教师根据需要进行操作。学生用户的考试功能模块只有在教师设置了考卷后才能进行,学生打完考卷后须自行提交,并上传程序题的代码和exe文件。系统将根据学生上传的考卷答题进行批阅,得出每一题的成绩和总成绩。2.3. 系统特点基于.NET的自动阅卷考试系统支持按权限对系统进行操作,即不同类型的用户拥有相异的权限:考试和管理。主要是在首页通过两种不同的方式进入相异的操作界面,其主要特点体现在以下两个个方面:自主调用数据库;自主管理数据库。自主调用数据库即允许用户能自由地从数据库中选题、生成试卷。自主管理数据库指一般用户具有添加、修改数据的权力,实现数据库的可扩充性和开放性。而admin 用户则另具有删除数据的权力如对题目的删除、试卷的删除、科目的删除等,从而达到了系统数据统一性和一致性的目的。2.4. 小结基于.NET的自动阅卷考试系统它采用B/S(浏览器/服务器) 模式,是面向计算机学科的考试系统。用户进入界面就可进行操作,内部与数据库相关的步骤对用户透明,他是一个简单的、易操作的、实用的系统。3. 设计中要解决的问题3.1. 用户权限不同类型的用户拥有不同的权限,这要求在设计时考虑不同权限用户的操作页面。比如学生可以答题、查看某些信息,但是不具有删除等权限;教师、管理员在具有对题库、试卷等的增、删、改操作权限。3.2. 考卷的设置考卷的设置是考试系统的一个重要部分,它包括试卷的基本信息和题型设置。如何进行组卷及题型数目的控制成了试卷设置的一大难点。此外,对于设置那份考卷用于考试也是一个值得考虑的问题。3.3. 自动阅卷的实现自动阅卷十本系统的重中之重。客观题的自动阅卷比较容易实现,运用匹配的方法就可以完成。主观题中,对于填空题,则运用匹配的方式来进行判断正确与否;程序题则运用C#中反射的技术来实现。3.4. 考试时间控制问题时间控制是学生考试系统一个很重要的组成部分。一直以来的考试都有规定在一定的时间内完成,否则考试就失去了它本身的意义。所以,在设计系统时需好好考虑时间控制的问题。4. 总体设计4.1. 系统设计4.1.1. 设计目标 设计一套完整的考试系统,实现考卷的自动生成、试卷管理、查看考生考试结果、学生考试、自动阅卷等功能,增加主观题中填空题和编程题的自动阅卷功能。4.1.2. 开发环境硬件环境:PC机软件环境:Windows XP、Microsoft Visual Studio 2005、SQL Server 2000、IIS4.1.3. 开发语言开发语言使用Visual C# 4.1.4. 开发工具Microsoft Visual Studio 2005、SQL Server 20004.1.5. 后台数据库后台数据库使用SQL Server 2000 ,其可管理和处理大批量的考试数据,并具有较高的可靠性。4.1.6. 运行环境硬件环境:PC机软件环境:Windows XP、www、Internet Explorer4.2. 数据库需求设计数据库是系统的重要组成部分,是系统的核心和基础。它把系统中大量的数据按一定的模型组织起来、提供存储、维护、检索数据的功能,使系统可以方便、及时、准确地从数据库中获取所需的信息。SQL Server 2000是一个常用的数据库开发软件,SQL语言本身是一个综合的、功能极强同时又简捷易学的语言,用它开发的软件数据结构化、独立性高、共享性高、冗余度低、易扩充。在本设计中,应用了数据库中的基本表和视图,应用程序对这些基本表和视图进行操作。4.2.1. 系统流程图4.2.1.1. 0层图4.2.1.2. 1层图教师模块流程图:学生答题模块流程图:4.2.2. 系统E-R图 4.2.3. 数据库中的表基本表是本身独立存在的表,在SQL中一个关系就对应一个基本表。一个或多个基本表对应一个存储文件。用户建立一个基本表后,可以对它进行增加、修改、查询、删除等操作。本设计中涉及到以下基本表,建立于数据库WebExam中。具体如下所示:1、用户信息表(User)列名数据类型长度是否主键允许空说明StudentIDbigInt8是不允许学生编号Namevarchar50否不允许用户名Passwdvarchar50否不允许用户密码Typevarchar50否不允许用户类型StudentNamevarchar50否允许学生姓名2、班级信息表(class)列名数据类型长度是否主键允许空说明ClassIDInt4是不允许班级编号ClassNamevarchar50否不允许班级名称StudentCountInt4否允许班级学生数IsDeletedBit1否不允许是否删除3、科目信息表(CourseInfo)列名数据类型长度是否主键允许空说明CourseIDInt4是不允许科目编号CourseNameNvarchar50否不允许科目名称IsDeletedBit1否允许是否删除4、 试卷信息表(Paper)列名数据类型长度是否主键允许空说明PaperIDInt4是不允许试卷编号NameVarchar50否不允许试卷名称CourseIDInt4否允许科目编号UsedBit1否允许是否用于考试IsDeletedBit1否允许是否删除CurrencyBit1否允许是否公有ExamTimeInt4否不允许考试时间长度5、试卷-试题表(PaperData)字段名数据类型长度主键允许空说明PaperDataIDInt4是不允许试题编号PaperIDInt4否不允许试卷编号TypeInt4否允许试题类型QuestionIDInt4否允许题目编号ScoreInt4否允许分数6、单项选择题信息表(Single)字段名数据类型长度主键允许空说明QuestionIDInt4是不允许题目编号QuestionDesVarchar800否不允许题目内容Answer1Varchar100否不允许备选答案1Answer2Varchar100否不允许备选答案2Answer3Varchar100否允许备选答案3Answer4Varchar100否允许备选答案4RightAnswerInt2否不允许正确答案CourseID Int4否允许科目编号ScoreInt1否允许分数IsDeletedBit1否允许是否删除CurrencyBit1否允许是否公有7、单项选择题答案表(SingleAnswer)字段名数据类型长度主键允许空说明QuestionIDInt4是不允许题目编号PaperDataIDInt4否不允许试题编号StudentIDbigInt8否不允许学生编号AnswerChar10否不允许学生答案8、多项选择题信息表(More)字段名数据类型长度主键允许空说明QuestionIDInt4是不允许题目编号QuestionDesVarchar800否不允许题目内容Answer1Varchar100否不允许备选答案1Answer2Varchar100否不允许备选答案2Answer3Varchar100否允许备选答案3Answer4Varchar100否允许备选答案4RightAnswerInt4否不允许正确答案CourseID Int4否允许科目编号ScoreInt4否允许分数IsDeletedBit1否允许是否删除CurrencyBit1否允许是否公有9、多项选择题答案表(MoreAnswer)字段名数据类型长度主键允许空说明QuestionIDInt4是不允许题目编号PaperDataIDInt4否不允许试题编号StudentIDbigInt8否不允许学生编号AnswerInt4否不允许学生答案10、判断题信息表(Judge)字段名数据类型长度主键允许空说明QuestionIDInt4是不允许题目编号QuestionDesVarchar800否不允许题目内容RightAnswerBit1否不允许正确答案CourseID Int4否允许科目编号ScoreInt4否允许分数IsDeletedBit1否允许是否删除CurrencyBit1否允许是否公有11、判断题答案表(JudgeAnswer)字段名数据类型长度主键允许空说明QuestionIDInt4是不允许题目编号PaperDataIDInt4否不允许试题编号StudentIDbigInt8否不允许学生编号AnswerBit1否不允许学生答案12、填空题信息表(Space)字段名数据类型长度主键允许空说明QuestionIDInt4是不允许题目编号QuestionDesVarchar800否不允许题目内容Answer1Varchar100否不允许第一空答案Answer2Varchar100否允许第二空答案Answer3Varchar100否允许第三空答案Answer4Varchar100否允许第四空答案CourseID Int4否允许科目编号ScoreInt4否允许分数IsDeletedBit1否允许是否删除CurrencyBit1否允许是否公有13、填空题答案表(SpaceAnswer)字段名数据类型长度主键允许空说明QuestionIDInt4是不允许题目编号PaperDataIDInt4否不允许试题编号StudentIDInt4否不允许学生编号Answer1Nvarchar100否不允许第一空答案Answer2Nvarchar100否允许第二空答案Answer3Nvarchar100否允许第三空答案Answer4Nvarchar100否允许第四空答案14、程序题信息表(Program)字段名数据类型长度主键允许空说明QuestionIDInt4是不允许题目编号QuestionDesVarchar800否不允许题目内容RightAnswerVarchar100否不允许正确答案CourseID Int4否允许科目编号ScoreInt4否允许分数IsDeletedBit1否允许是否删除CurrencyBit1否允许是否公有15、程序题答案表(ProgramAnswer)字段名数据类型长度主键允许空说明QuestionIDInt4是不允许题目编号PaperDataIDInt4否不允许试题编号StudentIDbigInt8否不允许学生编号AnswerInt4否不允许学生答案16、ProgramPath表字段名数据类型长度主键允许空说明QuestionIDInt4是不允许题目编号PaperIDInt4否不允许试卷编号Pathvarchar100否不允许路径17、Student Score表字段名数据类型长度主键允许空说明PaperIDInt4是不允许试卷编号StudentIDbigInt8否不允许学生编号CourseIDInt4否不允许科目编号ScoreInt4否不允许学生成绩 18、ExamTime表字段名数据类型长度主键允许空说明IDInt4是不允许编号StudentIDbigInt8否不允许学生编号PaperIDInt4否不允许试卷编号TimeLongInt8否不允许考试时间4.2.4. 数据库中的视图视图是从一个或几个基本表导出的表。它本身不独立存储在数据库中,即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中,他是一个虚表。所以,当基本表中的数据库发生变化时,从视图中查询出的数据也随之改变。视图与基本表在概念上是相同的,用户可以在视图上进行和基本表一样的查询操作,也可以再定义视图。本设计中根据需要建立了以下视图,这些视图将在下面一一列出:1、JudgeView视图,由PaperData和Judge两个基本表导出,Type=3,IsDeleted=0。列名导出表列名导出表PaperDataIDPaperDataPaperIDPaperDataQuestionIDPaperDataQuestionDesJudgeRightAnswerJudge2、MoreView视图,由PaperData和More两个基本表导出,Type=2,IsDeleted=0。列名导出表列名导出表PaperDataIDPaperDataPaperIDPaperDataQuestionIDPaperDataQuestionDesMoreAnswer1MoreAnswer2MoreAnswer3MoreAnswer4MoreRightAnswerMore3、PaperProgramView视图,由Paper和ProgramPath两个基本表导出。列名导出表列名导出表PaperIDPaperPathProgramPathNamePaper(别名:PaperName)3、ProgramAnswerView视图,由PaperData和Program两个基本表导出。列名导出表列名导出表QuestionIDProgramRightAnswerProgramPaperDataIDPaperDataScorePaperData4、ProgramView视图,由PaperData、Program、ProgramPath和Paper四个基本表导出,Type=5。列名导出表列名导出表PaperDataIDPaperDataPaperIdPaperDataQuestionIDPaperDataQuestionDesProgramPathProgramPathName(PaperName)Paper5、SingleView视图,由PaperData和Single两个基本表导出,Type=1 ,IsDeleted=0。列名导出表列名导出表PaperDataIDPaperDataPaperIDPaperDataQuestionIDPaperDataQuestionDesSingleAnswer1SingleAnswer2SingleAnswer3SingleAnswer4SingleRightAnswerSingle6、SpaceView视图,由PaperData和Space两个基本表导出,Type=4,IsDeleted=0。列名导出表列名导出表PaperDataIDPaperDataPaperIDPaperDataQuestionIDPaperDataQuestionDesSpaceAnswer1SpaceAnswer2SpaceAnswer3SpaceAnswer4SpaceRightAnswerSpace7、StudentJudgeView视图,由PaperData、Paper、 Judge、JudgeAnswer和Users五个基本表导出。列名导出表列名导出表StudentIDUsersPaperIDPaperStudentNameUsersPaperNamePaperTypePaperDataScorePaperDataPaperDataIDJudgeAnswer8、StudentMoreView视图,由PaperData、Paper、More、MoreAnswer和Users五个基本表导出。列名导出表列名导出表StudentIDUsersPaperIDPaperStudentNameUsersPaperNamePaperTypePaperDataScorePaperDataPaperDataIDMoreeAnswer9、StudentProgramView视图,由PaperData、Paper、ProgramAnswer和Users四个基本表导出。列名导出表列名导出表StudentIDProgramAnswerPaperIDPaperDatarStudentNameUsersPaperNamePaperTypePaperDataScoreProgramAnswerPaperDataIDPaperData10、StudentSingleView视图,由PaperData、Paper、Single、SingleAnswer和Users五个基本表导出。列名导出表列名导出表StudentIDUsersPaperIDPaperStudentNameUsersPaperNamePaperTypePaperDataScorePaperDataPaperDataIDPaperData11、StudentSpaceView视图,由PaperData、Paper、Space、SpaceAnswer和Users五个基本表导出。列名导出表列名导出表StudentIDUsersPaperIDPaperStudentNameUsersPaperNamePaperTypePaperDataScorePaperDataPaperDataIDSpaceAnswer12、StudentView视图,由Users基本表导出,Type=user,IsDeleted=0。列名导出表列名导出表StudentIDUsersClassIDUsersStudentNameUsersIsDeletedUsers4.3. 系统总体构架设计目前开发网络考试系统的模式通常有两种:一种是B/S(浏览器/服务器) 模式,另一种是C/S(客户/服务器) 模式。传统的C/S 结构是指若干客户端连接一个服务端,通过这样的交互方式来进行工作。这就需要分别编写服务器端和客户端软件,且客户机需要安装客户端软件,给以后的维护带来很大麻烦。在这样的方式下,受到限制的因素很多,比如不同网段下的客户端与服务器连接会非常麻烦等。而B/S 结构是指浏览器/服务器模式。在这种方式下,程序的设计只需在服务器端就可以完成,客户机只要有浏览器便可正常工作。B/S 带来的最大好处就是不受地域限制,只要网络是连通的,并且在系统维护时只要在服务器端进行,不需要分发到每个客户机,实现客户端零维护,大大节省了人力、物力、时间、费用。4.3.1. 系统层次结构图4.3.2. 系统流程图学生做答模块流程图用户登录管理模块流程图试卷管理模块流程图题库管理模块流程图4.4. 小结本章是对系统设计目标、开发语言、工具,运行环境、后台数据库、数据库设计、系统框架的简单介绍。并详细介绍了系统数据库基本表和视图的设计。5. 系统主要功能模块设计5.1. 登陆模块每个用户要进入系统都必须先到登陆模块。在此页面,如果你已经注册了帐号和密码,那么可以直接输入帐号、密码登陆,如果之前未注册过,则必须先注册,然后再登陆。Admin用户(如教师)直接用指定的帐号登陆,学生的帐号即为学号。5.2. 注册模块Admin用户无需注册,只有Users用户需要注册。在注册界面,用户选择自己的班级和学号,并填上自己的真实姓名和登陆用的密码按“确定”进行注册。学号唯一,若与别人相同则无法注册。5.3. 学生模块学生在登陆的时候,根据其用户类型,跳转到由user.js控制的学生用户的首页面。当你进入时会显示 “用户名 你好,欢迎进入”以“welcome”及字样。5.3.1.1. 密码修改模块用户如果需要修改自己的用户密码,可以点击上面的“修改密码”按钮,跳转到密码修改界面,只要重新输入新密码,确认一下就可以了。5.3.1.2. 答题模块学生等入后,到了考试时间就要开始答题。按“答题”按钮就可以进入答题页面。学生考试完毕或者考试时间到了以后,要按 “提交”按钮提交考卷。对于程序题要上传程序文件(EXE)和源码文件(RAR)。5.4. 教师模块教师在登陆的时候,根据其用户类型,跳转到由admin.js 控制的管理者用户的首页面。当你进入时和学生用户一样,会显示 “用户名 你好,欢迎进入”以“welcome”及字样。和学生用户不同的是由admin.js 控制的操作功能模块的不同。下面将一一列出了管理者所能操作的模块:5.4.1.1. 班级管理模块在班级管理模块中,老师可以看到各班的人数和班级成员,还可以对班级进行增加、删除等操作。5.4.1.2. 科目管理模块 每个教师根据自己所教授的课程添加科目,如果你所教的科目已经有其他老师添加过了,那么你可以和其他老师共用一个,或者在添加科目时加上标记以示区别。如数据库,可以用数据库04、数据库05以作区分。5.4.1.3. 试卷管理模块在选题界面,首先显示的是各门的科目名称。按科目后面相对应的“增加”按钮即可跳转到试卷设置页面,再次输入试卷的名称,并对整份试卷的结构进行设置,分数的分布、各题型数量的分布。总分低于或超出100分时总分数显示呈红色以示警告。设置好后按“确定”按钮进入选题界面,选好题后按“添加到试卷中”按钮向数据库提交数据,一份考卷也就设置完成了,也可以按“返回”按钮重新对考卷进行设置。如果对之前设置的考卷不满意,有需要修改的地方,你可以按“编辑”按钮进入考卷设置界面,再到选题界面,直到满意为止。要将一份考卷用于当前考试时,只要按前面“用于考试”按钮即可,在上面会显示“当前考试试卷为:当前考试用考卷名”。5.4.1.4. 选择题管理模块进入选择题管理界面,选择科目,页面将显示出此科目目前已有的选择题题目和对应的正确答案,单项选择在前,多项选择在后。用户可按上方的“添加单选题”、“添加多选题”添加题目,也可以按题目相后面对应的“编辑”按钮对题目进行修改,也可以删除题目。题目的添加和编辑页面是同一个页面,对题干、备选答案和正确答案进行设置,按确认添加成功。在添加、编辑页面有一个“公共”的复选框,如果选中这个框,则在其他科目也将显示着题题目,也可对其进行其它操作。但选题和多选题的添加、编辑界面的不同之处在于正确答案设置处,单选题用的是单选框(radio),而多选题用的是复选框(Checkbox)。5.4.1.5. 填空题管理模块进入填空题管理界面,选择科目,页面将显示出此科目目前已有的填空题题目和对应的正确答案。用户可按上方的“添加填空题”添加题目,也可以按题目后面相对应的“编辑”按钮对题目进行修改,也可以删除题目。题目的添加和编辑页面是同一个页面,对题干和正确答案进行设置,按确认添加成功。在添加、编辑页面有一个“公共”的复选框,如果选中这个框,则在其他科目也将显示着题题目,也可对其进行其它操作。值得提出的是,因为设计的关系,每题填空题的空格限制在四个以内。5.4.1.6. 判断题管理模块进入判断题管理界面,选择科目,页面将显示出此科目目前已有的判断题题目和对应的正确答案。用户可按上方的“添加断题题”添加题目,也可以按题目后面相对应的“编辑”按钮对题目进行修改,也可以删除题目。题目的添加和编辑页面是同一个页面,对题干和正确答案进行设置,按确认添加成功。在添加、编辑页面有一个“公共”的复选框,如果选中这个框,则在其他科目也将显示着题题目,也可对其进行其它操作。5.4.1.7. 程序题管理模块进入程序题管理界面,选择科目,页面将显示出此科目目前已有的程序题题目和对应的正确答案。用户可按上方的“添加程序题”添加题目,也可以按题目后面相对应的“编辑”按钮对题目进行修改,也可以删除题目。题目的添加和编辑页面是同一个页面,对题干和正确答案进行设置,按确认添加成功。在添加、编辑页面有一个“公共”的复选框,如果选中这个框,则在其他科目也将显示着题题目,也可对其进行其它操作。5.4.1.8. 答题测试模块当教师设置未能考卷后可以对这份考卷进行答题测试,但是之前要将这份考卷设置为当前考试试卷,否则会显示其他设置为考试的考卷,如果目前没有考试试卷则跳出“请选择试卷”消息框,然后跳转到试卷管理页面选择当前考试试卷。测试答题完后,可按“查看答案”看看自己的答题情况,如果你答对了题目的下方将显示“恭喜你,答对了!”,反之则显示正确答案。5.4.1.9. 查看考试结果模块学生考试完成后,教师可以若要了解其情况,即可到这个页面查看。首先要选择班级科目、试卷名称、班级,点击 “查看”进入,下面既有学生这份考卷各题得分和试卷总分。想看某位学生的答题情况点击其后面的“查看”按钮即可。5.5. 重点、难点代码设计5.5.1. 时间控制的实现时间控制是学生考试系统一个很重要的组成部分。一直以来的考试都有规定在一定的时间内完成,否则考试就失去了它本身的意义。在本系统中,应用一个label控件来实现时间的倒计时。学生进入系统第一次考某份考卷点击“答题”按钮时,把当前时间写入ExamTime表中。与此同时,读取ExamTime表中相应的TimeLong的值(第一次开始考试的时间)和Paper表中ExamTime的值(考试规定时长),将读取的TimeLong的值放在DateTime的结构体中名为beginTime;再将这个时间加上试卷的考试时长得到最迟交卷的时间,也将它存放在DateTime结构体中,名为endTime。将当前时间放在另一个DateTime的结构体名为dtNow,考生当前考试剩余时间为:endTime-dtNow,这个结果是一个TimeSpan结构(其实际格式为:hh:mm:ss),将它显示在label控件上。实现代码如下所示:double timeLong = double.Parse(paper.GetExamTime(ID).ToString(); ExamBiz.ExamTime examTime = new STGROUP.ExamBiz.ExamTime(); DateTime beginTime = DateTime.Parse(examTime.GetStudentExamTime(ID, userid).ToString(); DateTime dt = DateTime.Now; DateTime endTime = beginTime.AddMinutes(timeLong); TimeSpan timeSpan = endTime.Subtract(dt); if (endTime = dt) lbExamTime.Text = 0:00:00; else lbExamTime.Text = timeSpan.ToString(); 时间的倒计时和刷新部分是通过脚本来实现的,在考试结束前3分钟将弹出提交提示,具体代码如下:倒计时实现代码:var h=2;var m=0;var s=0;function window.onload() var div = window.parent.document.getElementById(ifmContent); div.style.height = document.body.scrollHeight+10; var tm = document.getElementById(lbExamTime).innerText; h = parseInt(tm.split(:)0);m = parseInt(tm.split(:)1);s = parseInt(tm.split(:)2);function showTime() if(h = 0 & m = 0 & s =0) flag = false; return; if(h = 0 & m = 3 & s = 0) alert(考试时间只剩最后三分钟,请检查考卷并在剩余时间内提交!) s-; if(s 0) s = 59; m-; if(m 0) m = 59; h-; document.getElementById(lbExamTime).innerText = h + : + (m 10 ? (0 + m) : m) + : + (s 10 ? (0 + s) : s); 时间刷新实现代码,每1000ms做showTime这个函数一次。 t = setInterval(showTime(),1000);5.5.2. 自动阅卷的实现自动阅卷功能是本系统有别于其他考试系统的地方,是本系统的重点。自动阅卷包括客观题和主观题,客观题和主观题中的填空题采用匹配的方式,如果匹配得到两个是相同的,则正确;主观题中的变成体则采用C#中的反射技术来实现。1、客观题和填空题部分:这些题型题目的正确答案在添加题目的时候一起被写入数据库相应的题库表中,如单选题的在Single表中,判断题的在Judge表中,考生所作的答案都存放在数据库中的所有*Answer表中,如单选题在SingleAnswer表中,判断题在JudgeAnswer表中。将*Answer表中的答案与题库表中的正确答案相匹配,一样的说明正确,则把相应的信息如:PaperID、StudentID、PaperDataID、Score、Type等在视图Student*View中输出。再把PaperID、StudentID相同的Score的值相加,就可以得到指定考卷、考生类型为Type值的得分。具体实现代码如下所示:ExamBiz.User user = new STGROUP.ExamBiz.User(); ExamBiz.Identity identity = new ExamBiz.Identity(User.Identity.Name); long userid = identity.UserID;foreach (DataGridItem dg in dgSingle.Items) RadioButtonList rblTemp = (RadioButtonList)dg.FindControl(rblAnswer); Label lbPaperDataID = (Label)dg.FindControl(PaperDataID); int PaperDataID = int.Parse(lbPaperDataID.Text); ExamBiz.SingleAnswe
展开阅读全文