- 1、本文档共17页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
PAGE1
PAGE1
题目程序在线评测系统
题目程序在线评测系统
姓名
学号
所在学院
年级专业
指导教师 ** 职称 讲师
完成时间 2011 年 月日
综合评定成绩:
指导教师评语:
评定成绩:
指导教师签名:日期:
答辩小组意见:
评定成绩:
答辩小组长签名:日期:
PAGE1
PAGEI
目录
TOC\o1-2\h\z\u摘要 I
Abstract II
第一章绪论 1
1.1课题的背景、研究意义 1
1.2软件开发环境描述 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.1JNI本地调用 7
5.2内存测量 错误!未定义书签。
5.3进程数控制 错误!未定义书签。
5.4连接到其他OnlineJudgeSystem 错误!未定义书签。
第六章结语 8
参考文献 9
致谢 10
绪论
课题的背景、研究意义
程序设计类课程,具有实践性强的特点。它不但要求学生掌握基础的理论知识,更重要的是要求学生不断提高自身的编程实践能力。因此,在这类课程中,老师务必会布置大量的程序设计作业,传统通过电子邮件或手写提交作业的方式让老师感到批改作业的任务繁重,让学生感到费时费力,难以提高编程的实践能力。为方便教学,提高学生动手编程的实践能力,开发一个自动化,智能化的评测系统成为需要。随着现代信息化的发展,软硬件的不断升级,使得开发这样一个评测系统成为可能。
OnlineJudgeSystem,则是指一个在线的裁判系统,它可对程序源代码进行编译和执行,并通过预先设计的测试数据来检验程序源代码的正确性。
ACM/ICPC(ACMInternationalCollegiateProgrammingContest,国际大学生程序设计竞赛)是由国际计算机界历史悠久、颇具权威性的组织ACM(AssociationforComputingMachinery,国际计算机协会)主办的,世界上公认的规模最大、水平最高的国际大学生程序设计竞赛。现在各高校也越来越重视ACM程序设计比赛,都纷纷建立起自己的测评平台供老师和学生使用,广东外语外贸大学的程序在线评测系统也就应运而生。
软件开发环境描述
操作系统: WindowsNT5.1以上
开发平台: MyEclipse6.0.1
数据库: MySQL5.1.40
开发语言: Java1.6+Jsp+C++
WEB服务器: Tomcat6.0
软件运行环境描述
CPU: PIII800Mhz或更高
内存: 256MB或更高
硬盘: 100MB或以上剩余空间
操作系统: WindowsNT5.1以上
数据库: MySQL5.1.40
WEB服务器: Tomcat6.0
系统总体设计
本系统主要是分为五个模块:用户维护,题目维护,竞赛维护,后台评测,论坛。
模块介绍
用户维护
题目维护
后台管理
可以添加、删除、修改竞赛;
查询竞赛。
后台评测
论坛
顶层图如下:
图2.2顶层图
数据表
表2-1用户信息表(userinfo)
字段名
中文名称
类型
长度
默认值
GOJ内核设计
定义
广东外语外贸大学程序在线评测系统,简称为GOJ。其中负责评测用户提交的源程序的模块称为广东外语外贸大学程序在线评测系统的内核,简称为GOJ内核。
内核数据结构设计
逻辑结构设计
错误原因
错误代码
可能情况
补救措施
出现错误,应重复执行该内核,若确定为Bug的,要进行源代码级别的修复。
内核实现难点
JNI本地调用
结语
在GOJ的开发过程中,受到的阻力很大。刚开始是整体的模块划分问题,因为在设计的时候,没有考虑周全系统的可扩展行,导致开始开发时发现很多地方需要重构。但经过和组员讨论后,采用了MVC的方法,分清楚各
文档评论(0)