大学毕设论文__文__基于acm程序设计竞赛的在线评测系统设计与实现前台网站部分_第1页
大学毕设论文__文__基于acm程序设计竞赛的在线评测系统设计与实现前台网站部分_第2页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于ACM程序设计竞赛的在线评测系统设计与实现前台网站部分计算机科学与技术专业 学生:吴玉培 指导教师:赵磊摘 要:随着 Internet 的广泛应用和计算机技术的飞速发展, 计算机算法在其中发挥着极其重要的作用。 为了更好地适应这个社会选拔人才的要求, 同学们提高程序设计能力的愿望 越发强烈 ,然而人工评测程序的效率还是很低的。因此ACM 在线评测系统应运而生了 .这个在线评测系统主要由三个大的部分组成,即数据库部分,网站部分,和编译器的调用部分, 三个部分紧密地联系在一起。 在用户提交解决方案的同时, 在服务器端产生源程序, 编译部 分负责调用源程序, 并把结果写入数据库, 然后网站部分再

2、通过数据库查询语句把数据库中 的结果显示在网页上。关键词: 在线评测; ACM ;网站部分1概述1.1 ACM 在线评测系统设计背景和研究意义ACM/ICPC 国际大学生程序设计竞赛始于 1970 年,是全球大学生计算机程序能力竞赛 活动中最有影响的一项赛事。 ACM 国际大学生程序设计竞赛是参赛选手展示计算机才华的 广阔舞台, 是著名大学计算机教育成果的直接体现, 是信息企业与世界顶尖计算机人才对话 的最好机会。ACM 国际大学生程序设计竞赛是旨在展示大学生创新能力、团队精神和在压力下编写 程序、 分析和解决问题能力的竞赛。 经过近30年的发展, ACM 国际大学生程序设计竞赛 已经发展成为

3、最具影响力的大学生计算机竞赛。竞赛规模的迅速扩大对阅卷工作的自动化、 高效性、 合理性和公正性提出了更高的要求, 建立一套准确、 高效的程序评测系统成为非常 迫切的需求。通过对在线评测系统相关知识的学习,以及对目前已有软件系统的功能分析, 本系统总结以往系统开发的设计经验, 结合当今系统的发展趋势,确定了该项目的设计方案。1.2 ACM 在线评测系统设计的开发工具与运行环境系统前台开发工具主要用到 Dreamweaver 8、 wamp5。(1) Dreamweaver 8 简介Macromedia Dreamweaver 8 是建立 Web 站点和应用程序的专业工具。 它将可视布局工 具、应

4、用程序开发功能和代码编辑支持组合在一起, 使得各个层次的开发人员和设计人员都 能够快速做出界面吸引人的基于标准的网站和应用程序。语言版本:中文版本:8 中文版配置 Win9x/Me/NT/2000/XP/2003/win7/(2) wamp5 简介wamp5 是一款优秀的 wamp 集成软件,可以轻松的一下子同时安装PHP5、 MYSQL 和Apache 环境,对初学 PHP 的学者来说非常方便。同时,wamp5 内还集成了 PhpMyadmin 和SQLitemanager 管理工具。语言版本:英文?版本 Vin9x/Me/NT/2000/XP/2003/win7。系统网站部分是用 PHP

5、语言编写,使用的数据库是 MYSQL 而服务器则是现今最流行的 Apache 服务器,在 Vindows XP 系统上实现。因此系统的运行环境如下:(1)数据库: MYSQL ;(2)服务器 : Apache;(3) 操作系统: Vindows XP 。2需求分析该系统设计的主要目的是希望给学计算机的学生提高编程能力和对ACM 编程有兴趣的学生提供一个学习和操练的平台, 真正实现一个高效管理和稳定的在线评判 系统。结合学习及ACM点,系统具有以下几点功能需求:(1) 用户管理:认真填写资料就可以注册了,未注册用户只能浏览不能进行 提交或者参与比赛。(2) 题目浏览:用户可以通过页面浏览题目,查

6、询题目,找到自己感兴趣或者比较 新的题目,然后进行提交。(3)提交:用户做题目时可以选择提交的语言, 此系统可以用的语言有 C+、C、Pascal、 Java等。(4) 查看提交状态:提交情况,越在前面的页面在时间上越靠近现在,反映用户做题 目时的提交状态、做哪个题目、 AC 或者一些常见的错误,比如结果错误、运行时间和运行 空间超过题目要求运行的时间和空间, 以及用户提交时用的是什么语言、 提交时间、 提交的 序号等等。(5) 查看排名:显示用户做题数的一个排名,做的题目越多,排名越在前,若做出同 样的题目,则以提交次数少者排名靠前。(6) 比赛练习:添加比赛用于举行比赛或者考察学生的编程能

