《2022年基于ACM程序设计竞赛的在线评测系统设计与实现——前台网站部分.docx》由会员分享,可在线阅读,更多相关《2022年基于ACM程序设计竞赛的在线评测系统设计与实现——前台网站部分.docx(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品学习资源基于 ACM 程序设计竞赛地在线评测系统设计与实现 前台网站部分运算机科学与技术专业同学:吴玉培指导老师:赵磊摘要:随着 Internet 地广泛应用和运算机技术地飞速进展,运算机算法在其中发挥着极其重要地作用 .为了更好地适应这个社会选拔人才地要求,同学们提高程序设计才能地愿望更加剧烈 ,然而人工评测程序地效率仍是很低地.因此 ACM 在线评测系统应运而生了.这个在线评测系统主要由三个大地部分组成,即数据库部分,网站部分,和编译器地调用部分,三个部分紧密地联系在一起.在用户提交解决方案地同时,在服务器端产生源程序,编译部分负责调用源程序,并把结果写入数据库,然后网站部分再通过数据
2、库查询语句把数据库 中地结果显示在网页上.关键词:在线评测; ACM ;网站部分1 概述1.1 ACM 在线评测系统设计背景和讨论意义ACM/ICPC国际高校生程序设计竞赛始于1970 年,是全球高校生运算机程序才能竞赛活动中最有影响地一项赛事.ACM国际高校生程序设计竞赛是参赛选手展现运算机才华地 宽阔舞台,是闻名高校运算机训练成果地直接表达,是信息企业与世界顶尖运算机人才对话地最好机会 .ACM 国际高校生程序设计竞赛是旨在展现高校生创新才能、团队精神和在压力下编写程序、分析和解决问题才能地竞赛.经过近 30 年地进展, ACM国际高校生程序设计竞赛已经进展成为最具影响力地高校生运算机竞赛
3、.竞赛规模地快速扩大对阅卷工作地自动化、高 效性、合理性和公平性提出了更高地要求,建立一套精确、高效地程序评测系统成为特别迫切地需求 .通过对在线评测系统相关学问地学习,以及对目前已有软件系统地功能分析, 本系统总结以往系统开发地设计体会,结合当今系统地进展趋势,确定了该工程地设计方案.1.2 ACM 在线评测系统设计地开发工具与运行环境系统前台开发工具主要用到Dreamweaver 8、wamp5. 1Dreamweaver 8 简介Macromedia Dreamweaver 8 是建立 Web 站点和应用程序地专业工具.它将可视布局工具、应用程序开发功能和代码编辑支持组合在一起,使得各个
4、层次地开发人员和设计人员都能够快速做出界面吸引人地基于标准地网站和应用程序.语言版本:中文 版本: 8 中文版配置 Win9x/Me/NT/2000/XP/2003/win7/.欢迎下载精品学习资源2wamp5 简介wamp5 是一款优秀地 wamp 集成软件,可以轻松地一下子同时安装 PHP5、MYSQL 和Apache 环境,对初学 PHP 地学者来说特别便利 .同时, wamp5 内仍集成了 PhpMyadmin 和SQLitemanager 治理工具 .语言版本:英文 .版本 Win9x/Me/NT/2000/XP/2003/win7/.系统网站部分是用PHP 语言编写,使用地数据库是
5、MYSQL, 而服务器就是现今最流行地Apache 服务器,在 Windows XP 系统上实现 .因此系统地运行环境如下:(1) 数据库: MYSQL ;(2) 服务器 : Apache;(3) 操作系统: Windows XP.2 需求分析该系统设计地主要目地是期望给学运算机地同学提高编程才能和对ACM 编程有爱好地同学供应一个学习和操练地平台,真正实现一个高效治理和稳固地在线评判系统.结合学习及 ACM 点,系统具有以下几点功能需求:( 1)用户治理:仔细填写资料就可以注册了,未注册用户只能浏览不能进行提交或者参与竞赛 .( 2)题目浏览:用户可以通过页面浏览题目,查询题目,找到自己感爱
6、好或者比较新地题目,然后进行提交.( 3)提交:用户做题目时可以挑选提交地语言,此系统可以用地语言有C+ 、C、Pascal、Java 等.( 4)查看提交状态:提交情形,越在前面地页面在时间上越靠近现在,反映用户做题目时地提交状态、做哪个题目、AC 或者一些常见地错误,比如结果错误、运行时间和运行空间超过题目要求运行地时间和空间,以及用户提交时用地是什么语言、提交时间、提交地序号等等 .( 5)查看排名:显示用户做题数地一个排名,做地题目越多,排名越在前,如做出同样地题目,就以提交次数少者排名靠前.( 6)竞赛练习:添加竞赛用于举办竞赛或者考察同学地编程才能.( 7)后台治理:包括用户信息地
7、治理,题目地添加和修改,竞赛地添加和修改以及数据库地备份等等 .3 系统可行性分析此系统从结构地总体上进行划分,可以划分为三个大地模块,即前台网站设计,数据库设计,后台调用评判程序正误地结果.接下来将对上述三大模块地可行性以及服务器地承担力做详细地分析:前台网站设计地可行性:写前台网站代码地主要语言是PHP 语言,这门语言已经进展欢迎下载精品学习资源到了相当成熟地地步,从理论上讲完全可以实现该系统地全部功能,其次,制作本系统所 使用地 PHP 技术也已经是一些特别成熟地技术,并且在相关书籍以及网络论坛上有相关地理论和实例可供参考 .数据库设计地可行性:第一,本系统所采纳MYSQL数据库,这个数
8、据库地治理软件已经经过严格地测试,可供本系统完成相关信息地存取工作.其次是对数据库进行读,写, 更换地 SQL 语言已经进展到特别成熟地地步,此外,PHP 与 MYSQL地连接技术也已经相当成熟,并且在相关书籍以及网络论坛上有相关地理论和实例可供参考.后台调用评判程序正误地结果地可行性:后台程序代码实现地主要语言是C+ ,这门语言本身经过开发人员和用户地反复测试,已经变得相当成熟;另外程序实现者对该语言也特别地熟识,能够运用该语言实现本系统地相关功能模块;此外程序一旦以进程运行起来后,就可以采纳Windows 所供应地 API 来对相关地进程进行掌握和治理,这位本系统地技术实现供应了可能 .并
9、且在相关书籍以及网络论坛上有相关地理论和实例可供参考.服务器地承担力方面地可行性:从拜访规模上讲,由于本系统主要是为校内用户供应程序测评服务,虽然今后也可能为部分互联网用户供应程序测评服务.但是就目前地情形而言,每天地用户地登录总量一般是保持在200 个用户左右 .而且用户提交程序所耗费地运行时间和运行内存都是在规定地时间和规定地内存地严格掌握之下.综上所述,本系统前台网站设计,数据库设计,后台调用评判程序正误地结果这三个大地模块从语言到开发技术上讲,可行性地各个条件已经完全具备,不仅如此,在用户所提交地一些极端程序地条件下,本系统也可以对其进行处理,从而保证了程序地正常运行.因此可以开头对本
10、进行设计开发了.4 系统地设计4.1 系统框架即实现流程依据需求分析, ACM 在线系统主要包括以下几大模块:用户模块,在线评判模块,在线竞赛模块,题库模块,后台治理模块.其中用户模块主要包括由用户自行操作地用户注册和登录、更新用户信息地功能及由治理员对用户进行治理地一些操作主要有添加用户、删除用户、更新用户等.在线评判模块是系统地一个核心,对与应用层地用户来说主要包括查看竞赛题目、提交竞赛代码、查看排名、查看竞赛状态等功能.在线竞赛模块,用户能参与竞赛查看竞赛信息及规章,看看往届竞赛题目等.题库模块是主要是用户能打开相关问题集进行练习,也可以通过站内搜寻功能通过输入问题 ID 直接找到问题
11、.后台治理模块主要负责创建竞赛、修改竞赛、治理竞赛题目、增加问题、修改问题、治理测试数据、修改用户权限、数据库备份等功能.框架流程如图 4-1所示:欢迎下载精品学习资源开 始登 陆注 册用户治理员后台治理浏览题库提交题目提交状态查看排名参加比赛个人信息用户管理题目治理比赛管理数据库备份图4-1框架实现流程4.2 系统地数据库设计该系统数据库采纳MYSQL ,其主要目地是为了与PHP 网站更好地连接,而且PHP 地数据库连接技术也是相当成熟.数据库地名称是OJ,包含 6 张表,这6 张表分别是: userinfo,solution,problem,loginlog,contest,standin
12、g.这 6 张表中 userinfo 表主要是用来储存用户地登录名和密码以及用户地做题地正确个数,提交次数,以及做题地正确率;solution 表主要是在用户每次提交地时候记录下用户地提交信息,这些提交信息包括用户地登录名,题号,程序运行地时间,程序运行地内存,运行地结果,提交地时间,以及提交地语言等;problem 表中主要是储存每个题目地相关信息,包括题目地题号,题目地内容,题目地类别,题目地难度,以及该题目属于第几次模拟测试等; loginlog 表主要是在每一次用户登录地时候,储存用户地登录名,密码,以及用户地登录时间,这样可以知道登录本系统地总人数是多少;contest 表主要是用来
13、记录每一次竞赛地题目、开头时间、终止时间.Standing 表是用来记录每次竞赛参见竞赛用户地信息,比如做题个数,做题用地总时间,以及用户地排名等等.数据库中地各个表地内容分类及大致功能介绍见表4-1:表 4-1 OJ 数据库欢迎下载精品学习资源表名表功能说明userinfo储存登录名和密码信息solution储存用户地提交信息problem储存题目信息loginlog储存用户登录信息contest储存每次竞赛地题目standing储存每次参与竞赛地用户信息4.3 前台网站部分地设计该在线提交系统地前台网站地名称是onlinejudge_1.0 ,该网站包括注册,登录,修改用户信息,浏览问题等
14、等.详细地网页介绍见表4-2:表 4-2 网页功能网页名称Register Login ModifUserInfo ProblemListShowProblem SubmitProblem Status RankList ContestsFAQsAddProblem AddContest ModifyPrivate ModifyProblemModifyContest功能模块用户注册用户登录 修改用户信息题目列表题目内容用户提交提交状态用户排名竞赛常见问题说明添加题目添加竞赛修改用户权限修改题目修改竞赛5 终止语历经了几个月地奋战,紧急而又充实地毕业设计最终落下了帷幕.回想这段日子地经受和感受
15、,我感叹万千,在这次毕业设计地过程中,我拥有了很多难忘地回忆和收成.脚踏实地,仔细严谨,实事求是地学习态度,不怕困难、坚持不懈、吃苦耐劳地精神是我在这次设计中最大地收益 .我想这是一次意志地磨练,是对我实际才能地一次提升,也会对我将来地学习和工作有很大地帮忙.在此更要感谢我地导师和专业老师,是你们地细心指导和关怀,使我能够顺当地完成毕业论文 .在我地学业和论文地讨论工作中无不倾注着老师们辛勤地汗水和心血.在此我要向欢迎下载精品学习资源我地导师致以最诚心地感谢和深深地敬意.【参考文献】1 王珊 ,萨师煊 . 数据库系统概论(其次版)M. 北京: 高等训练出版社 , 2021,17-206.2 阳
16、西述 ,梁小满 ,周端峰 . 网页制作与网站设计 M. 武汉 :武汉高校出版社 , 2021,50-186.3 Roger S.Pressman, 郑人杰 , 马素霞 . 软件工程 实践者地讨论方法(原书第六版)M. 北京 :机械工业出版社 ,2021,58-319.4 曹玉峰 . 国家信息学奥林匹克竞赛在线评测系统D. 吉林 :吉林高校出版社 ,2021,76-122.5 刘楠 ,孙国道 . ACM 在线评判系统设计与实现J. 运算机时代 , 2006,189-242.6 蒋社想 ,戴书文 . 基于 J2EE 地 ACM竞赛在线评判系统地设计J. 安徽理工高校学报,2021, 120-187
17、.7 车明洙 ,纪洪波 . 一种基于 ACM 程序设计竞赛在线评测系统解决方案J. 微型机与应用, 2021,106-185.8 焦燕 . 在线评测系统地设计与实现D. 呼和浩特 :内蒙古高校出版社, 2021, 57-186.9 王成良 . Web 开发技术及其应用M. 北京 :清华高校出版社 ,2021,75-124.10 王晓东 .算法设计与分析 M. 北京 :清华高校出版社 ,2021, 30-149.11 王育坚 . Visual C+ 面对对象编程教程M. 北京 :清华高校出版社 ,2021, 38-150.12 孙钟秀 . 操作系统教程 M. 北京 :清华高校出版社 ,2021,
18、 31-149.Design and Implementation of Online Judge system Based on the ACM Programming ContestComputer Science and Technology Specialty:Wu YuPei Tutor: Zhao LeiAbstract : Withthe wide applicationof Internet and the rapid development of computer technology, computer algorithm plays a very important ro
19、le. In order to adapt to the social demand of selecting talented persons, students have shown more intense desire to improve programming ability.However, artificialjudgement for program has litter efficieney. Therefore ,ACMonline judge system appears. The online evaluation system mainly consists of
20、three big parts, namely, thewebsite part, database part and compiler calls part, three parts closely linked together. When users submit solutions to the server, the source program be produced on the server, compiler part is responsible for calling the source program, then website willshow the result on the web page欢迎下载精品学习资源through the database queries sentences.Key words : online judge ; ACM ; website part欢迎下载