- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Web在线判题系统设计与实现
基于Web在线判题系统设计与实现
摘 要:在线判题系统可以有效提升学生的编程能力,节省教师判题时间。在HUSTOJ在线判题系统基础上,设计了适合高职学生教学特点的在线判题系统。平台基于Web实现方式,采用Linux操作系统作为部署环境,PHP作为后台实现语言,MySQL作为后台数据库模块,包含评测系统和信息管理两个模块。根据实际情况,改进并设计了判题流程和信息管理模块,使其更加贴近高职教学特点。
关键词:在线判题;ACM;HUSTOJ;程序设计;自动测试
中图分类号:TP319 文献标识码:A 文章编号:1672-7800(2016)003-0107-03
作者简介:蔡崇超(1983-),男,黑龙江尚志人,博士,湖州职业技术学院物流与信息工程学院讲师,研究方向为大数据、数据挖掘、人工智能。
0 引言
Online Judge系统[1,2](简称OJ)是一个在线判题系统。用户可以在线提交多种程序(如C、C++、Pascal)源代码,系统对源代码进行编译和执行,并通过预先设计的测试数据来检验程序源代码的正确性。在线判题系统初期主要用于ACM程序竞赛[3],随着竞赛的发展,出现了越来越多的在线判题系统用于训练和内部比赛,与此同时,在C语言程序设计、JAVA语言程序设计、Python语言程序设计的教学过程中也进行了应用。
目前应用比较广泛的在线判题系统有:
(1)USACO在线判题系统:它是全美计算机奥林匹克竞赛的训练网站,是美国著名在线题库,专门为信息学竞赛选手准备。该网站的训练题目非常全面,每年的NOI、NOIP都会参考上面的题目。与此同时每道题附有详细题解,可查看测试数据和运行结果,便于调试、发现错误并改正。
(2)浙江大学的 ZOJ:国内最早也是最有名气的OJ,有很多高手在上面做题。特点是数据比较刁钻,经常会有想不到的边界数据,很能考验思维的全面性。(3)北京大学的 POJ:建立较晚,但题目数量增长很快,现在题数和ZOJ不相上下。特点是举行在线比赛较多,数据比ZOJ上的要弱,有时候同样的题同样的程序,在ZOJ上WA(错误),在POJ上就能AC(接受)。
(4)在线判题系统:由于很多普通院校并不具备开发判题系统能力,为此,在华中科技大学开发的HUSTOJ在线判题系统基础上,设计并实现了符合高职教学特点的一套系统。该系统运行在linux平台,主要开发语言采用PHP,数据库采用MySQL,是集存储、编译、运行、评判、分析于一体的ACM在线判题系统。
1 HUSTOJ在线判题系统
Linux系统:Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统,支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
PHP:一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法,比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其它编程语言相比,执行效率比完全生成HTML标记的CGI要高许多;PHP还可执行编译后代码,可进行加密和优化代码运行,使代码运行更快。
MySQL:MySQL是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 是最流行的关系型数据库管理系统,在 Web 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
2 基于HUSTOJ的在线判题系统架构
在线判题系统采用三层架构[4],将整个业务应用划分为:界面层、业务逻辑层、数据访问层。区分层次的目的是为了实现“高内聚低耦合”的思想。在软件体系架构设计中,分层结构最常见,也是最重要的一种结构。在线判题系统工作流程如图1所示。
3 基于HUSTOJ在线判题系统模块
ACM在线系统分为两个模块[5],分别为测试单元和信息管理单元,其中测试模块又分为数据库模块、源程序模块、评测模块。信息管理模块可以分为用户类、题目类、答题类3个模块。
(1)数据库模块:在线判题系统有很多地方都要访问数据库,访问数据库需要创建数据库连接、游标对象,然后执行SQL语句,最后处理异常,清理资源。有多个用户访问时,系统以多进程或多线程模式来处理每个用户的请求。每个线程在访问数据库时,创建仅属于自身的连接,对别的线程不可见。
(2)源程序模块:源程序帮助提交者
您可能关注的文档
最近下载
- 高压除氧器培训课件.ppt VIP
- 最新行政执法题库行政执法试题及答案附答案详解(夺分金卷).docx VIP
- 最新行政执法题库行政执法试题及答案附答案详解(综合卷).docx VIP
- 最新行政执法题库行政执法试题及答案附答案详解(a卷).docx VIP
- 时速160客货共线铁路简支T梁-24m 通桥(2012)2101-II.pdf VIP
- 解密华为人资资源管理题库.docx VIP
- 最新行政执法题库行政执法试题及答案附答案详解(典型题).docx VIP
- 最新行政执法题库行政执法试题及答案附答案详解(基础题).docx VIP
- 大学生职业生涯规划.pdf VIP
- 个人电脑抵押合同4篇.docx VIP
原创力文档


文档评论(0)