分享
分销 收藏 举报 申诉 / 11
播放页_导航下方通栏广告

类型湖南科技大学Online-Judge系统开发教学文案.doc

  • 上传人:丰****
  • 文档编号:3787027
  • 上传时间:2024-07-18
  • 格式:DOC
  • 页数:11
  • 大小:44.50KB
  • 下载积分:8 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    湖南 科技大学 Online Judge 系统 开发 教学 文案
    资源描述:
    湖南科技大学Online Judge系统开发 精品文档 IT项目软件管理报告 LAMP环境下Online Judge系统开发 学号:0855010206 班级:计算机002 姓名: 李 坚 时间:2011-11-29 目 录 一、项目定义 二、可行性分析 1、需求上分析 2、技术上分析 3、经济上分析 三、功能需求分析 四、模块概要设计 五、详细设计分工 1、前台组 2、后台组 3、数据库组 4、判题模块组 5、运维组 六、设计说明 一、 项目定义 本网站是为了湖南科技大学ACM竞赛爱好者练习竞赛而设计开发的网站系统,提供了题目浏览,在线判题,在线竞赛等功能。除了非正式的ACM程序设计学习交流,本网站还可以用作课程设计作业和举办ACM程序设计竞赛。 二、 可行性分析 1、 从需求上分析: ACM国际大学生程序设计竞赛(英文全称:ACM International Collegiate Programming Contest(ACM-ICPC或ICPC)是由美国计算机协会(ACM)主办的,一项旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛。经过近30多年的发展,ACM国际大学生程序设计竞赛已经发展成为最具影响力的大学生计算机竞赛。与ACM息息相关的必然就是Online Judge网上判题系统了,随着ACM的流行,各大高校都建立了自己的Online Judge系统以便同学们的学习交流以及各种程序设计的比赛。我们学校对ACM程序设计竞赛越来越重视,设计一个属于我们学校自己的Online Judge可以更好的学习交流程序设计技术。 2、 技术可行性分析: 开发这个Online Judge系统需要很多方面的技术,包括网页前台html div+css、后台php、数据库mysql、以及linux下的c\c++和一部分网络通信。由于目前开发人员仅仅只有我一人,所以难度系数比较大,但是以上的技术我基本具备,开发出来也只是时间问题。初步预计开发周期,前台5天、后台5天、数据库3天、judge模块20天、通信3天、模块衔接2天、调试试用10天,目前预算48天时间可以初步完成、由于计划的误差会有10天左右的弹性时间。 3、 经济可行性分析: 目前拥有良好的网速和一台自用台式电脑提供开发,时间上也足够设计开发、试用以及正式投入运行。另外在设备方面拥有一台性能稳定的服务器,由于本系统暂时定义为校内使用,所以安全性以及一些设备要求比较低,基本符合开发使用要求。 三、 功能需求分析 本网站和其他高校Online Judge系统类似,可以提供程序设计爱好者一个学习交流的平台。 用户能在系统内查看题目和运行状态,登录后可以拥有提交代码、查看本人已经提交的代码、发表留言等功能。系统需要对用户提交的代码入库并测试运行、并将结果保存以统计数据。 四、 模块概要设计: 功能 简要说明 用户登录登出 在数据库存储用户账户信息,登录时比对,并用session记录用户登录情况 题目列表查看 从数据库获取题目信息并经php加工最终显示在web页面上,用户可以用proid查看具体题目 代码提交 用户在登录后可以提交某个题目的解决代码,后台将代码存入数据库并给判题模块发出信号 代码编译并测试运行 判题模块接收到后台信号之后取出代码进行编译并尝试运行,并将运行的结构输出到数据库 结果查看 后台在存入代码并给出判题信号之后将判题队列里面的代码运行结果显示在状态页面 用户排名 系统会根据用户的做题状况以某种形式排名 比赛功能 系统可以将一部分题目划分成一次比赛并限定可提交时间,同时应用更严格的排名系统 简单论坛功能 本系统可提供一个类似留言板的微型论坛,可用于技术交流以及这个系统本身的改进意见 FAQ 对系统的功能以及一些限制条件进行说明 系统结构图 数据库 Web前端显示 题目 用户 代码 Php后台控制 判题模块 编译模块 测试运行模块 图1、系统结构体系 五、 详细设计分工 首先假设设计是一个团队,将所有设计部分分成小组开发,这样将我在同一设计过程要处理的问题大大简化以及要面对的技术减少,有利于开发过程的计划与管理、同时消减各种不同语言代码差异造成编码困难。 根据需要的技术以及系统的结构,我将系统开发组一共分成了五个小组(web前台、php后台、数据库、判题模块、运维),其中每个小组的工作以及技术比较专一,负责内容和编辑环境根据设计需要有部分差异。组与组之间的交互具体设计由开发过程中视情况而定。 1、Web前台组: 要求:熟悉html标签、css样式表、js脚本语言。根据页面内容编写php表示页面,在不同页面尽量使用统一风格,尽量使用分离的css样式表,使用简单的js实现表单的验证。 任务:编写静态页面,包括题目列表页面、题目展示页面、题目提交页面(与题目展示页面合并)、代码转台页面、代码展示页面、排名页面、综合主页、比赛页面、FAQ页面。 资源:5天时间(不包括维护以及其他组设计过程中修改)、设计环境Windows XP Sp3、Adobe Dreamweaver CS5、测试服务器 2、Php后台组: 要求:熟悉php代码基础以及常用函数以及工作原理(SESSION、POST、GET等)、熟悉Mysql常用语句。根据各个页面的功能要求嵌入相应的处理代码、实现页面功能,同时要探索php与linux C交互问题(socket)实现后台和判题模块的通信。 任务:根据已有的静态页面和功能需求完善各种页面,包括题目列表页面、题目展示页面、题目提交页面(与题目展示页面合并)、代码转台页面、代码展示页面、排名页面、综合主页、比赛页面,同时要编写纯后台处理程序,包括登录登出处理、代码接收以及处理、比赛数据处理。 资源:5天时间(不包括维护以及更新功能)、设计环境Windows XP Sp3、Adobe Dreamweaver CS5、CoreAMP集成环境。 3、数据库设计组: 要求:熟悉Mysql数据库和基本操作语言、会使用phpmyadmin工具。根据网站功能及对使用数据分析建造数据库并编写一些相应的处理语句。 任务:在系统需求分析之后立即构造数据库并在设计过程中根据设计要求进行修改,同时配合后台组和判题模块组的要求编写处理语句。 资源:3天时间、设计环境WindowsXP Sp3、CoreAMP、phpmyadmin。 4、判题模块组: 要求:熟悉linux操作系统及其常用shell和基本api函数、熟悉C\C++语言(线程、进程、数据库、socket通信)。编写linux下的judge程序,要求与后台和数据库进行特定的交互。 任务:在后台发出信号之后将信号打入判题队列,分别进行编译和测试运行操作、并将结果存入数据库。其中过程包括取出代码并写入缓存、危险代码判断、编译代码、权限以及资源限定、重定向输入输出、测试运行代码、监控程序运行、回收结束信息,比对运行结果、代码运行结果入库。 资源:20天时间、操作系统Fedora Core 10、编辑器gedit、编译器g++。 5、运维组: 要求:熟悉linux操作系统、理解各个模块的功能以及工作原理、理解用户的需求。 任务:搭建LAMP环境并将各个模块布置到位、初始化系统并监视其运行、体验用户感受、测试各个功能、将遇到的bug调试并将有问题的模块回炉。 资源:5天(搭建环境并部署系统)、操作系统linux(详细版本待定)、Apache Tomcat、Mysql、PHP、G++/GCC。 各组任务的依赖关系 前台组 后台组 数据库组 判题模块组 运维组 图2、任务小组依赖关系 根据依赖关系,前台组、数据库组和判题模块组可以同时开始设计开发、而后台组需要得到前台组的产品才能开始、运维组在所有其他组开发完成时才能开始。由于本次开发比较特殊(只有我一个人,单线程),所以开发线路很单调,基本不会出现两个组同时开发的情形。在实际分组开发中,我更注重的是各个分组之间的效率以及工作的质量,避免短板效应的发生。适当的调整工作的分配问题,在有问题的环节注意加强。 六、设计说明 本系统纯手工编写,不借鉴抄袭其他系统源代码,开发周期较长,难度系数比较大。此系统在功能上初步实现Online Judge在线判题,并将在之后的修改更新中实现更多功能以及强化稳定性的安全性。 作为一个“项目经理”,我感觉在计划设计过程中头脑比较清晰,即便在实际开发中遇到的问题与计划中不同甚至部分相悖。实际操作证明了有实际需求分析以及设计分组能使开发过程更容易理解,更方便维护和管理。目前我具备了一些软件开发的基础技术,有一定的结构分析能力,能简单的将项目划分;不足之处在于部分技术不是很了解导致某些模块的开发周期与计划相差很大,另外还有技术安排和分工可能有不平均的现象,这个需要在以后实际的操作中改进了。 在项目开发前期主要是对项目的可行性分析、需求分析以及开发的预算,这对后面的设计开发非常重要。实施中主要是按照计划书进行编码,同时对部分细节动态调整以优化系统设计。项目收尾需要对项目的功能审核,另外也要做相应的设计总结。 目前这个项目已经完成了75%左右,按照目前的进度可以在十二月中旬开始内测,在今年年底正式投入运行。 李坚 2011-11-30 收集于网络,如有侵权请联系管理员删除
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:湖南科技大学Online-Judge系统开发教学文案.doc
    链接地址:https://www.zixin.com.cn/doc/3787027.html
    页脚通栏广告

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork