论文范文网-权威专业免费论文范文资源下载门户!
当前位置:毕业论文格式范文>论文范文>范文阅读
快捷分类: 毕业论文设计 毕业设计日志 毕业设计 设计投稿 机械设计和制造期刊 毕业设计说明书 程序设计的参考文献 论文程序设计 ja网络程序设计论文 ja程序设计网络教学系统论文 程序设计实践论文摘要 ja程序设计论文题目

程序设计方面有关论文范文素材 和程序设计在线作业代码不规范检测方法与应用方面论文例文

分类:论文范文 原创主题:程序设计论文 发表时间: 2024-01-29

程序设计在线作业代码不规范检测方法与应用,本文是程序设计方面有关论文例文与程序设计和检测方法和规范方面专科毕业论文范文.

摘 要:针对程序初学者编写的C/C++程序,调试需要消耗大量的时间和精力.然而,初学者在接触简单的编程时,编写思路一般不存在问题,但由于其良好的编程习惯还未养成,代码格式往往不规范,从而导致程序相应代码块出错.本文结合程序在线评测系统,针对程序设计课程的C/C++程序代码不规范问题提出了一种基于在正则表达式和编辑距离的检测方法并通过实验验证了不规范的代码出现错误概率较大.

关键词:软件测试;代码格式规范;程序在线评测系统

中图分类号:G623.58文献标志码:A文章编号:1674-9324(2018)44-0154-02

一、引言

目前国内外的程序自动化调试研究中,在针对特定类型故障、数据结构及内存等方面取得了一定进展,但对由不良程序编程习惯或者编程代码格式的不规范引起的错误类型研究还较少[1].编程者往往在编程中只注重算法和正确性,却忽略代码规范性,消耗了软件调试过程中大量的时间和成本[2].本文结合作者所在学校的在线编程评测系统(OnlineJudgeSys-

tem,OJ)[3,4],分析系统数据库中答题者提交的程序,针对其中由于代码块括号匹配不规范出错的程序,进行错误程度计算,提出一种代码不规范程度检测方法.

二、代码格式规范化的概念

就软件开发的代码编写而言,每个开发者的编程水平、经验和习惯都大不相同.本文对于程序代码格式规范化的概念进行简单梳理,归纳如下:

