基于ACM程序设计竞赛的在线评测系统设计与实现前台网站部分.docx
- 文档编号:6009667
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:15
- 大小:70.63KB
基于ACM程序设计竞赛的在线评测系统设计与实现前台网站部分.docx
《基于ACM程序设计竞赛的在线评测系统设计与实现前台网站部分.docx》由会员分享,可在线阅读,更多相关《基于ACM程序设计竞赛的在线评测系统设计与实现前台网站部分.docx(15页珍藏版)》请在冰豆网上搜索。
基于ACM程序设计竞赛的在线评测系统设计与实现前台网站部分
基于ACM程序设计竞赛的在线评测
系统设计与实现
——前台网站部分
摘要:
随着Internet的广泛应用和计算机技术的飞速发展,计算机算法在其中发挥着极其重要的作用。
为了更好地适应这个社会选拔人才的要求,同学们提高程序设计能力的愿望越发强烈,然而人工评测程序的效率还是很低的。
因此ACM在线评测系统应运而生了.这个在线评测系统主要由三个大的部分组成,即数据库部分,网站部分,和编译器的调用部分,三个部分紧密地联系在一起。
在用户提交解决方案的同时,在服务器端产生源程序,编译部分负责调用源程序,并把结果写入数据库,然后网站部分再通过数据库查询语句把数据库中的结果显示在网页上。
关键词:
在线评测;ACM;网站部分
1概述
1.1ACM在线评测系统设计背景和研究意义
ACM/ICPC国际大学生程序设计竞赛始于1970年,是全球大学生计算机程序能力竞赛活动中最有影响的一项赛事。
ACM国际大学生程序设计竞赛是参赛选手展示计算机才华的广阔舞台,是著名大学计算机教育成果的直接体现,是信息企业与世界顶尖计算机人才对话的最好机会。
ACM国际大学生程序设计竞赛是旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的竞赛。
经过近30年的发展,ACM国际大学生程序设计竞赛已经发展成为最具影响力的大学生计算机竞赛。
竞赛规模的迅速扩大对阅卷工作的自动化、高效性、合理性和公正性提出了更高的要求,建立一套准确、高效的程序评测系统成为非常迫切的需求。
通过对在线评测系统相关知识的学习,以及对目前已有软件系统的功能分析,本系统总结以往系统开发的设计经验,结合当今系统的发展趋势,确定了该项目的设计方案。
1.2ACM在线评测系统设计的开发工具与运行环境
系统前台开发工具主要用到Dreamweaver8、wamp5。
(1)Dreamweaver8简介
MacromediaDreamweaver8是建立Web站点和应用程序的专业工具。
它将可视布局工具、应用程序开发功能和代码编辑支持组合在一起,使得各个层次的开发人员和设计人员都能够快速做出界面吸引人的基于标准的网站和应用程序。
语言版本:
中文·版本:
8中文版配置Win9x/Me/NT/2000/XP/2003/win7/。
(2)wamp5简介
wamp5是一款优秀的wamp集成软件,可以轻松的一下子同时安装PHP5、MYSQL和Apache环境,对初学PHP的学者来说非常方便。
同时,wamp5内还集成了PhpMyadmin和SQLitemanager管理工具。
语言版本:
英文•版本Win9x/Me/NT/2000/XP/2003/win7/。
系统网站部分是用PHP语言编写,使用的数据库是MYSQL,而服务器则是现今最流行的Apache服务器,在WindowsXP系统上实现。
因此系统的运行环境如下:
(1)数据库:
MYSQL;
(2)服务器:
Apache;
(3)操作系统:
WindowsXP。
2需求分析
该系统设计的主要目的是希望给学计算机的学生提高编程能力和对ACM编程有兴趣的学生提供一个学习和操练的平台,真正实现一个高效管理和稳定的在线评判系统。
结合学习及ACM点,系统具有以下几点功能需求:
(1)用户管理:
认真填写资料就可以注册了,未注册用户只能浏览不能进行提交或者参与比赛。
(2)题目浏览:
用户可以通过页面浏览题目,查询题目,找到自己感兴趣或者比较新的题目,然后进行提交。
(3)提交:
用户做题目时可以选择提交的语言,此系统可以用的语言有C++、C、Pascal、Java等。
(4)查看提交状态:
提交情况,越在前面的页面在时间上越靠近现在,反映用户做题目时的提交状态、做哪个题目、AC或者一些常见的错误,比如结果错误、运行时间和运行空间超过题目要求运行的时间和空间,以及用户提交时用的是什么语言、提交时间、提交的序号等等。
(5)查看排名:
显示用户做题数的一个排名,做的题目越多,排名越在前,若做出同样的题目,则以提交次数少者排名靠前。
(6)比赛练习:
添加比赛用于举行比赛或者考察学生的编程能力。
(7)后台管理:
包括用户信息的管理,题目的添加和修改,比赛的添加和修改以及数据库的备份等等。
3系统可行性分析
此系统从结构的总体上进行划分,可以划分为三个大的模块,即前台网站设计,数据库设计,后台调用评判程序正误的结果。
接下来将对上述三大模块的可行性以及服务器的承受力做具体的分析:
前台网站设计的可行性:
写前台网站代码的主要语言是PHP语言,这门语言已经发展到了相当成熟的地步,从理论上讲完全可以实现该系统的所有功能,其次,制作本系统所使用的PHP技术也已经是一些非常成熟的技术,并且在相关书籍以及网络论坛上有相关的理论和实例可供参考。
数据库设计的可行性:
首先,本系统所采用MYSQL数据库,这个数据库的管理软件已经经过严格的测试,可供本系统完成相关信息的存取工作。
其次是对数据库进行读,写,更改的SQL语言已经发展到非常成熟的地步,此外,PHP与MYSQL的连接技术也已经相当成熟,并且在相关书籍以及网络论坛上有相关的理论和实例可供参考。
后台调用评判程序正误的结果的可行性:
后台程序代码实现的主要语言是C++,这门语言本身经过开发人员和用户的反复测试,已经变得相当成熟;另外程序实现者对该语言也非常的熟悉,能够运用该语言实现本系统的相关功能模块;此外程序一旦以进程运行起来后,则可以采用Windows所提供的API来对相关的进程进行控制和管理,这位本系统的技术实现提供了可能。
并且在相关书籍以及网络论坛上有相关的理论和实例可供参考。
服务器的承受力方面的可行性:
从访问规模上讲,由于本系统主要是为校内用户提供程序测评服务,虽然今后也可能为部分互联网用户提供程序测评服务。
但是就目前的情况而言,每天的用户的登录总量一般是保持在200个用户左右。
而且用户提交程序所耗费的运行时间和运行内存都是在规定的时间和规定的内存的严格控制之下。
综上所述,本系统前台网站设计,数据库设计,后台调用评判程序正误的结果这三个大的模块从语言到开发技术上讲,可行性的各个条件已经完全具备,不仅如此,在用户所提交的一些极端程序的条件下,本系统也可以对其进行处理,从而保证了程序的正常运行。
因此可以开始对本进行设计开发了。
4系统的设计
4.1系统框架即实现流程
根据需求分析,ACM在线系统主要包括以下几大模块:
用户模块,在线评判模块,在线比赛模块,题库模块,后台管理模块。
其中用户模块主要包括由用户自行操作的用户注册和登录、更新用户信息的功能及由管理员对用户进行管理的一些操作主要有添加用户、删除用户、更新用户等。
在线评判模块是系统的一个核心,对与应用层的用户来说主要包括查看竞赛题目、提交竞赛代码、查看排名、查看竞赛状态等功能。
在线比赛模块,用户能参与竞赛查看比赛信息及规则,看看往届比赛题目等。
题库模块是主要是用户能打开相关问题集进行练习,也可以通过站内搜索功能通过输入问题ID直接找到问题。
后台管理模块主要负责创建比赛、修改比赛、管理比赛题目、增加问题、修改问题、管理测试数据、修改用户权限、数据库备份等功能。
框架流程如图4-1所示:
图4-1框架实现流程
4.2系统的数据库设计
该系统数据库采用MYSQL,其主要目的是为了与PHP网站更好的衔接,而且PHP的数据库连接技术也是相当成熟。
数据库的名称是OJ,包含6张表,这6张表分别是:
userinfo,
solution,problem,loginlog,contest,standing。
这6张表中userinfo表主要是用来储存用户的登录名和密码以及用户的做题的正确个数,提交次数,以及做题的正确率;solution表主要是在用户每次提交的时候记录下用户的提交信息,这些提交信息包括用户的登录名,题号,程序运行的时间,程序运行的内存,运行的结果,提交的时间,以及提交的语言等;problem表中主要是储存每个题目的相关信息,包括题目的题号,题目的内容,题目的类别,题目的难度,以及该题目属于第几次模拟测试等;loginlog表主要是在每一次用户登录的时候,储存用户的登录名,密码,以及用户的登录时间,这样可以知道登录本系统的总人数是多少;contest表主要是用来记录每一次比赛的题目、开始时间、结束时间。
Standing表是用来记录每次比赛参见比赛用户的信息,比如做题个数,做题用的总时间,以及用户的排名等等。
数据库中的各个表的内容分类及大致功能介绍见表4-1:
表4-1OJ数据库
表名
表功能说明
userinfo
储存登录名和密码信息
solution
储存用户的提交信息
problem
储存题目信息
loginlog
储存用户登录信息
contest
储存每次比赛的题目
standing
储存每次参加比赛的用户信息
4.3前台网站部分的设计
该在线提交系统的前台网站的名称是onlinejudge_1.0,该网站包括注册,登录,修改用户信息,浏览问题等等。
具体的网页介绍见表4-2:
表4-2网页功能
网页名称
功能模块
Register
用户注册
Login
用户登录
ModifUserInfo
修改用户信息
ProblemList
题目列表
ShowProblem
题目内容
SubmitProblem
用户提交
Status
提交状态
RankList
用户排名
Contests
比赛
FAQs
常见问题说明
AddProblem
添加题目
AddContest
添加比赛
ModifyPrivate
修改用户权限
ModifyProblem
修改题目
ModifyContest
修改比赛
5结束语
历经了几个月的奋战,紧张而又充实的毕业设计终于落下了帷幕。
回想这段日子的经历和感受,我感慨万千,在这次毕业设计的过程中,我拥有了无数难忘的回忆和收获。
脚踏实地,认真严谨,实事求是的学习态度,不怕困难、坚持不懈、吃苦耐劳的精神是我在这次设计中最大的收益。
我想这是一次意志的磨练,是对我实际能力的一次提升,也会对我未来的学习和工作有很大的帮助。
在此更要感谢我的导师和专业老师,是你们的细心指导和关怀,使我能够顺利的完成毕业论文。
在我的学业和论文的研究工作中无不倾注着老师们辛勤的汗水和心血。
在此我要向我的导师致以最衷心的感谢和深深的敬意。
【参考文献】
[1]王珊,萨师煊.数据库系统概论(第二版)[M].北京:
高等教育出版社,2011,17-206.
[2]阳西述,梁小满,周端峰.网页制作与网站设计[M].武汉:
武汉大学出版社,2010,50-186.
[3]RogerS.Pressman,郑人杰,马素霞.软件工程—实践者的研究方法(原书第六版)[M].北京:
机械工业出版社,2009,58-319.
[4]曹玉峰.国家信息学奥林匹克竞赛在线评测系统[D].吉林:
吉林大学出版社,2008,76-122.
[5]刘楠,孙国道.ACM在线评判系统设计与实现[J].计算机时代,2006,189-242.
[6]蒋社想,戴书文.基于J2EE的ACM竞赛在线评判系统的设计[J].安徽理工大学学报,2009,120-187.
[7]车明洙,纪洪波.一种基于ACM程序设计竞赛在线评测系统解决方案[J].微型机与应用,2011,106-185.
[8]焦燕.在线评测系统的设计与实现[D].呼和浩特:
内蒙古大学出版社,2010,57-186.
[9]王成良.Web开发技术及其应用[M].北京:
清华大学出版社,2008,75-124.
[10]王晓东.算法设计与分析[M].北京:
清华大学出版社,2010,30-149.
[11]王育坚.VisualC++面向对象编程教程[M].北京:
清华大学出版社,2009,38-150.
[12]孙钟秀.操作系统教程[M].北京:
清华大学出版社,2011,31-149.
DesignandImplementationofOnlineJudgesystem
BasedontheACMProgrammingContest
ComputerScienceandTechnologySpecialty:
WuYuPeiTutor:
ZhaoLei
Abstract:
WiththewideapplicationofInternetandtherapiddevelopmentofcomputertechnology,computeralgorithmplaysaveryimportantrole.Inordertoadapttothesocialdemandofselectingtalentedperson's,studentshaveshownmoreintensedesiretoimproveprogrammingability.However,artificialjudgementforprogramhaslitterefficieney.Therefore,ACMonlinejudgesystemappears.Theonlineevaluationsystemmainlyconsistsofthreebigparts,namely,thewebsitepart,databasepartandcompilercallspart,threepartscloselylinkedtogether.Whenuserssubmitsolutionstotheserver,,thesourceprogrambeproducedontheserver,compilerpartisresponsibleforcallingthesourceprogram,thenwebsitewillshowtheresultonthewebpagethroughthedatabasequeriessentences.
Keywords:
onlinejudge;ACM;websitepart
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:
所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:
日 期:
指导教师签名:
日 期:
使用授权说明
本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:
按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:
日 期:
学位论文原创性声明
本人郑重声明:
所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:
日期:
年月日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:
日期:
年月日
导师签名:
日期:
年月日
指导教师评阅书
指导教师评价:
一、撰写(设计)过程
1、学生在论文(设计)过程中的治学态度、工作精神
□优□良□中□及格□不及格
2、学生掌握专业知识、技能的扎实程度
□优□良□中□及格□不及格
3、学生综合运用所学知识和专业技能分析和解决问题的能力
□优□良□中□及格□不及格
4、研究方法的科学性;技术线路的可行性;设计方案的合理性
□优□良□中□及格□不及格
5、完成毕业论文(设计)期间的出勤情况
□优□良□中□及格□不及格
二、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
□优□良□中□及格□不及格
2、是否完成指定的论文(设计)任务(包括装订及附件)?
□优□良□中□及格□不及格
三、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
□优□良□中□及格□不及格
2、论文的观念是否有新意?
设计是否有创意?
□优□良□中□及格□不及格
3、论文(设计说明书)所体现的整体水平
□优□良□中□及格□不及格
建议成绩:
□优□良□中□及格□不及格
(在所选等级前的□内画“√”)
指导教师:
(签名)单位:
(盖章)
年月日
评阅教师评阅书
评阅教师评价:
一、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
□优□良□中□及格□不及格
2、是否完成指定的论文(设计)任务(包括装订及附件)?
□优□良□中□及格□不及格
二、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
□优□良□中□及格□不及格
2、论文的观念是否有新意?
设计是否有创意?
□优□良□中□及格□不及格
3、论文(设计说明书)所体现的整体水平
□优□良□中□及格□不及格
建议成绩:
□优□良□中□及格□不及格
(在所选等级前的□内画“√”)
评阅教师:
(签名)单位:
(盖章)
年月日
教研室(或答辩小组)及教学系意见
教研室(或答辩小组)评价:
一、答辩过程
1、毕业论文(设计)的基本要点和见解的叙述情况
□优□良□中□及格□不及格
2、对答辩问题的反应、理解、表达情况
□优□良□中□及格□不及格
3、学生答辩过程中的精神状态
□优□良□中□及格□不及格
二、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
□优□良□中□及格□不及格
2、是否完成指定的论文(设计)任务(包括装订及附件)?
□优□良□中□及格□不及格
三、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
□优□良□中□及格□不及格
2、论文的观念是否有新意?
设计是否有创意?
□优□良□中□及格□不及格
3、论文(设计说明书)所体现的整体水平
□优□良□中□及格□不及格
评定成绩:
□优□良□中□及格□不及格
(在所选等级前的□内画“√”)
教研室主任(或答辩小组组长):
(签名)
年月日
教学系意见:
系主任:
(签名)
年月日
学位论文原创性声明
本人郑重声明:
所呈交的学位论文,是本人在导师的指导下进行的研究工作所取得的成果。
尽我所知,除文中已经特别注明引用的内容和致谢的地方外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式注明并表示感谢。
本人完全意识到本声明的法律结果由本人承担。
学位论文作者(本人签名):
年月日
学位论文出版授权书
本人及导师完全同意《中国博士学位论文全文数据库出版章程》、《中国优秀硕士学位论文全文数据库出版章程》(以下简称“章程”),愿意将本人的学位论文提交“中国学术期刊(光盘版)电子杂志社”在《中国博士学位论文全文数据库》、《中国优秀硕士学位论文全文数据库》中全文发表和以电子、网络形式公开出版,并同意编入****《中国知识资源总库》,在《中国博硕士学位论文评价数据库》中使用和在互联网上传播,同意按“章程”规定享受相关权益。
论文密级:
□公开□保密(___年__月至__年__月)(保密的学位论文在解密后应遵守此协议)
作者签名:
_______导师签名:
_______
_______年_____月_____日_______年_____月_____日
独创声明
本人郑重声明:
所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。
尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。
对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。
本声明的法律后果由本人承担。
作者签名:
二〇一〇年九月二十日
毕业设计(论文)使用授权声明
本人完全了解**学院关于收集、保存、使用毕业设计(论文)的规定。
本人愿意按照学校要求提交学位论文的印刷本和电子版,同意学校保存学位论文的印刷本和电子版,或采用影印、数字化或其它复制手段保存设计(论文);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布设计(论文)的部分或全部内容,允许他人依法合理使用。
(保密论文在解密后遵守此规定)
作者签名:
二〇一〇年九月二十日
致谢
时间飞逝,大学的学习生活很快就要过去,在这四年的学习生活中,收获了很多,而这些成绩的取得是和一直关心帮助我的人分不开的。
首先非常感谢学校开设这个课题,为本人日后从事计算机方面的工作提供了经验,奠定了基础。
本次毕业设计大概持续了半年,现在终于到结尾了。
本次毕业设计是对我大学四年学习下来最好的检验。
经过这次毕业设计,我的能力有了很大的提高,比如操作能力、分析问题的能力、合作精神、严谨的工作作风等方方面面都有很大的进步。
这期间凝聚了很多人的心血,在此我表示由衷的感谢。
没有他们的帮助,我将无法顺利完成这次设计。
首先,我要特别感谢我的知道***老师对我的悉心指导,在我的论文书写及设计过程中给了我大量的帮助和指导,为我理清了设计思路和操作方法,并对我所做的课题提出了有效的改进方案。
***老师渊博的知识、严谨的作风和诲人不倦的态度给我留下了深刻的印象。
从他身上,我学到了许多能受益终生的东西。
再次对周巍老师表示衷心的感谢。
其次,我要感谢大学四年中所有的任课老师和辅导员在学习期间对我的严格要求,感谢他们对我学习上和生活上的帮助,使我了解了许
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 ACM 程序设计 竞赛 在线 评测 系统 设计 实现 前台 网站 部分