7、力。(7) 后台管理:包括用户信息的管理,题目的添加和修改,比赛的添加和修改以及数 据库的备份等等。3系统可行性分析此系统从结构的总体上进行划分, 可以划分为三个大的模块, 即前台网站设计, 数据库 设计,后台调用评判程序正误的结果。 接下来将对上述三大模块的可行性以及服务器的承受 力做具体的分析:前台网站设计的可行性: 写前台网站代码的主要语言是 PHP 语言,这门语言已经发展到 了相当成熟的地步, 从理论上讲完全可以实现该系统的所有功能, 其次, 制作本系统所使用 的 PHP 技术也已经是一些非常成熟的技术,并且在相关书籍以及网络论坛上有相关的理论 和实例可供参考。数据库设计的可行性:首先

8、,本系统所采用 MYSQ 数据库,这个数据库的管理软件已经 经过严格的测试,可供本系统完成相关信息的存取工作。 其次是对数据库进行读, 写,更改 的 SQL 语言已经发展到非常成熟的地步,此外, PHP 与 MYSQL 的连接技术也已经相当成 熟,并且在相关书籍以及网络论坛上有相关的理论和实例可供参考。后台调用评判程序正误的结果的可行性: 后台程序代码实现的主要语言是 C+ ,这门语 言本身经过开发人员和用户的反复测试, 已经变得相当成熟; 另外程序实现者对该语言也非 常的熟悉,能够运用该语言实现本系统的相关功能模块;此外程序一旦以进程运行起来后, 则可以采用 Windows 所提供的 API

9、 来对相关的进程进行控制和管理,这位本系统的技术实 现提供了可能。并且在相关书籍以及网络论坛上有相关的理论和实例可供参考。服务器的承受力方面的可行性: 从访问规模上讲, 由于本系统主要是为校内用户提供程 序测评服务,虽然今后也可能为部分互联网用户提供程序测评服务。 但是就目前的情况而言, 每天的用户的登录总量一般是保持在 200 个用户左右。 而且用户提交程序所耗费的运行时间 和运行内存都是在规定的时间和规定的内存的严格控制之下。综上所述, 本系统前台网站设计, 数据库设计, 后台调用评判程序正误的结果这三个大 的模块从语言到开发技术上讲, 可行性的各个条件已经完全具备, 不仅如此, 在用户所

10、提交 的一些极端程序的条件下, 本系统也可以对其进行处理, 从而保证了程序的正常运行。 因此 可以开始对本进行设计开发了。4系统的设计4.1 系统框架即实现流程根据需求分析,ACME 线系统主要包括以下几大模块:用户模块,在线评判模块,在线 比赛模块,题库模块,后台管理模块。其中用户模块主要包括由用户自行操作的用户注册和登录、 更新用户信息的功能及由管 理员对用户进行管理的一些操作主要有添加用户、删除用户、更新用户等。在线评判模块是系统的一个核心, 对与应用层的用户来说主要包括查看竞赛题目、提 交竞赛代码、查看排名、查看竞赛状态等功能。在线比赛模块,用户能参与竞赛查看比赛信息及规则,看看往届比

11、赛题目等。 题库模块是主要是用户能打开相关问题集进行练习, 也可以通过站内搜索功能通过输入 问题 ID 直接找到问题。后台管理模块主要负责创建比赛、修改比赛、管理比赛题目、增加问题、修改问题、管理测试数据、修改用户权限、数据库备份等功能。框架流程如图4-1 所示:4.2系统的数据库设计该系统数据库采用 MYSQL,其主要目的是为了与PHP 网站更好的衔接,而且 PHP 的数据库连接技术也是相当成熟。数据库的名称是 0J,包含 6 张表,这 6 张表分别是:userinfo.solution,problem,loginlog,contest,standing。这 6 张表中 userinfo 表

