编程题自动评分系统中结构体的研究与现实-计算机科学与技术专业论文
图书分类号:TP311.5 U.D.C.: 681
工学硕士学位论文
编程题自动评分系统中结构体的 研究与现实
硕 士 研 究 生:
王宁
导师:
王宇颖教授
申 请 学 位:
工学硕士
学 科 、 专 业:
计算机科学与技术
所 在 单 位:
计算机科学与技术学院
答 辩 日 期:
2006年 6月
授予学位单位:
哈尔滨工业大学
Classified Index: TP311.5
U.D.C.: 681
A Dissertation for the Degree of M. Eng.
RESEARCH AND IMPLEMENTATION OF STRUCTURAL BODY IN PROGRAMMING QUESTION
AUTO-SCORING SYSTEM
Candidate:
Wang Ning
Supervisor:
Prof. Wang Yuying
Academic Degree Applied for:
Master of Engineering
Specialty:
Computer Science and Technology
Affiliation:
School of Computer Science and Technology
Date of Defence:
June, 2006
Degree-Conferring-Institution:
Harbin Institute of Technology
哈尔滨工业大学工学硕士学位论文
哈尔滨工业大学工学硕士学位论文
-
- I -
摘要
在程序设计语言考试中,编程题自动评分是一项具有实用价值的应用, 它是实现在线考试功能的一个关键技术,由于它涉及到多方面的理论和知 识,因而成为一个难点。目前,还有一些技术问题需要解决。
编程题自动评分模型是基于程序语义等价的思想,对完整源程序进行分 析,转化为程序的系统依赖图,标准化学生程序和模板程序,消除程序中等 价语义表达形式的多样性,计算它们的语义相似程度,并应用具体评分策略 给学生程序进行评分。
已有的编程题自动评分模型不能对含有结构体的程序进行评分。本文在 原有的编程题自动评分模型的基础上,对结构体的语法结构和实现原理进行 研究,并在以下几个方面完善原有模型:在词法和语法分析、程序的系统依 赖图建立和抽象语法树生成三个方面增加结构体类型的中间表示形式;扩充 程序的标准化规则,主要包括类型定义标准化、结构体嵌套结构标准化、结 构体初始化的标准化、结构体作为函数参数时函数调用标准化、结构体变量 名称标准化、结构体语句排列顺序标准化等等;另外,还增加了位运算标准 化、枚举标准化以及文件的处理;增强学生程序中语法错误的检测和改进程 序匹配策略。
完善后的模型应用在“C 语言在线考试系统”中,经过实际应用证明了 模型的正确性及系统的实用性。
关键词结构体 ;系统依赖图 ;程序标准化 ;程序匹配
-
- II -
Abstract
Automatic grading of programs in programming language examination is a practical application, is also a key technique of on-line examination system. It relates to many aspects of theories and knowledge, so it is a difficult point. There have been many technical problems unresolved as yet.
The automatic grading model of programs is based on idea of program semantic equivalence. Its implement process is analyzing the whole source program, transforming program into system dependence graph, and standardizing program of student and template, eliminating diversification of representation forms of equivalent semantic program, computing their semantic similarity, finally grading student programs by some strategies.
Existent automatic gr