基于Linux的C语言程序设计题的动态评阅技术探讨

2021-01-26 05:03衡水学院河北衡水市053000
石河子科技 2021年6期
关键词:C语言程序设计计算机专业

(衡水学院,河北衡水市,053000)王 超

互联网技术的出现给以人类社会的发展带来了巨大的改变,当前计算机专业已经成为高校的一门热门专业,深受国家和社会各界的重视,越来越多的学生选择加入到计算机专业的学习中。而C语言程序设计则是计算机类专业诸多课程中的一门基础性的课程,是计算机的入门课程,于计算机专业的学生而言有着深远的意义,且该项课程具有较强的实践性,教师在教学过程中要注重做实践课程的课时规划,更好地利用起C语言程序设计实践课程,通过增加学生的编程代码量来提高学生整体的编程能力。但就目前而言,高校计算机专业教学中教师所拥有教学资源已经无法满足C语言程序设计实践课程的根本需求,使得课堂实践教学工作的开展存在着一定的阻碍,不利于新时期学生实践能力的有效提升。为了解决这一教学难题,从根本上降低计算机专业教师工作量,提高高校计算机专业学生编程能力,高校选择适用程序设计题在线自动评分系统,将其应用到学生上机练习和考试中。

1 评阅技术的现状及问题

基于Linux的C语言程序设计不仅是大学计算机专业学生的必修课之一,同时更是计算机专业学生对计算机相关专业知识学习的基础。因此,为了方便教师对学生的学习状况进行了解,我国许多高校均对其设计了相应的考评。但当前一些高校在对C语言程序设计题进行评阅的过程中仍旧采用传统的人工评阅方式,这一方式不仅会影响到教师的评阅效率,同时还极易在评阅过程中出现一些人为失误,从而直接影响到学生的综合成绩。此外,在一些高校中,其教师为了有效提升C语言程序设计的评阅效率也采用了自动评阅的方式对学生的答题进行评阅。而自动评阅中包括静态评阅和动态评阅。其中动态评阅是指对学生所设计的程序进行测试运行并将其运行结果与正确答案进行比对,从而得出该学生的分数。而静态评阅则是指对学生所设计的程序代码进行检测,从而得出该生的分数。虽然动态评阅可以促进学生创新性思维的发展,但其在对学生的程序设计进行评阅过程时却无法指出该生程序设计中的错误,因此学生无法在这一过程中了解到其不足。同时,若学生在程序设计中出现部分错误也有可能会因为答案正确而被判定为正确,从而使其评阅过程失去公正性。

2 基于关键词匹配的动态评阅算法

2.1 源代码的编译和运行

在动态评阅技术中最为常见的便是基于关键词匹配的动态评阅算法,在这一算法中,首先需要执行对源代码的编译与运行。由于动态评阅是依据学生所设计的程序结果对学生的程序设计的正误进行判断的,因此在对学生程序设计进行评阅前,需要对学生所编写的程序进行测试运行。在这一过程中,首先动态评阅算法需要利用其中的system函数调用shell命令对该生所设计的程序进行编译。在这一过程中,动态评阅算法不仅仅需要对学生所设计的程序进行初步检测,同时更需要判断其是否可以被编译。其次,动态评阅算法还需要对已编译的程序进行模拟运行,从而确定其是否得以运行。为了保障评阅结果的有效性,其在对程序进行测试的过程中不仅仅需要利用多组特征数值对该程序进行测试,同时还需要将其输入数据以及得出结果依次存储在input.txt以及result.txt文件中。

2.2 动态评阅算法

动态评阅算法是一种通过对学生所设计的程序结果进行判定的自动评阅方法,其在对学生程序进行评阅的过程中主要需要经历以下步骤。首先,在动态评阅算法中含有一个循环语句,其主要作用是对学生程序结果进行循环检测。而在该循环语句中,动态评阅算法需要对该生的程序是否能够被编译进行检测,若其可以被编译则进行下一步检测,若其无法被编译则跳出循环体并输出程序报错。其次,在动态评阅算法中还需要包括一个循环语句,从而循环对该生程序是否得以运行进行检测。若可以运行则将其输出结果与正确结果进行比对,若结果正确,跳出循环并输出正确,若结果错误或无法运行则跳出循环并输出错误。当以上结果出现后则表示动态评阅结束,输出结果为该生的测试结果。

3 运行结果的检测方法

3.1 关键字有序的检测

在学生所设计的程序运行过程中极有可能会出现关键词有序或关键词无序的现象。在面对关键词有序时,动态评阅算法首先需要对该结果中的关键词进行比对,从而确定该关键词是否完整以及关键词输出顺序是否与答案一致。若该同学所设计的程序与答案一致,那么动态评阅程序则输出正确,若该程序输出关键字不全或关键词输出顺序与答案不一致,那么则输出错误。

3.2 无序关键字的检测

在面对输出关键词无序的情况时,动态评阅程序首先需要对该程序所输出的关键词正确率进行检测,即一次对该程序所输出的关键词与答案中的关键词进行比对,从而确定其是否正确。其次,动态评阅程序还需要判定该程序所输出的关键词是否存在重复现象。在这一过程中,动态评阅程序需要将已输入的关键词进行两两之间的相互比对,进而防止其出现关键词重复的现象。

4 程序错误提示

在动态评阅程序运行过程中难免会遇到诸多问题,为了方便维护人员及使用人员对当前动态评阅程序的运行现状进行了解,在该程序中也加入了相应的程序错误提示语句。例如,当学生在提交程序时出现无法提交的现象时,该程序会输出问价类型不符等提示语句。而在其无法编译以及无法运行时也会出现相应的语句提示。最后,若该生所设计的程序难以满足要求,该程序将会输出未按题目要求输出结果的提示,从而方便学生以及教师对其程序运行结果进行了解。

5 结语

综上所述,基于Linux的C语言程序设计题的动态评阅技术探讨具有一定的现实意义。本文介绍关于动态评阅方法的设计已经被充分实践到了C语言程序设计题自动评阅系统中,且在实践过程中可以发现,评阅系统的评分准确率得到了有效的提升,且完善了系统的错误提示功能,使得学生能够第一时间察觉到程序的错误,有助于学生更好地调试程序。

猜你喜欢
C语言程序设计计算机专业
新工科背景下计算机专业创新创业人才培养探究
中职计算机专业产教融合混合式教学研究与实践
医学专业“Python程序设计”课程教学改革总结与思考
“以赛促学,以赛促教”促进计算机专业教学理念创新与实践研究
基于Visual Studio Code的C语言程序设计实践教学探索
51单片机C语言入门方法
从细节入手,谈PLC程序设计技巧
基于C语言的计算机软件编程
高职高专院校C语言程序设计教学改革探索
面向计算机专业的电路与模电教学方法研究