C语言源码评判系统设计与实现研究背景•1、计算机课程的教育已基本普及,但是计算机课程不仅是一门技术更新快、信息量大的课程,同时也是一门实践性强的课程,这给教学和考试带来很大的难度,许多高校开发出自己的教学和考试系统,改变传统的教学、考试方法和手段,除利用现代多媒体等新兴的教学手段外,将考试全部改为上机考试,取得了很好的效果。•2、较为突出的问题是机试阅卷,在这方面一直没有一个较好的、完整的、适应面宽的系统上市,这主要是由于上机考试的环境比较容易建立,可以完整地收集考生的答题结果,但题目形式多种多样,学生答案也各不相同,因此自动阅卷难度很大。研究目的•考试是教学全过程的一个重要环节,如何利用计算机把握好考试的质量,提高考试的效率,把教师从繁琐的手工劳动中解放出来,是教学改革的一个重要方面。随着各高校的扩招,许多高校师资力量严重匮乏,如果不能将教师从繁琐的手工重复劳动中解脱出来,对于提高教学质量和效率是非常不利的,高等学校作为为社会培养高级人才的基地,有义务和责任对本身教学的内容、手段和方法等进行全方位改革,给学生一个现成的利用计算机技术分析问题、解决问题的实际案例,以便适应信息社会的发展。C语言考试题型分析•C语言考试有其自身的特点,大多C语言考试一般通过以下几种题型考察学生对编程能力的综合掌握程度:•1、选择题:考察学生对基本概念的掌握程度,覆盖知识点较多;•2、填空题:考察学生对知识掌握的精确度;•3、简答题:要求考生对问题进行合适回答;•4、编程题:编制一个源程序,并进行编译、调试、连接及运行,得到正确结果。我的主要工作•查阅国内外相关文献,分析当前C语言源码评判技术的研究现状;•搭建开发环境,包括图形界面开发工具Qt、数据库MySQL;•熟练掌握Qt开发工具的使用以及编程方法;•熟练掌握数据库MySQL使用以及编程方法;•完成MySQL数据库中的C语言题库录入;我的主要工作•完成MySQL数据库的用户身份信息设计与录入,包括管理员、教师与学生;•完成Qt界面的用户登录窗口、管理员后台管理窗口、教师成绩查询窗口、学生考试窗口,管理员可以通过界面完成对教师和学生帐号的添加与删除;•完成Qt界面学生考试窗口中编程题的评判系统,支持从外部导入源程序,进行编译和运行,并将编译与运行结果在窗口中进行动态显示;•支持评判编程题是否抄袭的功能;图形界面Qt开发•Qt是一个1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(MetaObjectCompiler,moc))以及一些宏,易于扩展,允许组件编程。图形界面Qt开发•Qt支持下述平台:•MS/Windows-95、98、NT4.0、ME、2000、XP、Vista、Win7、win8、win2019•Unix/X11-Linux、SunSolaris、HP-UX、CompaqTru64UNIX、IBMAIX、SGIIRIX、FreeBSD、BSD/OS和其它很多X11平台•Macintosh-MacOSX•Embedded-有帧缓冲(framebuffer)支持的嵌入式Linux平台,WindowsCE图形界面Qt开发•优良的跨平台特性:•Qt支持下列操作系统:MicrosoftWindows95/98,MicrosoftWindowsNT,Linux,Solaris,SunOS,HP-UX,DigitalUNIX(OSF/1,Tru64),Irix,FreeBSD,BSD/OS,SCO,AIX,OS390,QNX等等。图形界面Qt开发•面向对象:•Qt的良好封装机制使得Qt的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的。Qt提供了一种称为signals/slots的安全类型来替代callback,这使得各个元件之间的协同工作变得十分简单。图形界面Qt开发•丰富的API:•Qt包括多达250个以上的C++类,还提供基于模板的collections,serialization,file,I/Odevice,directorymanagement,date/time类。甚至还包括正则表达式的处理功能。•支持2D/3D图形渲染,支持OpenGL。•大量的开发文档。•XML支持。开源数据库MySQL•MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQLAB公司。MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。开源数据库MySQL•与其他的大型数据库例如Oracle、DB2、SQLServer等相比,MySQL自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。Linux作为操作系统,Apache和Nginx作为Web服务器,MySQL作为数据库,PHP/Perl/Python作为服务器端脚本解释器。由于这四个软件都是免费或开放源码软件(FLOSS),因此使用这种方式不用花一分钱(除开人工成本)就可以建立起一个稳定、免费的网站系统,被业界称为“LAMP”组合。系统详细设计-数据库管理•本课题实现的C语言源码评判系统,采用MySQL数据库保存用户身份信息,实现用户创建与删除,主要包括管理员、教师和学生三种身份。同时,在数据库中,还保存有学生的考试成绩与试卷提交时间,最重要的是数据库中保存有C语言试题库。系统详细设计-Qt界面设计•Qt界面通过MySQL数据库API,访问并管理数据库中的相关数据信息,包括用户身份信息、成绩和C语言题库等。•Qt界面主要包括登录窗口、管理员管理窗口、教师管理窗口和学生考试窗口,各个窗口的功能说明如下所示:•登录窗口:完成用户登录,可以选择管理员、教师和学生;•管理员窗口:可以完成教师和学生的身份信息添加与删除;•教师管理窗口:教师可以通过该窗口获取学生的考试成绩;•学生考试窗口:学生通过该窗口可以完成C语言考试,并获取成绩。系统详细设计-Qt界面设计登录界面(管理员、教师或学生)管理员窗口教师窗口学生窗口添加与删除用户获取身份信息获取成绩显示用户信息获取成绩进入考试MySQL数据库登录系统管理员窗口管理员窗口教师管理窗口学生考试窗口学生考试窗口学生考试窗口学生考试窗口学生考试窗口学生考试窗口学生考试窗口结论与展望•本文对C语言考试中常见的题型做出了分析,本文重点放在编程题的解决上。•本系统在实现程序设计题自动评分功能时,进行了如下创新:•1、在程序中对考生程序进行编译。•2、在程序中运行考生程序并避免系统崩溃。•3、考生程序是否存在抄袭的检测。•在进行自动阅卷系统研究中,由于条件和能力的有限。程序运行的最终结果成为我最主要的判断依据。但是,而程序内部的逻辑和程序复杂度也应该是我们进行自动阅卷系统所要判断的。这也是一个十分有前途的研究领域,研究的结果有很强的实用性和可推广性,同时也是一个十分有挑战性的工作。参考文献•[1]钱海祎.程序自动批改系统的设计与实现[D].电子科技大学,2019•[2]林宁.C语言编程题自动判分系统的设计与实现[J].华章,2019•[3]于淑香.C语言程序设计题自动评分系统的设计与实现[J].沙洲职业工学院学报,2019•[4]王兰.应用于C语言无纸化考试的自动阅卷系统的研究[D].吉林大学,2019•[5]余梓唐.C语言源程序的自动评判系统[J].计算机时代,2019•[6]巨同升.C语言程序自动阅卷系统的改进[J].山东理工大学学报(自然科学版),2019参考文献•[7]张冰.自动阅卷系统的研究[D].西华大学,2019•[8]StephensDerek.Useofcomputerassistedassessment.Benefitstostudentsandstaff.EducationforInformation,2019•[9]Gretes,JohnA,,GreenMichael.ImprovingUndergraduateLearningwithComputer-AssistedAssessment.JournalofResearchonComputinginEducation,2000•[10]ZHUYing-hui,JIANGYu-zhen.AnalysisandResearchofthePoliciesaboutAutoScoringinComputer.ComputerKnowledgeandTechnology,2019非常感谢各位老师谢谢!