1、本科毕业论文(20 届)C 语言在线考试系统的设计与实现自动评分模块所在学院专业班级 计算机科学与技术学生姓名指导教师完成日期摘 要C语言是国际上广泛流行的计算机高级程序设计语言,在各类高等院校的计算机及相关专业中,C语言均被列为一门必修的基础课程。随着计算机技术的日趋成熟,该课程的考核从传统手工阅卷走向计算机自动评阅。本文开发的C语言在线考试系统,一方面实现了C语言课程考试的无纸化,节约了大量能源;另一方面,实现了部分题目的自动评阅,降低阅卷的工作量,提高评阅过程中的公平性与准确性。它为C语言教学提供了一套完备的自我测试系统,也为学生的自主学习提供了更好的支持。本系统主要对考试系统中的自动组
2、卷、考生考试及自动评分模块进行了研究与设计,我主要完成的是自动评分模块的功能实现。在设计系统的过程中,我们结合平时使用软件的需求,对该项目进行了界面的优化,该系统设计成功后,经过了一定量的测试,初步证明运行稳定,自动评分准确,评分标准统一,整体效果良好,具有一定的的使用价值。关键字:C语言在线考试系统;自动评分模块;PHP;ApacheAbstractC language is widely popular international high-level computer programming language, various institutions of higher learnin
3、g in the computer and related professions, C language are classified as a compulsory basic course. As computer technology matures, the course of the assessment from the traditional manual scoring toward the computer automatically marked. This development of the C language online examination system,
4、on the one hand to achieve a paperless examination of the C language curriculum, saving a lot of energy; the other hand, to achieve some of the subject automatically marked, reducing the workload of marking, the process of improving Review fairness and accuracy. It is a C language teaching provides
5、a complete self-test system, but also for the students self-learning provides better support.This system is mainly for automatic generation of test systems, and automatic scoring module exam candidates conducted research and design, I mainly to complete the automatic scoring module function implemen
6、tation. In the process of designing the system, we usually use the software combines the needs of the project was carried out to optimize the interface, the system is designed successfully, after a certain amount of testing, preliminary evidence of stable operation, automatic scoring accurate, unifi
7、ed scoring criteria, the overall effect is good, has a certain value in use.Keywords: C language online examination system; automatic scoring module; PHP;Apache目 录1 绪论 .11.1 课题研究的背景及意义 .11.2 国内外研究概况与发展趋势 .11.2.1 客观性试题评测技术 .11.2.2 主观性试题评测技术 .22 开发环境和开发技术 .22.1 系统介绍 .22.1.1 C 语言在线考试系统简介 .22.1.2 自动评分系统
8、简介 .22.2 工具环境介绍 .32.2.1 开发环境的选择 .32.2.2 PHP 语言简介 .32.2.3 Apache 简介 .32.2.4 MySQL 简介 .33 需求分析 .43.1 设计思想 .43.2 可行性分析 .43.2.1 操作可行性 .43.2.2 技术可行性 .43.2.3 经济可行性 .53.3 用户需求与系统目标 .54 系统设计 .54.1 功能需求分析图 .54.2 系统结构设计 .64.2.1 系统功能结构 .64.2.2 系统流程图 .75 数据库设计 .86 项目的设计实现 .116.1 自动评分流程的设计 .116.2 模块的划分及各个模块的功能的实
9、现方法 .126.2.1 选择判断评分的实现 .126.2.2 多项选择题判分的实现 .126.2.3 填空题判分的实现 .126.2.4 程序题判分的实现 .137 系统测试与分析 .137.1 测试概述 .137.2 测试方法 .137.3 测试截图 .137.3.1 提交答案页面 .137.3.2 学生查看成绩页面 .147.3.3 管理员身份查看成绩页面 .148 结束语 .168.1 总结 .168.2 心得体会 .16参考文献 .17致谢 .1811 绪论1.1 课题研究的背景及意义作为国际上广泛流行的计算机高级程序设计语言,C语言是高校中计算机及相关专业的一门必修的基础课程。而在
10、当前,对该门课程的考核,普遍还停留在传统的纸笔考试,通常采用人工命题和人工批改评分。这种考核方式虽然有传统考试的优点,但考核方式劳动量大、效率低下,且客观性受到任课老师水平、经验、个性的影响。显然不能满足计算机教育发展的需要。利用计算机实现无纸化的在线考试,已经是计算机考试的一种重要方式。教育测量是对学生的学习能力、学业成绩、兴趣爱好、思想品德以及教育措施上许多问题的数量化测定。它主要用于对学生精神特性的测定。它可以分为理论知识的评价和对技能的评价。对于C语言之类的程序设计类课程,技能评价部分尤为重要。对于理论知识的评测,通常采用客观题的形式。关于技能的考核,早期主要采用卷面的考核方式。其成绩
11、不能真正反映学生计算机技能水平。即使有计算机上机考试,也主要采用人工评阅的方法。评阅费时较多、误差偏大,容易受到主观因素的影响,可能存在不公正的现象。这种现象,不仅仅是我国的计算机考试系统如此,国外的许多考试系统也是这样。所以说,实现自动评阅已是在线考试系统的迫切需要,在线考试系统是计算机考试的必然趋势。1.2 国内外研究概况与发展趋势利用计算机技术实现无纸化考试,是近年来计算机技术一个重要的应用研究领域。而在线自动评分作为计算机考试系统的一个重要的组成部分,它以计算机的高效率的自动评分取代任课老师的低效、手工的阅卷,是实现完全无纸化考试和彻底取代传统的手工考试方式的关键。而且应用这种方式,可
12、能很方便的将评阅结果保存,利于考生及老师的查询。另一方面,更加的客观,可完全避免人为因素造成的影响。目前国内外有很多关于C语言的在线考试系统,大多设计都含有选择题及填空题,可以很好的实现对理论知识的考核,而且自动评分技术也较为成熟。但对实践能力的考核-程序题的考核略有欠缺,由于其无完全固定的答案和考生答题的多样性,该部分的自动评分很难实现,一些考试干脆取消了该类的试题,如全国计算机应用技术证书(NIT)和劳动部组织的计算机信息高新技术考试等。也有一些含有该类试题的考试系统中,对其评分方法并不完善,还没有很好的解决方案。1.2.1 客观性试题评测技术目前大多数计算机考试自动评阅是针对客观性试题的
13、。在对客观题的测试中,每个题目都有一个或一组确定的正确答案,通过将考生的结果与标准答案对比,可进行准确的判分。2对于主观性不是很强的试题如填空题。也可以采用类似的方法如字符串比较法,将考生答案与标准答案直接做严格的匹配或模糊的匹配,匹配成功即可得分。通过文献查阅和对现有考试系统的研究,可知现在对于客观性试题的评测技术已经比较成熟,从试题的呈现、学生的答题到自动阅卷完全可以由计算机自主完成,实现无纸化考试。1.2.2 主观性试题评测技术目前对于主观题中的一些题型,如Windows操作题、Word文字录入题。Excel表格处理题的自动评分技术,已经具有了一些重要的进展,但对主观题中的重要一类,程序
14、题的自动评阅,目前还没有很好的评定技术,仍处于探索阶段。就目前全国计算机等级考试的上机考试系统,主要采用的是结果对比的方法进行评分,依据程序运行的结果与标准结果相符程度做对比,给出相应的分数。虽然该方法还存在很多不足,但对于当前形式下,可以作为一种评定的方式。2 开发环境和开发技术2.1 系统介绍系统是在一定环境中相互联系和相互作用的若干部分组成的具有某种功能的集合,一个系统内可能包含许多功能各异的子系统,这意味着系统可以具有多层结构,一个系统的整体功能往往大于单个子系统的功能之和。本系统可以实现C语言的在线考试,方便教师的试题上传、成绩的查阅和汇总,实现自动组卷和自动评分,大大的提高了考试及
15、评分的效率,且一定程度上提高了客观性评定和降低了教师的工作量。考生可以及时查看自己的成绩,对自己的学习情况做出准确的判断。2.1.1 C语言在线考试系统简介 C语言在线考试系统是针对在校学生研发的一款有关C语言科目的练习及考试的系统。根据在线考试的实际需求,主要用于实现试题的上传管理、试卷的生成、在线考试及自动评分等几个方面的功能。C语言在线考试系统实际运行时,用户可以通过用户名及密码进入考试系统,系统会根据后台设定自动生成试题以供用户测试,并根据用户提交的答案进行评分。并返回用户成绩。整个系统只允许管理员对题库和成绩等基本信息进行管理和维护。本考试系统的操作界面力求为用户提供一个方便快捷的应
16、用环境。2.1.2 自动评分系统简介3自动评分系统作为在线考试系统的主要模块,具有对考生提交的答案进行评定并给予分数反馈的功能。根据不同的题目类型,系统做出相应的判断,使用相对应的方法进行评分。该模块所应用的主要方法是提取用户和数据库中正确的答案,进行对比,相同则判真,不同则判假。该模块的实现使C语言考试系统应用性大大提高。不但能够大大提高效率,减少相应工作人员的工作量,还能够使最后成绩更具有客观性。另一方面,管理员可以根据该系统数据库中的数据,更加方便的统计成绩。2.2 工具环境介绍2.2.1 开发环境的选择开发与运行的环境的选择会影响到数据库设计,本系统开发与运行环境如下: 开发环境:Wi
17、ndows 7 开发工具:Adobe Dreamweaver CS3 、Navicat for MySQL、Apache HTTP、Server 2.2 数据库管理系统:MySQL本系统主要采用PHP与My SQL相结合的技术。利用Adobe Dreamweaver CS3软件来设计系统界面,使整个系统更具有吸引力和更好的价值。2.2.2 PHP语言简介PHP超文本预处理语言Hypertext Preprocessor的英文缩写。 PHP是在服务器端嵌入HTML文档的脚本语言执行的嵌入HTML的语言,语言的风格有类似于C语言,被广泛使用。PHP独特的语法混合了C,Java,Perl和PHP自己
18、的语法。它执行动态页面的速度比CGI和Perl更快。动态网页PHP和其他编程语言,PHP被嵌入到HTML文档程序执行,执行效率比完全生成的HTML标记的CGI要高得多,PHP也可以运行编译后的代码,编译器可以实现加密和优化代码运行,使代码运行得更快。2.2.3 Apache简介Apache HTTP服务器(简称到Apache)是Apache软件基金会的一个开源的Web服务器,可应用于大多数计算机操作系统,由于其多平台和安全性被广泛使用,是最流行的Web服务器软件。它不仅快速,可靠,可扩展,而且可以通过一个简单的API,将Perl/ Python解释器等编译到服务器中。42.2.4 MySQL简
19、介MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策(本词条“授权政策” ) ,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。MySQL是一个开放源码的小型关联式数据库管
20、理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。3 需求分析3.1 设计思想第一步是需要利用MySQL建立所需要的数据库,第二步是利用PHP语言完成该系统界面及应用模块的开发。将建立数据库所在的服务器作为服务器端,在这里我所用的是本地服务器,为开发的在线考试系统提供所需要的数据服务。3.2 可行性分析可行性分析是系统分析阶段的第二项活动,它的主要目的是进一步明确系统的目标、规模与功能,对系统开发背景、必要性
21、和意义进行了调查分析并根据需要和可能提出开发系统的初步方案与计划。可行性分析是对系统进行全面、概要的分析。通过调查分析,本系统设计主要有以下三个可行性:3.2.1 操作可行性本系统操作简单,易于理解,只需通过简单指导,上手较快,运行环境要求低。3.2.2 技术可行性本课题采用PHP语言进行开发。PHP语言为当前web开发应用较多,功能较强大的计算机5高级语言。实习过程中,曾经有过一段时间的集中培训,对PHP语言有基本了解,另一方面,在较难部分可以得到实习老师的指导。3.2.3 经济可行性本课题所使用的软件都为免费公开发行版,不需要购买。现在,计算机的价格已经十分低廉,性能却有了长足的进步。为本
22、次开发提供了设备支持,几乎所有的计算机都可以高效的运行使用。 3.3 用户需求与系统目标本系统意在投入实际教学工作中,一方面,用于对C语言程序设计课程的考核和评阅工作;同时,也为C语言教学网站提供一套完备的自我测试系统,对C语言的教学辅导和学生的自主学习提供更好的支持。根据C语言程序设计的课程特点和用户需求,本系统共设计了判断题、单选题、多选题及填空题,以对学生的理论知识和实践技能进行全面的考核。针对四类不同的题型,本系统将实现从组卷、考试到评分的全部自动化。应用本系统进行考试,系统将对考生自动生成不同的试卷,这样减少了作弊现象的发生,保证了考试的公平性。考试开始后,系统通过屏幕上的倒计时提醒
23、学生考试剩余时间,保证了考生对考试过程中时间分配的把握。考试结束后,系统对考生所做试题进行自动阅卷评分。除了上述考试和阅卷功能外,为了适应多种教学和用户的需求,系统还提供了教师管理等功能。4 系统设计4.1 功能需求分析图包含2个实体即考生、教师。学生登录、选题、答题,教师试题录入、教师组卷、教师阅卷。该图反映了试题生成和在线考试系统整体的流程,如图4.1所示: 6图 4.1 系统需求分析4.2 系统结构设计4.2.1 系统功能结构C语言在线考试系统的用户分为前台用户与后台用户,其中考生为前台用户,管理员为后台用户,他们的功能职责不同,其功能结构图如图4.2所示:图 4.2 在线考试系统功能结构图考生主要功能:一方面,考生参加在线考试,选择试题类型,开始考试。答题完成时可以手动提交试卷,