C语言操作题评分方法

时间:2022-04-16 11:04:00

C语言操作题评分方法

1概述

随着人工智能技术的不断发展,基于人工智能的解决方案被应用到各个领域中。其中教学领域也在引入该技术不断改进教学手段,如计算机辅助教学等。为了提高考试工作效率节约开支和避免教师为学生划定考试范围来应付考试,利用基于题库的考试软件进行考试成为首选。考试系统可以很好的完成选择判断等客观题的考试评卷工作,但在评阅主观试题时效率就显得比较低下。一是主观题往往答案不唯一,利用简单字符匹配很难公平给出成绩。二是当有多个答案时难以逐一列举,同样造成评判不公。

2C程序设计操作题

考试系统总体设计该系统用户分为两类,分别是学生用户和教师用户。教师用户具有出题评分等权限,学生用户抽题和答题权限。本系统分为出题模块、评分模块、成绩处理和答题模块。当用户登录时可以利用数据库用户表的权限字段加以区分用户角色,然后分配给不同权限。用如果是教师则在主界面显示出题评分等操作,如果是学生用户则显示试题抽取操作,学生抽取试题后进入答题界面。学生答题结束则提交操作后的C源文件。

3阅卷算法的实现

在该系统中除阅卷模块外,其他模块的功能在实现方法上有比较成形的技术都能够比较容易达到设计目标。但对于评卷模块来说,它要完成的是主观操作题的评阅因此实现起来有一定的难度。经过多次的实验和资料查阅,最后选用了人工智能技术来实现。

3.1基本设计思想对于本系统中主要包含三类操作题分别是程序改错,程序填空和函数编写。每类题的答题点都有可能出现多种答案。可以将每个答题点的答案存放到答案表中,答案表也可以被称为阅卷知识库。对于改错和程序填空题在知识库中每个答题点都可以有多个可选答案相对应,并且不同的答案具有不同的得分权重,由此每个答题点Point有多个带有不同权重w的答案Ans构成:Point={(Ans1,w1),(Ans2,w2)(Ans3,w3),……,(Ansn,wn)};每个答题点的成绩最终为某个Ans的权重w成绩该答题点的分值得出,因此权重w取值为[0、1]。对于函数编写题则在答案知识库中与改错和程序填空有一定差别,在该知识库中将答案视为一个文本T,T应该由多个关键词Key构成。每个关键词Key组合成T,每个关键词Key在答案文本中有一定的得分比例Percent。由此每个题的答案可以为:T={(Key1,Percent1),(Key2,Percent2),(Key3,Percent3),……,(Keyn,Percentn)};该式中:得分比例累积为1,该题得分为最终得分比累加和乘以该题分值。

3.2基本数据表设计对应上述设计思想,设计如下两个表作为阅卷知识库。对于改错程序和程序填空题阅卷知识库表结构设计如(表1,表2)。

3.3算法实现当学生完成答题后,将答题结果提交到学生答题答案表。表中包含学生学号、姓名、试题套号、程序改错答题结果、填空题答题结果和函数编写答题结果。算法按照改错题评阅、填空题评阅和函数编写题评阅顺序进行。

3.3.1改错题与填空题评阅算法首先提取答案表中的一条记录,然后提取该记录中的题各个答题点结果,提取后放入相应变量内。提取该试题套号,以试题套号、类别号和具体答题点号为条件在评阅知识库表Testans中查找相关记录,将提取的结果集中的记录的具体答题点的具体答案与学生答题点的答案进行字符串匹配测试。当某个评阅知识库表中的某个具体答案与学生答题结果中的答案匹配成功时则提取该记录的权重值然后乘以该答题点分值。依照上述方法重复进行直至所有答案表中的相关答案全部进行了匹配运算的出具体分值为止,将所有分值累加,结果为该考生改错与填空题最终成绩。

3.3.2函数编写题评阅算法在考生答案记录提取后,将其中的函数编写答案字段提取,此字段中存储考生函数编写题的程序文本。同时以试题套号为依据在函数编写题评阅知识库表progans中搜索该套试题答案关键词记录。得到结果集为该题程序中应该出现的关键词结果集,以每个关键词为依据在考生函数编写题答案文本中搜索该关键词,一旦匹配成功则累加该关键词对应的权重。结果集每个关键词都进行以上算法后累加的权重值乘以该题的分值即为考生得分。

3.4知识库知识累积实现上述算法基本解决了当主观题答案出现多种变化时不能公平给分的矛盾。但是由于出题者对知识库构建时难免发生遗漏,因此评阅试题知识库最初的质量并不一定很高。为了能使知识库中知识更加丰富本算法中还增加了知识库知识累积处理。主要是通过人工干预评阅试卷,当教师对考生答题点逐个人工查看时,如果知识库中没有出现相应答案但又是正确答案时评阅教师可以将该答案加入知识库。添加到知识库后的答案同时给予一个适当的权重,如果是函数编写题在加入新的评阅关键词后所有的关键词权重要重新分配使得权重累加结果为1。这样经过几轮人工干预评阅试卷知识库中的内容将更加丰富,对以后的评阅更加公平起到促进作用。

4结语

本文中主要阐述了,基于人工智能原理的C语言操作考试题的评阅算法。算法中主要利用了知识库功能和简单字符匹配算法。为了解决知识库内容起初不够丰富的问题,设计了知识库知识累积算法。经过测试表明在经过若干轮人工干预后基本实现了公平评阅试卷。