12、主要是用来储存用户的登录名和密码以及用户的做题的正确个 数,提交次数,以及做题的正确率;solution 表主要是在用户每次提交的时候记录下用户的提交信息,这些提交信息包括用户的登录名,题号,程序运行的时间,程序运行的内存,运 行的结果,提交的时间,以及提交的语言等;problem 表中主要是储存每个题目的相关信息, 包括题目的题号,题目的内容, 题目的类别,题目的难度,以及该题目属于第几次模拟测试 等;loginlog 表主要是在每一次用户登录的时候,储存用户的登录名,密码,以及用户的登 录时间,这样可以知道登录本系统的总人数是多少;con test 表主要是用来记录每一次比赛的题目、开始时

13、间、结束时间。Standing 表是用来记录每次比赛参见比赛用户的信息,比如做题个数,做题用的总时间,以及用户的排名等等。数据库中的各个表的内容分类及大致功能介绍见表 4-1 :表 4-1 OJ 数据库提交题目提交状态查看排名参加比赛个人信息用户管理题目管理比赛管理数据库备份图4-1框架实现流程表名表功能说明useri nfo储存登录名和密码信息soluti on储存用户的提交信息problem储存题目信息logi nlog储存用户登录信息con test储存每次比赛的题目sta nding储存每次参加比赛的用户信息4.3前台网站部分的设计该在线提交系统的前台网站的名称是onlinejudge

14、_1.0,该网站包括注册,登录,修改用户信息,浏览问题等等。具体的网页介绍见表4-2:表 4-2 网页功能网页名称功能模块Register用户注册Login用户登录ModifUserI nfo修改用户信息ProblemList题目列表ShowProblem题目内容SubmitProblem用户提交Status提交状态Ra nkList用户排名Con tests比赛FAQs常见问题说明AddProblem添加题目AddCo ntest添加比赛ModifyPrivate修改用户权限ModifyProblem修改题目ModifyC on test修改比赛5结束语历经了几个月的奋战,紧张而又充实的毕业

15、设计终于落下了帷幕。回想这段日子的经历和感受,我感慨万千,在这次毕业设计的过程中,我拥有了无数难忘的回忆和收获。脚踏实地,认真严谨,实事求是的学习态度,不怕困难、坚持不懈、吃苦耐劳的精神是我在这次设 计中最大的收益。我想这是一次意志的磨练,是对我实际能力的一次提升,也会对我未来的学习和工作有很大的帮助。在此更要感谢我的导师和专业老师,是你们的细心指导和关怀,使我能够顺利的完成毕业论文。在我的学业和论文的研究工作中无不倾注着老师们辛勤的汗水和心血。在此我要向我的导师致以最衷心的感谢和深深的敬意。参考文献】1 王珊,萨师煊.数据库系统概论(第二版)M.北京:高等教育出版社,2011,17-206.

16、2 阳西述,梁小满,周端峰.网页制作与网站设计M.武汉:武汉大学出版社,2010,50-186.3 Roger S.Pressman, 郑人杰,马素霞.软件工程一实践者的研究方法(原书第六版)M.北京:机械工业出版社 ,2009,58-319.4 曹玉峰 . 国家信息学奥林匹克竞赛在线评测系统 D. 吉林:吉林大学出版社 ,2008,76-122.5 刘楠,孙国道. ACM 在线评判系统设计与实现 J .计算机时代 , 2006,189-242.6 蒋社想 ,戴书文 . 基于 J2EE 的 ACM 竞赛在线评判系统的设计 J. 安徽理工大学学报 ,2009, 120-187.7 车明洙 , 纪

17、洪波 . 一种基于 ACM 程序设计竞赛在线评测系统解决方案J. 微型机与应用2011,106-185.8 焦燕.在线评测系统的设计与实现D.呼和浩特:内蒙古大学出版社,2010, 57-186.9 王成良.Web 开发技术及其应用M.北京:清华大学出版社,2008,75-124.10 王晓东.算法设计与分析M.北京:清华大学出版社,2010, 30-149.11 王育坚.Visual C+面向对象编程教程M.北京:清华大学出版社,2009, 38-150.12 孙钟秀.操作系统教程M.北京:清华大学出版社,2011,31-149.Design and Implementation of On

18、line Judge systemBased on the ACM Programming ContestComputer Science and Technology Specialty:Wu YuPei Tutor: Zhao LeiAbstract: With the wide application of Internet and the rapid development of computer technology, computer algorithmplays a very important role. In order to adapt to the social demand of selecting talented persons, students have shown

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论