1.格式一:对齐与缩进.(1)①“{”位置的两种风格:①“{”和“}”独占一行,且位于同一列,与引用他们的语句左对齐,便于检查配对情况;②“{”位于引用他语句之后,“}”与引用他的语句左对齐.(2)位于同一层“{”和“}”之内的代码相对于引用他们的代码缩进.

(一般用4个空格的tab键缩进,不用空格缩进).

2.格式二:代码行内空格.(1)关键字之后加空格,关键字与操作符之间不加空格.(2)采用第一种“{}”格式的函数名之后不加空格,采用第二种“{}”格式的函数名之后加空格.(3)赋值、算术、关系、逻辑等二元运算符前后各加一空格,但是一元运算符前后一般不加空格.(4)“()”中,变量之间紧跟“,”.(5)“,”,“;”后留一个空格.

3.格式三:代码行.(1)一行只写一条语句.(2)一行只写一个变量.(3)每个关键字之间要加一个空格隔开.

三、代码格式不规范化程度检测方法

本文以OJ平台学生所提交的所有代码作为分析源,结合正则表达式及编辑距离的概念,使用Python对数据库中的代码计算相应的不规范程度.

1.正则表达式.本文设计的正则表达式如下.

(1)“.*?+”用该模式去掉多余的空格.(2)“[,!

等于<>\+\-\*\/]+[A-Za-z0-9]+|[A-Za-z0-9]+[,!等于<>\+\-\*\/]

+”用该模式添加标识符与运算符之间的空格.

2.编辑距离.编辑距离用来度量两个字符串的相似度.基于编辑距离算法进行动态编程,其算法的时间复杂度为O(m*n),空间复杂度为O(m*n),m,n分别表示源字符串S和目标字符串T的长度.编辑距离的动态规划求解方程组如下所示.

四、实验验证

1.代码格式不规范化错误统计及实例.本文针对目前OJ平台数据库中提交的135,556份C/C++程序(包含提交结果正确和错误的代码),进行分析统计,计算全部代码的不规范化程度,结果如图1显示.横轴以规范代码及不规范代码之间的编辑距离作为划分依据,纵轴是属于此编辑距离的不规范代码数量.从图1我们可以发现,OJ平台数据库中,只有不到11,000份代码做到规范化,当然如果把不规范程度在[1—20]之间的代码看作规范的话,那么也只有不到46,000份代码是规范的.

图1全部代码的不规范程度统计

为了进一步分析不规范程度对于代码的正确性影响,我们将OJ平台数据库中87,933份错误代码进行单独分析,图2显示了错误代码中不同规范程度的代码分布情况及占总错误代码的百分比.

图2错误代码中不同规范化代码占错误代码的百分比

我们综合比较图1和图2,可以观察到,错误代码中不规范代码的比例与总代码中不规范代码的比例成正相关.

五、总结与展望

本文针对C/C++程序代码不规范问题,提出了一种基于在线编程评测系统(OJ)的代码规范化检测方法框架,实验验证了该方法能够有效度量代码不规范错误程度,且代码不规范是程序错误的重要原因.之后的工作,我们将进一步分析程序员的编程习惯,并着眼于Ja、C#以及Python等更多程序语言的代码不规范自动修复问题.

参考文献:

[1]马春燕,刘杰,赖文豫.基于变异技术的程序故障自动化修复方法[J].计算机应用研究,2014,31(1):177-181.

[2]王延青,王建政,张丽杰,等.程序设计语言教学中编码标准的定量评测框架[J].合肥工业大学学报(社会科学版),2008,(6):67-71.

[3]李文新,郭炜.北京大学程序在线评测系统及其应用[J].吉林大学学报:信息科学版,2005,23(2):170-177.

[4]纪洪波.基于jQuery的Web源程序在线评测系统的设计与实现[D].吉林大学,2010.

StandardizationMethodforOnlineCodeofProgrammingContestDUBin,HEJie,XUYang,WANGLin-xin,YOUFeng

(CollegeofInformationScience&Technology,BeijingUniversityofChemicalTechnology,Beijing100029,China)

Abstract:Forinexperiencedprogrammers,itcostslotsofefforttodebugandfixC/C++programerrors.Whenbeginnersgetintouchwiththesimpleprogrammingproblem,thesolutionmethodsarealwayscorrect.Duetotheirpoorprogrammingexperiencesandinadequateprogramminghabit,thecodeformattingisincorrect,whichleadstoincorrectoutputs.Motivatedbytheprospectofreducinghumandeveloperinvolvement,thispaperproposedadetectionmethod,especiallyforthecodesegmentstandardization,andappliedthiethodtodetectbugsofincorrectcodeformattingofC/C++languageprograms.

Keywords:softwaretesting;codesegmentstandardization;onlinejudgesystem

归纳总结:此文是关于对不知道怎么写程序设计和检测方法和规范论文范文课题研究的大学硕士、程序设计本科毕业论文程序设计论文开题报告范文和文献综述及职称论文的作为参考文献资料.

参考文献:

1、 影响少数民族高校计算机程序设计成绩的客观因素分析 摘要提出利用统计学中分类数据的分析方法,以少数民族地区综合型211所属大学为研究对象,定量分析影响计算机程序设计课程成绩的诸多客观因素,并对其相关程度进行比较分析 关键词客观因素;独立性检验;相关系数.

2、 程序设计类课程在线评测教辅系统的设计和实现2019年度协办单位 摘要分析大学程序设计类课程的MOOC教学中存在的问题,介绍基于HUSTOJ平台的在线评测教辅系统设计和开发过程,并说明教学效果及优势 关键词MOOC教学;在线评测教辅系统;智能问答;成绩预警;抄袭检测.

3、 流程图在程序设计语言教学中的应用 摘要针对学生学习编程过程中存在的问题,在结构化编程思想的基础上,将流程图应用于程序设计语言教学之中 实践证明这种方式有助于学生理解程序设计语言中的基本控制流程,掌握自顶向下的设计方法,提高分析问题解决.

4、 主动学习在《可视化程序设计》课程中的实践 摘要针对可视化程序设计课程以传授知识为核心的教学理念导致的学生“过得了考试,写不出软件”的问题,开展基于主动学习、面向能力培养的课程改革,实现课程目标从“会&rdq.

5、 C语言程序设计课程改革措施 中图分类号G642 文献标识码A DOI10 16871j cnki kjwhc 2018 11 027摘要计算机科学是21 世纪对人类生活影响最大的前沿学科,程序设计是计算机学科发展的基石,同时计算.

6、 语文作业人文设计 摘要对于小学生来说,作业是对其学习内容的再次检测,是他们处理信息,进行内化和形成思考的重要途径,更是学科素养提升的重要环节 教师在设计作业时要注重作业形式的多样化、作业内容的丰富化、作业过程的分层化,.