c语言源码评判系统设计与实现与实现学士学位论文.doc
《c语言源码评判系统设计与实现与实现学士学位论文.doc》由会员分享,可在线阅读,更多相关《c语言源码评判系统设计与实现与实现学士学位论文.doc(65页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、北京邮电大学C语言源码评判系统设计与实现摘要C语言源码评判系统是智能信息处理技术的具体应用,系统可以自动完成选择题、填空题、简答题的自动评判,并自动编译、运行用户提交的源代码。实现的C语言源码评判系统,采用MySQL数据库保存用户身份信息,实现用户创建与删除,主要包括管理员、教师和学生三种身份。同时,在数据库中,还保存有学生的考试成绩与试卷提交时间,最重要的是数据库中保存有C语言试题库。Qt界面通过MySQL数据库API,访问并管理数据库中的相关数据信息,包括用户身份信息、成绩和C语言题库等。它通过Qt界面的方式提交用户针对特定问题设计的源代码,然后进行自动评判,立即反馈信息,给计算机专业数据
2、结构、算法等课程的教学和学习带来极大的方便。本文在研究了当前流行的源代码自动评判系统后,针对源代码自动评判系统受时间地点限制、并发处理能力差、可伸缩性差等问题,完成改进的设计方案,并在Linux和Windows环境下用C/C+开发实现。系统遵循软件工程设计规范,针对提高系统可用性作了设计,并进行了性能测试和优化设计。关键词:多线程,高可用性,自动阅卷C Program Automatic Judge SystemAbstractThe C program automatic judge system is intelligent information processing technolog
3、y, specific application, the system Call automatically compile and run the riser to submit the source code and system time consumed by user programsJudging system of implementation of the C language source code, using MySQL database to store the user identity information, realizes the user to create
4、 and delete, including administrators, teachers and students of three kinds of identity. At the same time, in the database, but also hold the students test scores and test submission time, database is the most important mediator with C language test. Qt interface through the MySQL database API, acce
5、ss and management of the related data in the database information, including user identity information, grades and C language test, etc.It is submitted via a Qt UI designed for users to issue-specific source code,and then automatically judged immediately feedback to the computer science data structu
6、res,algorithms such source from the teaching and learning has brought great convenienceThis paper studies the source code for the popular automatic judge system,the source code for the automatic judge system by the time and place constraints,concurrent processing capability is poor,and poor scalabil
7、ity issues,the completion of an improved design,and in Linux & Windows with the C/C+ development environment to achieveSystem,follow the software engineering design specifications for improving system availability was designed and carried out performance testing and optimization of the design.Keywor
8、ds: Multi-threading,High availability, automatic scoring目录摘要IABSTRACTII1 绪论11.1 课题国内外现状和发展趋势11.2 课题研究目的和意义11.2.1 考试管理信息化11.2.2 提高效率和质量11.2.3 减轻负担11.2.4 决策依据21.3 本文结构21.4 本论文完成的工作22 需求分析32.1 系统定义32.2 功能划分32.3 功能描述32.4 外部界面需求32.5 性能需求 32.6 运行需求43 关键技术53.1 图形界面Qt开发53.1.1 简介53.1.2 历史发展53.1.3 平台支持63.1.4
9、什么是Qt Creator63.1.5 什么是Qt Linguist63.1.6 Qt开发的优势63.1.7 使用Qt开发的成功实例73.1.8 发行版本93.2 开源数据库MySQL103.2.1 简介103.2.2 应用环境103.2.3 系统特性103.2.4 存储引擎113.2.5 索引功能113.2.6 索引类别124 系统设计及总体设计154.1 系统设计开发原则154.2 系统主要功能与处理流程154.3 方案设计及基本流程154.4 系统结构设计164.5 系统开发环境165系统详细设计185.1 数据库管理185.2 Qt界面设计205.3 C语言考试题型分析215.4 功能
10、实现215.4.1 密码修改215.4.2 随机选题225.4.3 计算成绩235.4.4 检测抄袭245.4.5 加载源文件245.4.6 下一题255.4.7 数据库连接265.4.8 获取值276 系统测试286.1 测试方案286.2 运行界面286.2.1 登录系统286.2.2 管理员窗口296.2.3 教师管理窗口316.2.4 学生考试窗口326.3 系统测试33结论38致谢40外文原文41中文翻译57北京邮电大学1 绪论1.1 课题国内外现状和发展趋势目前,计算机课程的教育已基本普及,但是计算机课程不仅是一门技术更新快、信息量大的课程,同时也是一门实践性强的课程,这给教学和考
11、试带来很大的难度,许多高校开发出自己的教学和考试系统,改变传统的教学、考试方法和手段,除利用现代多媒体等新兴的教学手段外,将考试全部改为上机考试,取得了很好的效果。但是,也存在很多问题,其中较为突出的问题是机试阅卷,在这方面一直没有一个较好的、完整的、适应面宽的系统上市,这主要是由于上机考试的环境比较容易建立,可以完整地收集考生的答题结果,但题目形式多种多样,学生答案也各不相同,因此自动阅卷难度很大,许多系统均采用客观题由计算机来判别给分,主观题由教师评阅给分,给教师带来大量的额外工作量。程序修改题和填空题中还应注意考虑原程序作者的思路,所作改动应尽量小。因为出题者给出的答案数是有限的,考生的
12、答案如果出了出题者所给的范围,正确也被当作错误来处理了。这样不能发挥考生的创新能力。因此,自动阅卷系统对尽可能智能化评分是现在研究的一个重点,也是一个难点。1.2 课题研究目的和意义考试是教学全过程的一个重要环节,如何利用计算机把握好考试的质量,提高考试的效率,把教师从繁琐的手工劳动中解放出来,是教学改革的一个重要方面。随着各高校的扩招,许多高校师资力量严重匮乏,如果不能将教师从繁琐的手工重复劳动中解脱出来,对于提高教学质量和效率是非常不利的,高等学校作为为社会培养高级人才的基地,有义务和责任对本身教学的内容、手段和方法等进行全方位改革,给学生一个现成的利用计算机技术分析问题、解决问题的实际案
13、例,以便适应信息社会的发展。1.2.1 考试管理信息化利用自动阅卷系统实现客观题自动阅卷和主观题计算机阅卷,可免去了人工评卷或客观题自动阅卷而主观题人工阅卷所带来诸多麻烦,使学校的考试管理乃至教学管理信息化得到了全面实现。1.2.2 提高效率和质量评卷教师无需来回搬动或翻阅试卷,只要点击鼠标即可完成阅卷工作,且无须流水线上的中间等待,使阅卷效率提高几倍以上。1.2.3 减轻负担提高效率也即减轻了工作量,特别是评卷完成后系统具有的按照预先设定的格式自动生成各种统计分析报告的功能,更是省去了评卷教师大量的统计分析时间,有利于教师把更多的时间和精力集中于教学与管理。1.2.4 决策依据利用自动阅卷系
14、统完成考试评卷工作,将使得评卷的标准化和规范化操作得到了有效的保证。系统快速、准确、完整、统一地自动生成的考试情况分析报告也将为学校的教学管理决策提供科学依据。1.3 本文结构具体地讲,各章研究内容如下:第一章,首先介绍了本文研究背景,探讨了研究意义,然后对C语言源码评判系统的研究和发展概况进行了简单回顾,本章同时综述了其研究的目的和意义,最后概述了本文的主要内容。第二章,首先介绍了本课题使用到的主要关键技术,并进行详细分析。第三章,在前一章分析的基础上,给出了本系统整个架构设计的框图。从系统实施环境及开发工具介绍开始,重点分析了Qt和MySQL在核心评判模块上的应用,并结合源代码具体分析了技
15、术的实现方法。第四章,重点介绍了该C语言源码评判系统的使用方法。1.4 本论文完成的工作通过近几个月的论文研究工作,课题研究完成了以下几个方面工作:1) 查阅国内外相关文献,分析当前C语言源码评判技术的研究现状;2) 搭建开发环境,包括图形界面开发工具Qt、数据库MySQL;3) 熟练掌握Qt开发工具的使用以及编程方法;4) 熟练掌握数据库MySQL使用以及编程方法;5) 完成MySQL数据库中的C语言题库录入;6) 完成MySQL数据库的用户身份信息设计与录入,包括管理员、教师与学生;7) 完成Qt界面的用户登录窗口、管理员后台管理窗口、教师成绩查询窗口、学生考试窗口,管理员可以通过界面完成
16、对教师和学生帐号的添加与删除;8) 完成Qt界面学生考试窗口中编程题的评判系统,支持从外部导入源程序,进行编译和运行,并将编译与运行结果在窗口中进行动态显示;支持评判编程题是否抄袭的功能;2 需求分析2.1 系统定义随着现代计算机科学的发展,计算机课程的教育已基本普及,许多高校开发出自己的教学和考试系统,改变传统的教学、考试方法和手段,除利用现代多媒体等新兴的教学手段外,将考试全部改为上机考试,取得了很好的效果。也存在很多问题,其中较为突出的问题是机试阅卷,自动阅卷系统对尽可能智能化评分是现在研究的一个重点。 2.2 功能划分c语言源代码评判系统设计与实现可分为两部分:(1).登录界面(2).
17、mysql数据库管理2.3 功能描述(1) 登陆界面功能:登录窗口:完成用户登录,可以选择管理员、教师和学生;管理员窗口:可以完成教师和学生的身份信息添加与删除;教师管理窗口:教师可以通过该窗口获取学生的考试成绩;学生考试窗口:学生通过该窗口可以完成C语言考试,并获取成绩。 (2)mysql数据库管理:Qt界面通过MySQL数据库API,访问并管理数据库中的相关数据信息,包括用户身份信息、成绩和C语言题库等。本课题实现的C语言源码评判系统,采用MySQL数据库保存用户身份信息,实现用户创建与删除,主要包括管理员、教师和学生三种身份。同时,在数据库中,还保存有学生的考试成绩与试卷提交时间,最重要
18、的是数据库中保存有C语言试题库。2.4 外部界面需求 外部界面要遵循以下原则: (1) 界面简洁直观。 (2)数据显示清晰明了。 (3)操作简单方便,所有选项以键盘选择为主,符合一般软件的操作系统。 2.5 性能需求 (1)时间特性,时间反应要快。 (2)兼容性和扩展性 2.6 运行需求 (1)硬件环境 普通的计算机 (2)软件环境 支持的操作系统包括Windows98/XP/NT/2000中文版及以上版本 3 关键技术3.1 图形界面Qt开发3.1.1 简介Qt是一个1991年由奇趣科技开发的跨平台C+图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台
19、工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,易于扩展,允许组件编程。2008年,奇趣科技被诺基亚公司收购,QT也因此成为诺基亚旗下的编程语言工具。2012年,Qt被Digia收购。2014年4月,跨平台集成开发环境Qt Creator 3.1.0正式发布,实现了对于iOS的完全支持,新增WinRT、Beautifier等插件,废弃了无Python接口的GDB调试支持,集成了基于Clang的C/C+代码模块,并对Android支持做出了调整,至此实现了全面支持iOS、Android、WP。Qt提供
20、给应用程序开发者建立艺术级的图形用户界面所需的所有功能。Qt很容易扩展,并且允许真正地组件编程。基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等图形界 面库和 Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西。3.1.2 历史发展1996 OctKDE组织成立1998 Apr 05Trolltech的程序员在 5 天之内将 Netscape5.0 从Motif移植到 Qt 上1998 Apr 08 KDE Free Qt 基金会成立1998 Jul 09 Qt 1.40 发布1998 Jul 12 KDE 1.0 发布1999 Mar 0
21、4QPL1.0 发布1999 Mar 12 Qt 1.44 发布1999 Jun 25 Qt 2.0 发布1999 Sep 13 KDE 1.1.2 发布2000 Mar 20嵌入式Qt 发布2000 Sep 06 Qt 2.2 发布2000 Oct 05 Qt 2.2.1 发布2000 Oct 30 Qt/Embedded 开始使用GPL宣言2000 Sep 04 Qt free edition 开始使用 GPL2008 Nokia从Trolltech公司收购Qt, 并增加LGPL的授权模式2011 Digia从Nokia收购了Qt的商业版权,从此Nokia负责Qt on Mobile, Q
22、t Commercial由Digia负责,根据最新消息,NOKIA已经停止Meltemi系统开发,QT部门被解散2012 Aug 09 作为非核心资产剥离计划的一部分,诺基亚宣布将Qt软件业务出售给芬兰IT服务公司Digia。2013年7月3日,Digia公司Qt开发团队在其官方博客上宣布Qt 5.1正式版发布。2013年12月11日,Digia公司Qt开发团队宣布Qt 5.2正式版发布。2014年4月,Digia公司Qt开发团队宣布Qt Creator 3.1.0正式版发布。3.1.3 平台支持Qt支持下述平台:MS/Windows - 95、98、NT4.0、ME、2000、XP 、 Vi
23、sta、Win7、win8、win2008Unix/X11 - Linux、SunSolaris、HP-UX、CompaqTru64 UNIX、IBMAIX、SGI IRIX、FreeBSD、BSD/OS和其它很多X11平台Macintosh -Mac OS XEmbedded - 有帧缓冲(framebuffer)支持的嵌入式Linux平台,Windows CE3.1.4 什么是Qt Creator在发布 Qt 4.6 的同时,作为 Qt 开发跨平台 IDE 的Qt Creator也发布了更新版本。Qt Creator 1.3 和 Qt 4.6共同构成的 Qt SDK,包含了开发跨平台应用程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 源码 评判 系统 设计 实现 学士学位 论文
限制150内