logo资料库

基于php的在线判题系统的设计与开发.doc

第1页 / 共61页
第2页 / 共61页
第3页 / 共61页
第4页 / 共61页
第5页 / 共61页
第6页 / 共61页
第7页 / 共61页
第8页 / 共61页
资料共61页,剩余部分请下载后查看
摘 要
Abstract
1 绪论
1.1 开发背景
1.2 项目概述
1.3 开发工具
1.3.1 Linux
1.3.2 Apache
1.3.3 PHP
1.3.4 MYSQL
1.3.5 GCC
1.4 整体架构
1.4.1 B/S结构的概念
1.4.2 B/S结构的优势
1.4.3 B/S结构的劣势
1.4.4 前端Web系统模型
1.5 源程序黑盒评测
1.6 守护进程
1.6.1 守护进程简介
1.6.2 守护进程特性
2 可行性分析
2.1 技术可行性
2.2 经济可行性
2.3 应用可行性
2.4 管理风险及管理可行性
3 需求分析
3.1 需求定义
3.2 具体用户分析
3.3 判题内核需求分析
3.3.1 判题内核需要实现功能
3.3.2 判题内核功能工作流程:
3.4 核心业务用例
3.4.1 详述用例文本
3.4.2 核心业务用例图
4 总体设计
4.1 系统结构设计
4.2 系统权限划分
4.3 系统功能划分
4.4 数据库设计
4.4.1数据表
5详细设计
5.1 系统架构
5.2 判题内核设计
5.2.1 守护进程
5.2.3 子进程执行测试程序
5.2.4 系统安全性
5.3 注册与登录
5.3.1 用户注册
5.3.2 登录系统
5.4 做题功能
5.4.1 题目浏览
5.4.2 进入做题
5.4.3 提交代码
5.4.4 查看状态
5.4.5 查看提交代码
5.4.6 重新编辑提交代码
5.4.7 查看错误信息
5.4.8 查看排名
5.5 用户相关
5.5.1 更改个人信息
5.6 参加比赛
5.7 管理员功能
5.7.1 增加特殊权限
5.7.2 手工增加题目
5.7.3 添加比赛
5.7.4 改变用户密码
6 测试及优化
6.1系统测试
6.1.1从测试者来分
6.1.2从测试内容来分
7 运行与维护
7.1运行所需的环境
7.2实施相关
7.3日常维护
总 结
参考文献
附 录
谢 辞
毕业设计 基于 php 的在线判题系统的设计与开发 学 院: 计算机科学技术学院 专 业: 计算机科学与技术 姓 名: 学 号: 指导老师: 职 称: 中国·珠海 二○一一年五月 诚信承诺书
本人郑重承诺:我所呈交的毕业设计《PHP 在线判题系统》是在 指导教师的指导下,独立开展研究取得的成果,文中引用他人的观点 和材料,均在文后按顺序列出其参考文献,设计使用的数据真实可靠。 承诺人签名: 日期: 年 月
北京理工大学珠海学院 2011 届本科生毕业设计 PHP 在线判题系统 摘 要 ACM/ICPC(ACM International Collegiate ProgrammingContest,国际大学 生程序设计竞赛)是由历史悠久、颇具权威性的组织 ACM(Association for Computing Machinery 国际计算机协会)主办的,是世界上公认的规模最大、水 平最高的国际大学生程序设计竞赛项目,其目的是促进大学生提高运用计算机分 析问题和解决问题的能力 ACM 在线评判系统是该项比赛的评判事务处理平台,是一个基于 B/S 结构的 多用户在线系统,允许用户在线提交自己的解题代码,系统自动编译运行给出裁 判结果,并根据用户解题数和用时排出名次。 系 统 的 架 构 采 用 了 目 前 Internet 上 流 行 的 网 站 架 构 方 式 : LAMP (Linux+Apache+MySQL+PHP),即使用 Linux 作为服务器端的操作系统,Apache 作为 Web 服务器,MySQL 作为数据库,PHP 作为服务器端脚本解释器。ZHBIT ACM Online Judge System 的开发环境是在 Ubuntu Linux 下架设 Web 服务器 Apache, 同时使用 MySQL 作为数据库服务器,PHP 作为服务器端脚本解释器,在此平台上 综合运用 PHP、C 语言、html、数据库技术进行系统开发。由于这四个软件都是 遵循 GPL 的开放源码软件,因此使用这种方式不用花一分钱就可以建立起一个稳 定、免费的网站系统。即当这个系统构建起来后可以马上投入使用,除考虑标明 开源程序版权或者其他问题。 关键词:ACM/ICPC Online Judge PHP MYSQL Apache Linux I
北京理工大学珠海学院 2011 届本科生毕业设计 PHP Online Judge System Abstract ACM / ICPC (ACM International Collegiate ProgrammingContest, International is a long history and quite authoritative Collegiate Programming Contest) organization ACM (Association for Computing Machinery International Computer Association) sponsored, recognized as the world's largest and highest level of international Collegiate Programming Contest, which aims to help college students improve the use of computer analysis of issues and problem-solving abilities of the ACM Online Assessment System is a transaction processing platform, the contest judge, is based on B / S structure of the multi-user online system that allows users to problem solving and their code submitted online, the system automatically compiles and runs the referee gives the results of problem solving based on the number of users and the use of rank when discharged. System architecture using the current Internet, the popular Web site architecture approach: LAMP (Linux + Apache + MySQL + PHP), that the use of Linux as a server operating system, Apache as the Web server, MySQL as a database, PHP as server-side script interpreter . ZHBIT ACM Online Judge System development environment is set up under Ubuntu Linux Web server, Apache, MySQL as the database server simultaneously, PHP as server-side script interpreter, the integrated use of this platform PHP, C language, html, database technology for system development. Since this software is to follow the four open source GPL software, so do not spend a penny to use this approach can establish a stable, free web site system. That when built up after the system put into use immediately, without regard to copyright or other issues. Keywords: ACM / ICPC Online Judge PHP MYSQL Apache Linux II
北京理工大学珠海学院 2011 届本科生毕业设计 目 录 摘 要 ................................................ I ABSTRACT ............................................. II 1 绪论 .............................................. 1 1.1 开发背景 .......................................... 1 1.2 项目概述 .......................................... 1 1.3 开发工具 .......................................... 2 1.3.1 LINUX ........................................... 2 1.3.2 APACHE .......................................... 2 1.3.3 PHP ............................................. 3 1.3.4 MYSQL ........................................... 3 1.3.5 GCC ............................................. 4 1.4 整体架构 .......................................... 4 1.4.1 B/S 结构的概念 .................................. 5 1.4.2 B/S 结构的优势 .................................. 5 1.4.3 B/S 结构的劣势 .................................. 6 1.4.4 前端 WEB 系统模型 ................................ 6 1.5 源程序黑盒评测 .................................... 7 III
北京理工大学珠海学院 2011 届本科生毕业设计 1.6 守护进程 .......................................... 7 1.6.1 守护进程简介 .................................... 7 1.6.2 守护进程特性 .................................... 7 2 可行性分析 ........................................8 2.1 技术可行性 ........................................ 8 2.2 经济可行性 ........................................ 8 2.3 应用可行性 ........................................ 8 2.4 管理风险及管理可行性 .............................. 8 3 需求分析 ..........................................9 3.1 需求定义 .......................................... 9 3.2 具体用户分析 ...................................... 9 3.3 判题内核需求分析 ................................. 10 3.3.1 判题内核需要实现功能 ...........................10 3.3.2 判题内核功能工作流程: .........................11 3.4 核心业务用例 ..................................... 12 3.4.1 详述用例文本 ................................... 12 3.4.2 核心业务用例图 ................................. 13 4 总体设计 .........................................14 4.1 系统结构设计 ..................................... 14 IV
北京理工大学珠海学院 2011 届本科生毕业设计 4.2 系统权限划分 ..................................... 14 4.3 系统功能划分 ..................................... 15 4.4 数据库设计 ....................................... 16 4.4.1 数据表 ........................................ 17 5 详细设计 .........................................20 5.1 系统架构 ......................................... 20 5.2 判题内核设计 ..................................... 21 5.2.1 守护进程 ....................................... 22 5.2.2 主进程进行编译 ................................. 26 5.2.3 子进程执行测试程序 ............................. 30 5.2.4 系统安全性 ..................................... 34 5.3 注册与登录 ....................................... 36 5.3.1 用户注册 ....................................... 36 5.3.2 登录系统 ....................................... 36 5.4 做题功能 ......................................... 37 5.4.1 题目浏览 ....................................... 37 5.4.2 进入做题 ....................................... 37 5.4.3 提交代码 ....................................... 38 5.4.4 查看状态 ....................................... 38 V
北京理工大学珠海学院 2011 届本科生毕业设计 5.4.5 查看提交代码 ................................... 39 5.4.6 重新编辑提交代码 ............................... 39 5.4.7 查看错误信息 ................................... 40 5.4.8 查看排名 ....................................... 40 5.5 用户相关 ......................................... 41 5.5.1 更改个人信息 ................................... 41 5.6 参加比赛 ......................................... 41 5.7 管理员功能 ....................................... 42 5.7.1 增加特殊权限 ................................... 42 5.7.2 手工增加题目 ................................... 43 5.7.3 添加比赛 ....................................... 43 5.7.4 改变用户密码 ................................... 44 6 测试及优化 ........................................ 45 6.1 系统测试 ......................................... 45 6.1.1 从测试者来分 ................................... 45 6.1.2 从测试内容来分 ................................. 45 7 运行与维护 ........................................ 46 7.1 运行所需的环境 ................................... 46 7.2 实施相关 ......................................... 46 VI
分享到:
收藏