1、 I 程序在线评测系统 后台评测模块 摘 要 : ACM 国际大学生程序设计竞赛,是一项旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛。经过近 30 多年的发展, ACM 国际大学生程序设计竞赛已经发展成为最具影响力的大学生计算机竞赛。随着其发展,各高校也越来越重视这项竞赛,广东外语外贸大学的程序在线评测系统也应运而生。在这个平台中,用户只需要提交他们的代码,系统就可以自动地为其程序做出相应的评测,并且返回相应的评测结果。通过这个平台,用户不但可以巩固学科知识,也可以大大提高代码的 实践能力。 后台评测模块主要负责对用户提交的源程序进行编译,运行,得到是评测结
2、果再反馈给用户。 关键词 :在线评测,程序设计, ACM II Online Judge System Background Judge Module Abstract: ACM international collegiate programming contest, is an annual competition that aims at showing their abilitities of innovation, teamwork, programming under pressure, analysing and solving problems. Through more th
3、an 30 years development, it has become the most influential computing contest for college students and been taken more seriously by many higher eduction universities and colleges, so there comes the Guangdong University of Foreign Studies Online Judge. System which can provide great convenience for
4、programming lovers and students. Users only need to submit their code, then the system can automatically make the appropriate evaluation of its procedures, and returns the corresponding evaluation results. Wiht this platform, users can not only consolidate the academic knowledge, but also can greatl
5、y improve the ability of pratical programming. Background judge module is mainly responsible for a user to submit the source code to compile, run, and return the judge result to the user. Key words: Online judge, Programming, ACM III 目 录 摘 要 . I Abstract . II 第一章 绪论 . 1 1.1 课题的背景、研究意义 . 1 1.2 软件开发环境
6、描述 . 1 1.3 软件运行环境描述 . 2 第二章 系统总体设计 . 3 2.1 模块介绍 . 3 2.2 项目分工 . 错误 !未定义书签。 2.3 数据流图 . 错误 !未定义书签。 2.4 数据库设计 . 错误 !未定义书签。 第三章 GOJ 内核设计 . 5 3.1 定义 . 5 3.2 性能要求 . 错误 !未定义书签。 3.3 判题流程 . 错误 !未定义书签。 3.4 接口设计 . 错误 !未定义书签。 第四章 内核数据结构设计 . 6 4.1 逻辑结构设计 . 6 4.3 出错信息 . 错误 !未定义书签。 4.4 补救措施 . 6 第五章 内核实现难点 . 7 5.1 J
7、NI 本地调用 . 7 5.2 内存测量 . 错误 !未定义书签。 5.3 进程数控制 . 错误 !未定义书签。 5.4 连接到其他 Online Judge System . 错误 !未定义书签。 第六章 结语 . 8 参考文献 . 9 致 谢 . 10 1 第一章 绪论 1.1 课题的背景、研究意义 程序设计类课程,具有实践性强的特点。它不但要求学生掌握基础的理论知识,更重要的是要求学生不断提高自身的编程实践能力。因此,在这类课程中,老师务必会布置大量的程序设计作业,传统通过电子邮件或手写提交作业的方式让老师感到批改作业的任务繁重,让学生感到费时费力,难以提高编程的实践能力。为方便教学,提
8、高学生动手编程的实践能力,开发一 个自动化,智能化的评测系统成为需要。随着现代信息化的发展,软硬件的不断升级,使得开发这样一个评测系统成为可能。 Online Judge System,则是指一个在线的裁判系统,它可对程序源代码进行编译和执行,并通过预先设计的测试数据来检验程序源代码的正确性。 ACM/ICPC(ACM International Collegiate Programming Contest, 国际大学生程序设计竞赛 )是由国际计算机界历史悠久、颇具权威性的组织 ACM( Association for Computing Machinery,国际计算机协会)主办的,世界上公认
9、的规模最大、水平最高的国际大学生程序设计竞赛。 现在各高校也越来越重视 ACM 程序设计比赛,都纷纷建立起自己的测评平台供老师和学生使用,广东外语外贸大学的程序在线评测系统也就应运而生。 1.2 软件开发环境描述 操作系统: Windows NT 5.1 以上 开发平台: MyEclipse 6.0.1 数据库: MySQL 5.1.40 开发语言: Java 1.6 + Jsp + C+ WEB 服务器: Tomcat 6.0 2 1.3 软件运行环境描述 CPU: PIII 800Mhz 或更高 内存: 256MB 或更高 硬盘: 100MB 或以上剩余空间 操作系统: Windows N
10、T 5.1 以上 数据库: MySQL 5.1.40 WEB 服务器: Tomcat 6.0 3 第二章 系统总体设计 本系统主要是分为五个模块:用户维护,题目维护,竞赛维护,后台评测,论坛。 2.1 模块介绍 2.1.1 用户维护 2.1.2 题目维护 2.2 后台管理 可以添加、删除、修改竞赛; 查询竞赛。 2.2.1 后台评测 2.2.2 论坛 顶层图如下 : 图 2.2 顶层图 4 2.2.3 数据表 表 2-1 用户信息表( userinfo) 字段名 中文名称 类型 长度 默 认值 5 第三章 GOJ 内核设计 3.1 定义 广东外语外贸大学程序在线评测系统,简称为 GOJ。其中负责评测用户提交的源程序的模块称为广东外语外贸大学程序在线评测系统的内核,简称为 GOJ内核。 6 第四章 内核数据结构设计 4.1 逻辑结构设计 错误原因 错误代码 可能情况 4.2 补救措施 出现错误,应重复执行 该内核,若确定为 Bug 的,要进行源代码级别的修复。 7 第五章 内核实现难点 5.1 JNI 本地调用