您好,欢迎来到要发发知识网。
搜索
您的当前位置:首页ACM在线评测系统

ACM在线评测系统

来源:要发发知识网
ACM在线评测系统

ACMOnlineJudgeSystem

专班学

业:计算机科学与技术级:软件071号:200780114101

学生姓名:耿迎迎指导教师:郭永锋

2011年6月1日

摘要ACM竞赛是目前计算机水平最高的国际大学生程序设计竞赛,同学们程序设计能力的愿望越发强烈,然而人工评测程序必将大大的降低效率。而ACM在线评测系统则是根据竞赛需求而提供的一个培训平台。借助网络这一方便而又有效的平台,可以快速方便地返回评测结果给用户,并且提供了交流的场所,从而起到带动同学们提高计算机编程能力的作用。

而该研究课题——ACM在线测评系统是集程序设计竞赛、竞赛训练、课程实验、平时练习于一身的网上实时提交系统。该系统具有实用性强、安全性好等优点。本文给出了一种网络自动化的程序性能分析评价系统——ACM在线评测系统的实现方案。在线评测系统,用户可以在服务器上选择题目,找到相应的算法,并编码提交,服务器给以评测,用户在此过程中可以训练编程能力,算法等。

关键词:大学生程序设计;ACM竞赛;在线评测;系统

IAbstract

Abstract---Budgetmanagementisthemodernstatesystemofpublicfinancetheconstructionofthebasiccontent,butalsotomeasureacountry'slevelofmodernizationoffinancialmanagement,animportantlandmark.Comprehensivebudgetmanagementisanenterpriseestablishedinaccordancewiththedevelopmentofstrategicgoals,determinetheannualoperatinggoals,layerbylayerdecomposition,issuedinthevariousbranchesordepartmentswithintheenterprise,anditsdivisioninchargeofthebusinessactivitiesofthewholeprocessofcontrolandmanagement.Comprehensivebudgetmanagementisalsoakindofinternalmanagementandcontroleffectiveway,throughtheimplementationofacomprehensivebudgetmanagementtoachieveoptimalallocationofcorporateresourcesandimproveeconomicefficiencyofenterprises.

Comprehensivebudgetmanagementfordomesticandforeignenterpriseshasbeenwidelyacceptedbythemasanimportantmanagementtool.Budgetpreparation,adjustment,implementationandanalysisofassessmentarehighlytechnicalandcomplex,thereforetheestablishmentofcorporatebudgetsystem,budgetandbudgettodeterminethecontentofoperationisacomplicatedsystematicproject,onlytheuseofmoderncomputertechnology,toimplementthebudgetinformationmanagementinordertoefficientlyimplementcomprehensivebudget.

Keywords:budgetmanagement;system;information;strategicgoals;

II目录

摘要......................................................................................................................................................IAbstract...............................................................................................................................................II第一章引言.......................................................................................................................................11.1研究目的..............................................................................................................................11.2背景与意义...........................................................................................................................21.3国内外发展状况...................................................................................................................21.4存在问题..............................................................................................................................41.4.1系统重复开发造成资源浪费...................................................................................41.4.2查询结构单一...........................................................................................................41.4.3界面不够友好,功能不广泛...................................................................................51.5解决主要问题.......................................................................................................................5第2章系统需求分析.......................................................................................................................62.1功能需求..............................................................................................................................72.1.1基本功能需求...........................................................................................................72.1.2界面的需求...............................................................................................................82.1.3系统维护需求...........................................................................................................82.2性能的需求..........................................................................................................................82.2.1系统的灵活性...........................................................................................................82.2.2系统的可扩展性.......................................................................................................82.3开发工具及相关技术..........................................................................................................92.3.1前端软件开发工具的选择......................................................................................92.3.2后台数据库的选择................................................................................................102.3.3软件开发平台的选择............................................................................................12第三章系统设计与实现.................................................................................................................133.1数据库的设计....................................................................................................................133.2系统功能设计简介............................................................................................................163.2.1登陆模块.................................................................................................................173.2.2竞赛模块.................................................................................................................173.2.3练习模块.................................................................................................................183.2.4教师后台管理模块................................................................错误!未定义书签。3.2.5在线交流模块.........................................................................................................19第4章系统运行与测试.................................................................................................................204.1系统调试............................................................................................................................204.2系统测试............................................................................................................................21第5章结论...................................................................................................................................265.1对上文的总结..................................................................................................................265.2进一步设想.........................................................................................................................26致谢...................................................................................................................................................29参考文献...........................................................................................................................................30附录A:软件使用说明书......................................................................................................31附录B:附加图、表..............................................................................................................33III附录C:主要源程序.............................................................................................................38IV中原工学院信息商务学院毕业设计(论文)第一章引言1.1研究目的

该课题为中原工学院信息商务学院的科研项目。其研究目的是:为广大爱好编程的大学生提供一个集程序设计竞赛、竞赛训练、课程实验、平时练习于一身的网上实时提交系统。

ACM/ICPC国际大学生程序设计竞赛始于1970年,是全球大学生计算机程序能力竞赛活动中最有影响的一项赛事。ACM国际大学生程序设计竞赛是参赛选手展示计算机才华的广阔舞台,是著名大学计算机教育成果的直接体现,是信息企业与世界顶尖计算机人才对话的最好机会。

ACM国际大学生程序设计竞赛是旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的竞赛。经过近30年的发展,ACM国际大学生程序设计竞赛已经发展成为最具影响力的大学生计算机竞赛。竞赛规模的迅速扩大对阅卷工作的自动化、高效性、合理性和公正性提出了更高的要求,建立一套准确、高效的程序评测系统成为非常迫切的需求。通过对在线评测系统相关知识的学习,以及对目前已有软件系统的功能分析,本系统总结以往系统开发的设计经验,结合当今系统的发展趋势,确定了该项目的设计方案。

由于当前的系统开发设计已经相当成熟,各项功能基本上也都得以实现,因此,本系统的模块划分与传统的软件版本基本上没有区别,只是在现有系统功能的基础上增加一些如权限管理、多条件查询、师生互动、新闻等新的功能项。通过对系统的完善与更新,使系统更加符合用户需求。

本系统提供了对C、C++、Java三种语言所编写的程序进行处理的功能。用户按照竞赛题目的要求,通过对问题的分析并给出解决方案后,就可以向系统提交解决问题的源代码程序。系统可以根据用户提供的源代码,采取相应的程序语言环境编译、运行。在编译与运行正常以后,系统按照题目要求来判断该程序结果是否正确,同时给出程序的运行时间、内存的开销等情况,根据程序性能信息来判断各个用户的得分情况。

1耿迎迎:ACM在线评测系统1.2背景与意义

ACM/ICPC(国际大学生程序设计竞赛)是由ACM(AssociationforComputingMachinery,美国计算机协会)组织的年度性竞赛,始于1970年,是全球大学生计算机程序能力竞赛活动中最有影响的一项赛事。ACM国际大学生程序设计竞赛是旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的竞赛。是参赛选手展示计算机才华的广阔舞台,是著名大学计算机教育成果的直接体现,是信息企业与世界顶尖计算机人才对话的最好机会。

中国地区1997年开始举办区域赛和参加世界总决赛。十几年来,全国近百所知名高校积极响应,热心参与,已成为我国高校科技活动的一个热点和展示计算机教育成果及优秀人才综合素质的一项重要活动,目前更是出现迅速普及的趋势。鉴于ACM在线评测提供了完整的计算机实践教学模式,在培养学生创新能力、综合能力、锻炼学生心理素质和团队合作精神方面起到了积极的促进作用,目前我国的许多高校,如北京大学、清华大学、浙江大学和中山大学等均开发了自己的ACM在线评测系统,并将其引入到了计算机算法设计类课程的实践教学和学生能力评测中。

但是,竞赛规模的迅速扩大对阅卷工作产生很大的难度,阅卷效率低下,准确度不高,浪费极大的人力以及物力成为一个日益紧迫的问题。竞赛规模的迅速扩大对阅卷工作的自动化、高效性、合理性和公正性提出了更高的要求,基于以上原因,建立一套准确、高效的程序评测系统成为非常迫切的需求。本课题研究给出了一种网络自动化的程序性能分析评价系统——ACM在线评测系统的实现方案。旨在提供一个ACM/ICPC训练的平台,也为希望提高计算机程序设计能力的同学提供一个练习的场所。

本系统设计完成后,将对ACM大赛提供一个基于计算机的自动处理平台,对提高ACM大赛的管理水平以及方便性起到了很大的作用。能够极大地提高ACM管理的效率,也是教育机构的科学化、正规化管理与世界接轨的重要条件。系统适用于学校、ACM大赛组织、培训机构的应用。

1.3国内外发展状况

目前,ACM大赛信息化管理基本取代了手工操作,确保了测评结果无误,提高了工作效率,同时也减轻了测评人员的劳动强度。具有强大的管理、查询、统计功能,为测评提供了极大的便利。

2中原工学院信息商务学院毕业设计(论文)ACM在线评测系统是一个基于B/S结构的在线程序与算法设计练习、竞赛平台,主要功能可分为用户管理、题库管理、在线提交、在线比赛及在线排名、在线讨论等。该系统提供了大量供学生练习和竞赛的竞赛题目,学生在线提交解决相关练习和竞赛题的程序代码,系统可以自动编译程序代码,生成可执行文件,并根据已存储的测试用例,从程序的正确性、程序运行总时间、耗费内存、单用例执行时间、程序返回结果等各方面评测程序代码,并精确返回各方面的评测结果。这不仅要求学生能够分析问题,综合利用知识点,而且还要在算法上进行合理的优化,并在更短的时间内给出准确解答,大大提高了教学质量和教学效率。

1、题库,含有不断扩充的题目,每100道为一个页面。目前尚还没有分类,读者可以根据题目名字右边AC与提交的数量来判定该题目的难易。

2、提交情况,越在前面的页面在时间上越是靠近现在,反映用户做大库题目时的提交状态,做哪个题、AC抑或什么错、运行时间、占用空间、用什么编译器以及提交时间,籍此可以断定自己提交的大致问题所在。提交时请选择G++或者Java编译器。

3、竞赛,训练以及课程实验。它们按时间序从最近到过去,反映了将要举行的,正在举行的,以及曾经举行的编程活动。点击其中的内容,可以看到其中的题目、参加编程的人数、以及成绩排名,对将要举行的编程活动,则题目暂时保密。这些编程活动可以公开举行,也可以内部举行。若内部举行,则屏蔽非相关用户提交,因此可以作为竞赛、选拔或考试。公开举行时,则接受任何用户提交,因此,可以作为课外练习,实验以及强化训练。

4、排名,显示用户做大库题数的一个排名,若做出题数一样多,则以提交次数少者排名靠前。

5、论坛,方便用户之间交流以提高算法设计以及编程方面的技能,让用户更好的互相学习共同进步。

以上即是目前已有ACM在线测评系统的各个模块功能。可见,ACM在线测评系统给ACM国际大学生程序设计竞赛带来了极大的帮助,大大减少了人力劳动,而且提高了效率。但是,虽然该系统在各高校及教育机构已经得到了广泛应用,但是由于各个机构的工作模式、流程及管理需求各不相同,网站训练的题目也不尽相同,因此目前仍没有一个统一的系统版本和样式。而且,由于各个教育机构都需要针对自己的情况开发适合自己专用的软件,并要求系统具有一定的保密性和

3耿迎迎:ACM在线评测系统安全性,防止黑客入侵,所以就造成了系统重复开发的浪费。再者,现今的教育机构虽然采用了ACM在线测评系统,大大改进了原来的方式,但是人工键盘输入方式存在不少问题。一般的ACM在线评测系统只能评测输出结果唯一的程序,对不唯一的情况要使用额外手段进行正确性评价,如编写一段辅助测试程序进行评测,这样就影响测评效率。

1.4存在问题

ACM大学生程序竞赛是世界各国大学生最具影响力的国际级计算机类的赛事,是著名大学计算机教育成果的直接体现,是信息企业与世界顶尖计算机人才对话的最好机会。目前,ACM在线测评研究如雨后春笋,用户可以在服务器上选择题目,找到相应的算法,并编码提交,服务器给以评测,用户在此过程中可以训练编程能力,算法等。本研究旨在提供一个ACM/ICPC训练的平台,也为希望提高计算机程序设计能力的同学提供一个练习的场所。

但是,又正是科技的高速发展不断进步,对评测的准确性、高效性等现实要求又向ACM在线测评提出了新的问题,迫使ACM在线测评系统在不断的更新与完善:

1.4.1系统重复开发造成浪费

目前没有一个统一的版本,因为每所高校管理模式不尽相同,管理需求又各有侧重,因此至今没有一个好的系统模式来满足所有高校的需求,各高校自行组织研究开发,造成系统重复开发的浪费。

为了避免这样的损失,今后的软件开发应该尽可能的实现系统的所有功能,然后根据每所高校的不同需求,在配置文件中进行相关配置操作,实现用户要求。之所以这样设计,是因为ACM在线测评系统在启动时首先要读取的就是配置文件里的参数,配置文件里的内容配置得越丰富,各个高校的个性化选择的余地就越大,所以,若要满足各个高校的不同教育模式,只需简单地改动个别参数即可完成,不需要再重复开发新的系统项目。1.4.2查询单一

已有的ACM在线测评系统虽然实现了查询功能,但是查询方式比较单一,有的系统只能对用户自己的某个题目排名进行查询,很不方便,且无法满足用户

4中原工学院信息商务学院毕业设计(论文)求知的要求。在今后的系统设计中,开发过程要注意多条件查询功能的实现,更加体现软件的人性化服务。如在排名查询窗口里,不仅能够题目名称查询,而且能够检索别人的情况,方便用户了解更多。1.4.3界面不够友好,功能覆盖面窄

由于ACM程序竞赛是一项国际大学生程序竞赛,所以大多已存在在线评测系统采用全英设计,而且界面大多不够有好,太单一,大学生在竞赛的同时不能获得更多的进步。一个友好的界面会提高人的思维能力,而大多数已存在在线评测系统往往忽略了这一点。功能覆盖不全面,大多数在线评测系统仅仅只能练习或者竞赛,造成系统结构单一,吸引力比较低。

1.5解决主要问题

目前,ACM大赛自动化管理基本取代了手工操作,这样不但确保了测评结果公正,并且大大提高了工作效率,同时也减轻了测评人员的劳动强度。具有强大的管理,查询,统计功能,为ACM大赛测评提供了极大的方便。

为了弥补现有软件系统的开发缺陷,迎合系统未来的发展趋势,本系统在以下做出了巨大改进:为了使系统软件更加实用化和人性化,赢得广大大学生欢迎,本设计在查询方面更加注重多条件的查询选择,实现了利用多种查询条件完成数据查询的功能。并且增加了页面友好性,使页面看上去更舒适,让用户保持心情舒畅。更重要的是还有新闻以及竞赛信息传送,最新的ACM竞赛信息滚动显示,使大学生在获得编程技能的同时获得更大的信息量。

5耿迎迎:ACM在线评测系统第2章系统需求分析本系统由四个大模块组成:竞赛模式学生端、练习模式学生端、教师后台管理在线交流模块。它们各自的功能如下所述:(一)竞赛模式学生端

主要是学生使用。一般说来,在线测评可以在任何时候、任何地方进行。如登陆信息正确,则可以开始在线测评。当考试时间到或考生点击“提交”按钮时,则系统把考生答案传送至服务器的数据库中保存起来,系统分析考生提交的代码后给出结果。查询子系统也采用Web方式实现,考生在页面输入自己的信息后,服务器就能把成绩信息传送到页面上。为了能让考生及时、方便地了解自己的考试成绩,此外,系统还可以对成绩进行排序等管理功能。此模块为竞赛模式,故时间确定,参赛学生按照比赛时间及比赛规则答题,规定时间内上交题目,系统评测选出胜出队伍或个人参加下次比赛。(二)练习模式学生端

它们按时间排序从最近到过去,反映了将要举行的,正在举行的,以及曾经举行的编程活动。点击其中的内容,可以看到其中的题目,参加编程的人数,以及成绩排名,对将要举行的编程活动,则题目暂时保密。这些编程活动可以公开举行,也可以内部举行。若内部举行,则屏蔽非相关用户提交,因此可以作为竞赛,选拔或考试。公开举行时,则接受任何用户提交,因此,可以作为课外练习,实验以及强化训练。(三)教师后台管理

本模块是老师专用的(通过教师登陆才可以进入),对考生来说是不可见的。主要功能有:

1、评分(根据参给出相应的成绩)

2、成绩统计、排序(有助于老师了解学生考试情况)3、信息输出(最终结果的输出)

4、题库管理(对题库进行增加、删除以及改正的管理)

5、权限管理(设立用户名和密码验证方式,防止非法用户登录和越权操作)(四)在线交流模块

方便用户之间进行交流,提高算法设计以及编程方面的技能,程序设计方法

6中原工学院信息商务学院毕业设计(论文)的提高需要大家探讨,这就是这个论坛建设的必要性。学生与学生之间进行交流互相进步,较之别的系统更人性化的是本系统具有师生互动子模块,学生可以和老师进行交流,向老师请教,以便取得更大进步。另外还有新闻以及竞赛信息传送,最新的ACM竞赛信息显示,使学生获得最大信息量。

2.1功能需求

2.1.1基本功能需求

实现的具体的展开为以下几个方面:

(1)用户管理:认真填写资料就可以注册了,未注册用户只能浏览不能进行测评。

(2)后台管理:包括用户信息的管理、题目的管理等,题库的收集力求全面,主要是收集以前赛区的真题。

(3)题目浏览:用户可以通过页面浏览题目,查询分类题目,找到自己感兴趣或者比较新的题目

(4)提交:用户完成题目提交时请选择C++或者Java编译器提交用户的答案。

(5)查看提交状态:提交情况,越在前面的页面在时间上越是靠近现在,反映用户做大库题目时的提交状态、做哪个题、AC抑或什么错、运行时间、占用空间、用什么编译器以及提交时间,籍此可以断定自己提交的大致问题所在。

(6)查看排名:显示用户做大库题数的一个排名,若做出题数一样多,则以提交次数少者排名靠前,并显示总排名靠前的团队或个人。

(7)论坛:方便用户之间进行交流,提高算法设计以及编程方面的技能,程序设计方法的提高需要大家探讨,这就是这个论坛建设的必要性。

(8)权限设置管理:为了防止一个用户连续不间断提交程序,导致其他用户的不到足够的资源运行程序,本设计采用数据库,记录每个用户上次提交的时间,然后每次提交是检查是否在允许时间间隔之内,否则中止提交。并且设置了教师端的后台管理。

特别需要指出的是,为了使系统软件更加实用化和人性化,本系统界面风格更加友好化,清新悦目,使用户心情舒畅,缓解用户做题压力,帮助用户超长发挥。

7耿迎迎:ACM在线评测系统2.1.2界面的需求

在这套系统中,Windows程序要求界面简洁、明了和易操作。让用户能够快速方便的进入系统,方便用户的操作,简易的页面,功能的使用相当明了。本系统有两方的使用者,管理员和用户,对于ACM在线评测系统,要求网站界面简洁大方,界面友好,使用户能够快速找到所需要的信息,实现快速浏览和查询。也考虑到安全的一面,必须经过注册,才才能进入练习和竞赛系统,游客只能浏览网站信息而不能进行具体操作。2.1.3系统维护需求

为了保证系统的可维护性,系统要对用户界定访问权限,系统最高权限者可以实时维护和更新系统,而权限较低的用户只能进入允许访问的特定模块。

存放在数据库上的数据是整个系统的基础,本设计采用MySQL数据库,MySQL由于性能高、成本低、可靠性好,已经成为最流行的开源数据库,被广泛地应用在Internet上的中小型网站中。但是即使是最可靠的硬件和软件,也会出现系统故障和产品故障。所以,应该在单个发生之前做好充分的准备工作,以便在意外发生之后有相应的措施能快速的恢复数据库的运行,并使丢失的数据尽量减少到最小。由于本系统的数据涉及到ACM国际大学生程序竞赛的公正性以及公平性,故对安全的要求较高。

2.2性能的需求

2.2.1系统的灵活性

系统灵活性是评价一套软件较重要的指标,系统的灵活性包括系统的易扩展和可移植性,灵活性较高的系统可以大大减少系统的开发周期,使软件的功能扩展和升级变得容易。方便以后系统的改进。这样可为以后升级和维护减少人力和物力。故系统灵活性对一个软件来说是重中之重。2.2.2系统的可扩展性

可扩展性反映了软件适应“变化”的能力,在软件开发过程中,“变化”是司空见惯的事情,如需求、设计的变化,算法的变化,程序的变化等。由于软件需要不断适应外部环境的变化。如果软件规模较大,问题比较复杂,倘若软件的

8中原工学院信息商务学院毕业设计(论文)可扩展性不好,那么该软件就像用卡片造成的房子,抽出去或者塞进去一张卡片都有可能使房子倒塌。可扩展性是系统设计阶段重点考虑的质量属性。

由于系统在使用过程中用户对系统的要求会越来越多,因此新的功能不断的被加进来,使该系统日益完善。

2.3开发工具及相关技术

2.3.1前端软件开发工具的选择

本系统项目开发的主要目的是利用计算机软件操作实现ACM在线评测系统。随着科技的不断的进步,电子产品的升级及普及,市场的产品都可以满足本次设计的硬件需求。

软件方面:

MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购。对于MySQL的前途,没有任何人抱乐观的态度。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。MySQL是一个开放源代码的关系数据库管理系统。MySQL由于性能高、成本低、可靠性好,已经成为最流行的开源数据库,被广泛地应用在Internet上的中小型网站中。

MYSQL是一个杰出的数据库平台,特点:使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性,为多种编程语言提供了API,支持多线程,充分利用CPU资源,优化的SQL查询算法,有效地提高查询速度,真正的客户机/服务器体系结构,图形化用户界面,丰富的编程接口工具,具有很好的伸缩性。

Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。

PHP是一种HTML内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛的运用。PHP独特的语法混合了C、Java、Perl以及PHP自创新的语法。它可以比CGI或者Perl更快速的执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是

9耿迎迎:ACM在线评测系统将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。PHP具有非常强大的功能,所有的CGI的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。PHP站点保存的数据一般都存在MYSQL数据库里。和MYSQL“关系”非常的好。故采用PHP+MYSQL的配合使用完成此次项目设计。

PHP语言的特点:1、开放的源代码:

所有的PHP源代码事实上都可以得到。2、PHP是免费的。

和其它技术相比,PHP本身免费。3、PHP的快捷性

程序开发快,运行快,技术本身学习快。嵌入HTML:因为PHP可以嵌入HTML语言,它相对于其他语言,编辑简单,实用性强,更适合初学者。4、跨平台性强:

由于PHP是运行在服务器端的脚本,可以运行在UNIX、LINUX、WINDOWS下。5、效率高:

PHP消耗相当少的系统资源。6、图像处理:

用PHP动态创建图像7、面向对象:

在php4,php5中,面向对象方面都有了很大的改进,现在php完全可以用来开发大型商业程序。8、专业专注:

PHP支持脚本语言为主,同为类C语言。2.3.2后台数据库的选择

MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购.对于Mysql的前途,没有任何人抱乐观的态度.目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

10中原工学院信息商务学院毕业设计(论文)MYSQL自身特性:

1.使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性

2.支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统

3.为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。

4.支持多线程,充分利用CPU资源

5.优化的SQL查询算法,有效地提高查询速度

6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名

7.提供TCP/IP、ODBC和JDBC等多种数据库连接途径8.提供用于管理、检查、优化数据库操作的管理工具9.可以处理拥有上千万条记录的大型数据库

与其他的大型数据库例如Oracle、DB2、SQLServer等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQLCluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。目前Internet上流行的网站构架方式是LAMP(Linux+Apache+MySQL+PHP),即使用Linux作为操作系统,Apache作为Web服务器,MySQL作为数据库,PHP作为服务器端脚本解释器。由于这四个软件都是免费或开放源码软件(FLOSS),因此使用这种方式不用花一分(除开人工成本)就可以建立起一个稳定、免费的网站系统。

1.MYSQL管理软件。

可以使用命令行工具管理MySQL数据库(命令mysql和mysqladmin),也可以从MySQL的网站下载图形管理工具MySQLAdministrator和MySQLQueryBrowser。phpMyAdmin是由php写成的MySQL资料库系统管理程式,让管理者可用Web界面管理MySQL资料库。phpMyBackupPro也是由PHP写成的,可以透过Web界面创建和管理数据库。它可以创建伪cronjobs,可以用来自动在某个时间或周期备份MySQL数据库。另外,还有其他的GUI管理工具,例如早先的mysql-front以及emsmysqlmanager,navicat等等。

2.MYSQL应用架构。

11耿迎迎:ACM在线评测系统MySQL4.1版本中增加了不少新的性能,包括对主键的更高速度的缓存,对子查询的更好的支持,以及应网络约会网站所要求的,基于地理信息的查询。其同步开发的5.0版本则把目标对准了企业用户,对于4.1版本中的所有新特性,5.0版本悉数收入囊中,并且独具以下特点:对外键的良好支持;系统自动报错机制以及对存储过程的充分支持。

3.费用。

在硬件、软件、客户许可证、管理费用、开发所需费用方面,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。2.3.3软件开发平台的选择

基于PHP和MYSQL对运行环境的要求,并根据目前大多数用户计算机硬件设备的实际情况,我选择了现在非常流行的MicrosoftWindowsXP作为系统开发、测试和运行的平台。

12中原工学院信息商务学院毕业设计(论文)第三章系统设计与实现3.1数据库的设计

根据系统的要求,数据库的设计应该符合功能的需求,并且要符合数据库间的连接,设计表。管理员表admin

说明:把id设置为主键用户人员表

user

13耿迎迎:ACM在线评测系统说明:把id设置为主键比赛表exam

说明:设置id为主键问题表question

14中原工学院信息商务学院毕业设计(论文)说明:设置id为主键内容表content

说明:设置id为主键并设置为标志列添加表

ad

15耿迎迎:ACM在线评测系统说明:设置id为主键

3.2系统功能设计简介

本设计提出一个基于windows的ACM在线评测系统,该系统具有实用性强、安全性好等优点。竞赛过程中参赛选手只需以网页形式提交源代码。这一特性对于程序设计类课程的教学来说也有很大的好处,一方面减轻了老师的工作量,另一方面也可以吸引学生的编程兴趣。通过对基于ACM国际大学生程序设计竞赛在线评测系统的分析研究,设计了相应的ACM测试系统,习题的测试难度可由指导老师自己设计。本课题以ACM在线代码测评系统为蓝本,设计基于OnlineJudge系统。针对现有ACM程序设计竞赛评判系统存在的缺陷,采用了新的架构模式,设计了用于大学生程序设计训练和竞赛的自动评测系统,实现了对用户提交的程序源代码进行自动编译、连接、运行、测试、评审等过程并返回测试结果,完成了日常编程训练和各类网上程序设计竞赛活动,体现了竞赛过程的自动化、高效率、公正性等特性。

本在线评测系统是一个在线程序与算法设计练习、竞赛平台,主要功能可分为用户管理、题库管理、在线提交、在线比赛、在线排名、在线交流、新闻竞赛资讯等。该系统提供了大量供学生练习和竞赛的竞赛题目,学生在线提交解决相关练习和竞赛题的程序代码,系统可以自动编译程序代码,生成可执行文件,并根据已存储的测试用例,从程序的正确性、程序运行总时间、单用例执行时间、程序返回结果等各方面评测程序代码,并精确返回各方面的评测结果。这不仅要求学生能够分析问题,综合利用知识点,而且还要在算法上进行合理的优化,并在更短的时间内给出准确解答。在线交流赋予系统于生命的灵性,使用户积极性更高,竞赛信息的显示使用户掌握第一手信息,新闻能使用户在休闲时间放松一

16中原工学院信息商务学院毕业设计(论文)下的同时获得更大的信息量。3.2.1登陆模块

游客只能浏览本ACM在线评测系统,用户在要进行练习或竞赛时要进行登陆,在注册并且得到审批之后,便可以以自己的用户名和密码进行登陆,在登陆时进行鉴定,若是符合数据库中的身份验证,则能进行登陆,否则无法进入系统,这一措施保护了系统的安全性。当用户名和密码匹配的时候,进行相关的操作。

elseif($type==\"check_name\"){

$result=mysql_query(\"select*fromadminwherename='\".$name.\"'\");$row=mysql_fetch_array($result,MYSQL_NUM);if(!$row){

echo\"OK\";}

else{echo\"erro\";}系统登陆流程图为:

ACM在线测评系统首页输入用户名和密码判断用户名密码是否正确错误

返回错误信息正确

进入ACM在线测评系统,可进行比赛,练习3.2.2竞赛模块竞赛练习主页面显示下载题目、提交代码、查看提交状态内容,并且可以实

17耿迎迎:ACM在线评测系统现即时更新排名的内容,按照时间的顺序排列,分析代码其实现的主要代码$.post(\"gpp.php\function(data)

{

if(data==\"1\"){vardata_res=\"Accept!\";}elseif(data==\"0\"){vardata_res=\"Erro!\";}

elseif(data==\"-1\"){vardata_res=\"CompileError!\";}

排名显示主要代码:

$str=\"ex_79991*1*70*-1*|ex_79991*1*6*-1*|ex_79991*1*6*-1*|ex_79991*1*11*-1*|\";

$arry=explode(\"|\

3.2.3后台管理模块

是老师专用的(通过教师登陆才可以进入),对考生来说是不可见的。(主要功能有:评分(根据参给出相应的成绩)、成绩统计、排序(有助于老师了解学生考试情况)、信息输出(最终结果的输出)、题库管理(对题库进行增加、删除以及改正的管理)权限管理(设立用户名和密码验证方式,防止非法用户登录和越权操作).

在经过人员的审请之后,在管理员的页面上就形成了改人员的信息,管理员可以审批申请,或者删除用户的申请,然后动态绑定数据库,动态刷新。要是批准用户提交的题目的话则其状态修改为批准。管理员创建竞赛代码:

if($_SERVER['REQUEST_METHOD']==\"POST\"){

$i=$_POST[\"num\"];

date_default_timezone_set(\"PRC\");$nowdate=date(\"Y-m-d\");

$path=\"../workspace/testdata/\".$nowdate;echo$path;

mkdir($path,0777);for($j=1;$j<=$i;$j++){

$tm=$path.\"/\".$j;mkdir($tm,0777);

$incode=$_POST[\"in\".$j];$outcode=$_POST[\"out\".$j];

18中原工学院信息商务学院毕业设计(论文)$id=$_POST[\"id\".$j];

$fin=fopen($tm.\"/in.txt\

fputs($fin,$incode);//创建用户的代码文件并写入代码fclose($fin);

$fout=fopen($tm.\"/out.txt\

fputs($fout,$outcode);//创建用户的代码文件并写入代码fclose($fout);

}3.2.5数据库的备份与恢复

数据库是软件开发人员必须掌握的一门技术,在信息网络技术突飞猛进的今天,数据对于人们生活和工作的重要性可想而知,如何合理安全的管理各种数据信息,对于软件IT行业的发展起到了至关重要的作用。数据库可以根据要求备份到指定的文件夹。有助于数据的存储,防止信息的错误。数据库的恢复,就是把备份的数据库重新恢复到数据库。3.2.6公告互动

登陆的主页面显示了公告的标题和发布的时间,点击公告的标题就可以查看相应公告的内容,并且可以实现即时更新的内容,并且按照时间的顺序排列,其实现的主要代码SELECT*FROM[announce1]ORDERBY[ann_date]DESC。把title设置为主键,直接转到公告页面。

<%#Eval(\"title\")%>,<%#Eval(\"id\%>。登陆页面的公告,用GridView空间实现,绑定公告标题和公告时间,把标题的属性设置为HyperLink。

19耿迎迎:ACM在线评测系统第4章系统运行与测试一个系统要想按照要求的进行运行,必须有一个周密的策划和需求分析,其中包括数据库的设计,模块分解。进而进行分工合作,良好的进入开发的状态。软件的开发过程分为:需求,设计,实现和测试四个阶段,需求是项目组的输入,测试系统是项目组的输出,重视项目的输入和输出就能把握住了软件产品的质量。系统的问题越早发现,改进的成本越低,破坏性越小,所以,在系统发布前,要尽量多地把系统问题找出来,其手段就是有计划、有组织地进行充分的测试。在本系统中在系统的开发过程中,系统调试和阶段测试一直伴随着整个开发过程。

4.1系统调试

在连接数据库时出现错误,总是连接不上数据库。

错误提示:Warning:mysql_connect():Accessdeniedforuser'root'@'localhost'(usingpassword:NO)inc:\\inetpub\\wwwroot\\index.phponline2

代码:$conn=mysql_connect(\"127.0.0.1\",\"root\",\"\")ordie(\"连接失败!!!\");mysql_select_db(\"new\",$conn);

$rs=mysql_db_query(\"new\",\"select*fromteacher\");

MYSQL数据库服务器石达开的,ACM数据库也存在,admin表也存在,没有任何异常,但是程序始终不能连接到数据库。

解决方案:重新安装数据库4.01版本。

原因:MYSQL服务在本机,root密码是空的,4.0版本没有密码提示。出现错误信息Binding:“System.Data.DataRowView”不包含名?“id”的属?因为selectCommand=\"SELECT*FROM[ad]ORDERBY[ann_date]DESC\"不应该只选择time_strat和time_end,应该把ad表中的数据全部选择。

在运行公告写入的功能时,当写入的内容多的时候出现错误信息System.Data.SqlClient.SqlException:将截断字符串或二进制数据。语句已终止。

解决方案:把数据content中的text的值改大点,因为通告的内容占的空间比较大。

页面打印出“无法将null值插入列id….该列不允许为空,insert失败”的提示。但是表里还是能插入数据的。

解决方案:把id设为主键。

20中原工学院信息商务学院毕业设计(论文)4.2系统测试

后台管理员登陆功能的测试

4-1后台管理系统登陆角色的选择登陆,管理员或者是用户,根据注册的信息进行登陆。

4-2教师注册页面21耿迎迎:ACM在线评测系统4-3后台教师管理员界面4-4管理员进行密码的修改4-5用户登录注册22中原工学院信息商务学院毕业设计(论文)4-6人员注册审批表管理员进行对注册信息的批准工作,并且能够删除其的申请

4-7新闻通知23耿迎迎:ACM在线评测系统4-8添加比赛4-9代码提交24中原工学院信息商务学院毕业设计(论文)4-10排名显示上述测试结果及系统良好的运行表明,本系统已经基本满足用户需求。虽然调试是一个比较繁琐的过程,但是当遇到的问题得以解决时,那种成就感是无法言表的。通过该系统的设计使自己的编程能力得到较大程度的提高,可谓是受益匪浅

25耿迎迎:ACM在线评测系统第5章结论5.1对上文的总结

经过需求分析、设计、开发、测试,ACM在线评测系统已成型,其中主要使用了PHP、MYSQL、Dreamweaver、Photoshop、CSS+DIV相关技术。这些技术的实现,满足了系统的需要,优化了系统的性能。使用模块化设计,有助于编程人员的维护和系统的再次开发。

ACM在线评测系统无论是在开发过程中,还是建成后的日常维护过程中,都要执行正确的操作,以保证系统的正常运行。该系统的使用使宠物的管理变得更加轻松、快捷高效、用户感觉使用方便、界面友好、功能完善,该系统很好的学习交流效益。

针对现有ACM程序设计竞赛评判系统存在的缺陷,采用了新的架构模式,设计了用于大学生程序设计训练和竞赛的自动评测系统,实现了对用户提交的程序源代码进行自动编译、连接、运行、测试、评审等过程并返回测试结果,完成了日常编程训练和各类网上程序设计竞赛活动,体现了竞赛过程的自动化、高效率、公正性等特性。

本在线评测系统是一个在线程序与算法设计练习、竞赛平台,主要功能可分为用户管理、题库管理、在线提交、在线比赛、在线排名、在线交流、新闻竞赛资讯等。该系统提供了大量供学生练习和竞赛的竞赛题目,学生在线提交解决相关练习和竞赛题的程序代码,系统可以自动编译程序代码,生成可执行文件,并根据已存储的测试用例,从程序的正确性、程序运行总时间、耗费内存、单用例执行时间、程序返回结果等各方面评测程序代码,并精确返回各方面的评测结果。这不仅要求学生能够分析问题,综合利用知识点,而且还要在算法上进行合理的优化,并在更短的时间内给出准确解答。在线交流赋予系统于生命的灵性,使用户积极性更高,竞赛信息的显示使用户掌握第一手信息,新闻能使用户在休闲时间放松一下的同时获得更大的信息量。

以往的ACM在线测评系统虽然实现了查询功能,但是查询方式比较单一,有的系统只能对用户自己的某个题目排名进行查询,无法满足用户求知的要求。在本系统设计中,开发过程实现了多条件查询功能的实现,更加体现系统的人性化服务。普遍的在线测评网站都有论坛,方便学生之间交流,本设计特增加了师生互动模块,学生可以向老师请教问题取得更大进步。

26中原工学院信息商务学院毕业设计(论文)特别需要指出的是,为了使系统软件更加实用化和人性化,本系统界面风格更加友好化,本在线测评网站已经不单单只是学生学习的工具,它已糅合了多种功能于一身,在网站为人们的学习、生活、工作、娱乐提供越来越重要的信息时,人们对它的要求也与日俱增,对界面的要求也不仅仅是停留在美观上。就此,本文在讨论一些基本的网页设计原理的同时还特别强调了UI在网页设计中的运用。页面清新悦目,使用户心情舒畅,缓解用户做题压力。

5.2进一步设想

计算机以及互联网的诞生,对人类社会产生了深远的影响:在很多行业中,人们都在利用计算机和互联网技术来改变传统的生产方式,提升生产效率。类似的,在教育方面,人们也一直在尝试着将计算机及互联网技术应用于教学活动当中:一方面利用信息系统自动化的特性减轻教学者的工作量,利用信息系统丰富的表现方式吸引学生的注意力,提高他们学习兴趣,另一方面利用信息系统挖掘信息本身的内在特性和联系,更好的帮助教学者在错综繁芜的教学资源和千差万别的教学对象之间发现和抓住教学活动中的关键时段和关键因素,创造出相对于以往教学方式更加具有交互性,更因材施教的教学方式。同时,人们也期望在借助于计算技术特别是互联网技术之后,传统的教育方法、教育模式、教育手段,以及因为地理、经济等因素导致的教育不公平和水平差异问题有可能得到一定的缓解。相对于更一般意义上的教学领域,计算机教学领域的很多课程需要锻炼学生的编程能力,与计算机技术关联更为密切,更适合利用计算机和互联网技术进行教学辅助。

ACM竞赛是目前计算机水平最高的国际大学生程序设计竞赛,而ACM在线评测系统则是根据竞赛需求而提供的一个培训平台。本文提出一个基于windows的ACM在线评测系统,详述该系统中编译、测试、获取计算机消耗情况、返回测试结果这几种功能的具体实现。并分析该系统中可能出现恶意占用资源、恶意调用系统等不安全因素,提出相应的解决方案。该系统具有实用性强、安全性好等优点。ACM国际大学生程序设计竞赛(ACM/ICPC)是由美国计算机协会主办,是世界上规模最大、水平最高的国际大学生程序竞赛。其使用的竞赛平台叫做ACMOnlineJudge,竞赛过程中参赛选手只需以网页形式提交源代码。这一特性对于程序设计类课程的教学来说很大的好处,一方面减轻了老师的工作量,另一方面

27耿迎迎:ACM在线评测系统也可以吸引学生的编程兴趣。

通过对基于ACM国际大学生程序设计竞赛在线评测系统的分析研究,设计了相应的ACM测试软件,习题的测试难度可由指导老师自己设计。该软件也可以作为计算机专业学生算法测试工具,通过对该测试系统的使用,经过一定题量的练习,可以增强学生在算法方面设计的技能,为学生奠定雄厚的编程基础。本课题以ACM在线代码测评系统为蓝本,设计基于OnlineJudge系统。针对现有ACM程序设计竞赛评判系统存在的缺陷,采用了新的架构模式,设计了用于大学生程序设计训练和竞赛的自动评测系统,实现了对用户提交的程序源代码进行自动编译、连接、运行、测试、评审等过程并返回测试结果,采用了多进程的并发处理、信号处理、进程通信、文件管理等技术,使得该自动测评系统在实际应用过程中发挥良好的性能,完成了日常编程训练和各类网上程序设计竞赛活动,体现了竞赛过程的自动化、高效率、公正性等特性。除了训练参赛队员,这种用户提交程序、服务器自动判题的模式也可以被应用到各种教学活动中,如数值分析作业的自动批改、C语言程序设计考试、研究生上机考试等。这些应用不仅会培养学生的学习兴趣,提高学生的动手能力,而且会大大减轻教师的负担,在计算机辅助教学领域将有十分广阔的前景。

28中原工学院信息商务学院毕业设计(论文)致谢经过半年的忙碌和工作,本次毕业设计已经接近尾声,作为一个本科生的毕业设计,由于经验的匮乏,难免有许多考虑不周全的地方,如果没有导师的督促指导,以及一起工作的同学们的支持,想要完成这个设计是难以想象的。

本研究及学位论文是在我的导师郭永锋老师的亲切关怀和悉心指导下完成的。他严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。从课题的选择到项目的最终完成,郭清宇老师都始终给予我细心的指导和不懈的支持。非常感谢我的导师郭永锋老师在我大学的最后学习阶段——毕业设计阶段给自己的指导,从最初的定题,到资料收集,到写作、修改,到论文定稿,他给了我耐心的指导和无私的帮助。为了指导我们的毕业设计,他放弃了自己的休息时间,他的这种无私奉献的敬业精神令人钦佩,在此我向他表示我诚挚的谢意。同时,感谢所有任课老师和所有同学在这四年来给自己的指导和帮助,是他们教会了我专业知识,教会了我如何学习,教会了我如何做人。正是由于他们,我才能在各方面取得显著的进步,在此向他们表示我由衷的谢意,并祝所有的老师培养出越来越多的优秀人才,桃李满天下!

通过这一阶段的努力,我的毕业论文《ACM在线评测系统》终于完成了,这意味着大学生活即将结束。在大学阶段,我在学习上和思想上都受益非浅,这除了自身的努力外,与各位老师、同学和朋友的关心、支持和鼓励是分不开的。最后要感谢我的家人以及我的朋友们对我的理解、支持、鼓励和帮助,正是因为有了他们,我所做的一切才更有意义;也正是因为有了他们,我才有了追求进步的勇气和信心。

时间的仓促及自身专业水平的不足,整篇论文肯定存在尚未发现的缺点和错误。恳请阅读此篇论文的老师、同学,多予指正,不胜感激!向在百忙之中抽时间对本文进行审阅、评议和参加本人论文答辩的各位老师表示感谢!

29耿迎迎:ACM在线评测系统参考文献[1]秦越磊、彭四伟.《源代码在线测评系统的设计与实现》[J].福建电脑,2008,(6):-65.[2]丁永生、张桂新、赵超、万庆萱.《基于Web的ACM国际大学生程序设计竞赛教学系统开发》[J].东华大学学报,2001,(4):108-109.[3]赵惊、李玮、汪维富.《基于网络计算的ACM系统构架研究》[J].科技咨询,2008,(24):282-283.[4]刘畅、黄晓宇.《基于WEB的分布式在线程序自动评测系统的设计与实现》[J].企业技术开发,2010,(01):150.[5]田冲、李兴国.《Web软件系统事务处理模型设计》[J].计算机技术与发展,2009,(10):185-187.[6]郑传生.《基于B/S结构的程序设计竞赛自动测评系统的设计》[J].计算机与现代化,2007,(12):58-61.[7]尤枫、史晟辉.《ACM在线测评在编译原理实践教学中的应用探讨》[J].计算机教育,2009,(20):30-31.[8]蒋社想、戴书文.《基于J2EE的ACM竞赛在线评判系统的设计》[J].安徽理工大学学报,2009,(4):2929-2930.[9][美]JesusCastagnetto等著,薛忠胜等译。2001,3[10]AdamLopez:ACMComputingSurveys(CSUR)[J].Volume40Issue3,August2008[11]ESPINOSAA,MARGALEFT,LUQUEE.Automaticperformanceevaluationofparallelprograms.TheSixthEuromicroWorkshoponParallelandDistribuedProcessing,1998(21):43-49.[12]ESPINOSAA,MARGALEFT,LUQUEE.Automaticdetectionofparallelprogramperformanceproblems.LectureNotesinComputerScience1999(1573):365-377.《PHP高级编程》。机械工业出版社30中原工学院信息商务学院毕业设计(论文)附录A:软件使用说明书

ACM在线评测系统的研究与实现

1软件概述

ACM在线评测系统的设计与实现是由池深深、张婷婷、耿迎迎三位同学在郭永锋老师的悉心指导下经过近半年的时间开发出来的。软件经过测试基本上能满足了要求,本系统一共有四大功能模块:竞赛模式学生端、练习模式学生端、教师后台管理、在线交流模块。此ACM在线评测系统能够完成基本的在线评测系统的功能。

1.1功能用户登录:这是使用系统的先决条件,只有使用正确的用户名和相应正确的密码才能登录到系统界面中,不同的用户有着各自特定的权限,不同的权限可以进行相应的管理模块的使用。

在线交流模块:新闻通知的查看,在登录系统的首页的时候,可以浏览新闻信息以及竞赛相关的内容。

教师管理员的基本权限是:(1)用户管理:对用户进行管理。

(2)题库管理:录入试题,并可以对试题进行编辑和修改。(3)比赛管理:添加比赛,并能对比赛进行删除和修改。

(4)发布新闻公告:添加、修改新闻信息,公告通知以及图片信息。(5)数据管理:对比赛数据进行管理。(6)互动管理:主要对网站论坛进行管理。用户的基本权限是:

(1)浏览网站:可以浏览整个网站信息并可以进行相关操作。

(2)练习以及参加比赛:在非比赛时间可以练习试题,比赛时间进行比

赛。

(3)试题添加:用户可以为网站添加自己认为比较好的试题以方便大家

交流共同进步,但是要得到后台管理员的审批。1.2软件开发工具

结合系统的特点使用了Apach+PHP+MYSQL作为客户端的开工具,它是微软公司推出的开发环境。是目前最流行的Windows平台应用程序开发

31耿迎迎:ACM在线评测系统环境,功能非常强大,和操作系统结合紧密。并使用了DIC+CSS、Dreamweaver、Photoshop为页面进行优化。本系统的最终用户是高校老师及学生,他们可能并不为完全熟悉选择的语言,所以要求系统设计出来要符合操作简单、界面友好、灵活、实用、安全的原则。

2软件安装

2.1系统要求硬件环境:

主频:处理器奔腾41.7G以上内存:256M以上硬盘:20G以上接口:Ultra10EIDE软件环境:

操作系统:WindowsXPProfessional2.2安装前的准备

首先保证本地计算机上的MYSQL能够正常运行,然后把数据备份文件拷贝到本地硬盘上,然后通过服务器的管理器将刚刚拷贝的数据附加到数据库,这样整个数据库就建立在了服务器上。这样就完成了安装前的准备工作。

3运行说明

在运行程序之前,必须把ACM在线评测系统的数据库导入到MYSQL中,完成后开启MYSQL服务器,当成功之后,运行该程序即可。

4疑难解答

如果提示有错误,请检查程序中用到的数据库名称和您建立的数据库名称是否相符,若不一样,改正则可。

5服务与支持

服务器最好使用Apache环境,MYSQL的服务器。

32中原工学院信息商务学院毕业设计(论文)附录B:附加图、表

(1)系统总的流程

开始登陆注册后台教师管理员用户用户管理题库管理比赛管理新闻管理数据统计互动管理学生练习模式学生竞赛模式信息浏览论坛33耿迎迎:ACM在线评测系统(2)后台评测流程图

守护进程等待一定时间间隔否

是否提交是

启动评判进程编译用户程序是否通过编译否是重定向输入输出设置运行权限、设置资源运行用户程序接受输出数据与标准数据相比较把记录写入数据库34中原工学院信息商务学院毕业设计(论文)(3)系统流程图:

学生提交命令锁住屏幕将所做题目与标准答案比较分析结果分析程序代码答案

学生信息表成绩

总成绩成绩

分析得出分数启动评判程序(3)数据库属性ER图:

ID用户名密码用户信息年级做题个数错误个数正确个数图1用户信息属性图35耿迎迎:ACM在线评测系统用户名密码ID用户权限权限图2操作人员信息属性图图3管理员信息属性图36中原工学院信息商务学院毕业设计(论文)图4申请表图537耿迎迎:ACM在线评测系统附录C:主要源程序

usingSystem;

usingSystem.Collections;

usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Web;

usingSystem.Web.SessionState;usingSystem.Web.UI;

usingSystem.Web.UI.WebControls;usingSystem.Web.UI.HtmlControls;usingSystem.Data.OleDb;usingSystem.Data.SqlClient;

publicpartialclass_Default:System.Web.UI.Page{

protectedvoidPage_Load(objectsender,EventArgse){}

protectedvoidButton1_Click(objectsender,EventArgse){

if(account_id.Text==\"\"||account_id.Text==null){

error.Text=\"账号不能为空\";}

elseif(password.Text==\"\"||password.Text==null){

error.Text=\"密码不能为空\";}else{

if(DropDownList1.SelectedValue==\"0\"){

SqlConnectionConn=new

SqlConnection(\"server=localhost;database=yusuan;uid=sa;pwd=''\");

Conn.Open();

SqlCommandComm=newSqlCommand(\"selectadmin_idfrom

adminwhereadmin_id='\"+account_id.Text+\"'andpassword='\"+password.Text+\"'\",Conn);

SqlDataReaderdr=Comm.ExecuteReader();Session[\"aa1\"]=account_id.Text;if(!dr.Read()){

error.Text=\"用户名或密码错误!\";}

38中原工学院信息商务学院毕业设计(论文)}

elseif(DropDownList1.SelectedValue==\"1\"){

SqlConnectionConn=new

SqlConnection(\"server=localhost;database=yusuan;uid=sa;pwd=''\");

Conn.Open();

SqlCommandComm=newSqlCommand(\"select*fromoperator

whereoperator_name='\"+account_id.Text+\"'andpassword='\"+password.Text+\"'andflag='已批准'\",Conn);

SqlDataReaderdr=Comm.ExecuteReader();//Session[\"aa1\"]=name1.Text;if(!dr.Read()){

error.Text=\"用户名或密码错误!\";}else{

this.Response.Redirect(\"zhuyemian.aspx\");}}}}

protectedvoidGridView1_SelectedIndexChanged(objectsender,EventArgse){}

protectedvoidGridView1_SelectedIndexChanged1(objectsender,EventArgse){}

protectedvoidzhuce1_Click(objectsender,EventArgse){

Response.Redirect(\"zhuce.aspx\");}

//announce

else{

this.Response.Redirect(\"user.aspx\");}

}

/////////////////////////////////////////////////////

protectedvoidButton1_Click(objectsender,EventArgse)

{

stringtimu1=timu.Text;stringcoc=cont.Text;if(timu.Text==\"\"){

Label1.Text=\"请输入标题名\";

39耿迎迎:ACM在线评测系统SqlConnectionConn=newSqlConnection();Conn.ConnectionString=

\"server=localhost;database=yusuan;uid=sa;pwd=''\";

Conn.Open();

stringda=DateTime.Now.ToLocalTime().ToString();

SqlCommandcomm=newSqlCommand(\"insertintoannounce1(title,

cocent,ann_date)values('\"+timu1+\"','\"+coc+\"','\"+da+\"')\",Conn);

comm.ExecuteNonQuery();Conn.Close();

Label1.Text=\"发布成功!\";}}

protectedvoidButton2_Click(objectsender,EventArgse){

timu.Text=\"\";cont.Text=\"\";}}

//////////////////////////////////////////////////////////////////

protectedvoidPage_Load(objectsender,EventArgse)//shenpi

{

if(Session[\"aa1\"]==null){

this.Response.Redirect(\"denglu.aspx\");}else{

SqlConnectionConn=new

SqlConnection(\"server=localhost;database=yusuan;uid=sa;pwd=''\");

stringsql=\"selectoperator_name,password,tel_num,mailbox,flag

fromoperatorwhereflag='未批准'\";

Conn.Open();

SqlDataAdapterda=newSqlDataAdapter(sql,Conn);DataSetds=newDataSet();da.Fill(ds,\"aa\");

dg.DataSource=ds.Tables[\"aa\"].DefaultView;dg.DataBind();Conn.Close();}}

protectedvoiddg_SelectedIndexChanged(objectsender,EventArgse){

}else{

40中原工学院信息商务学院毕业设计(论文)}

protectedvoiddg_Delete(objectsource,DataGridCommandEventArgse){

SqlConnectionConnStr=new

SqlConnection(\"server=localhost;database=yusuan;uid=sa;pwd=\");

StringStrSQL=\"deletefromoperatorwhere

operator_name=\"+dg.DataKeys[(int)e.Item.ItemIndex];

SqlCommandcm=newSqlCommand(StrSQL,ConnStr);ConnStr.Open();try{

cm.ExecuteNonQuery();

Response.Write(\"\");

}

catch(OleDbException){

Response.Write(\"\");}

ConnStr.Close();BindGrid();

}

publicvoidBindGrid(){

SqlConnectionConnStr=new

SqlConnection(\"server=localhost;database=yusuan;uid=sa;pwd=\");

stringstrCom=\"SELECT*FROMoperator\";

SqlDataAdapterda=newSqlDataAdapter(strCom,ConnStr);DataSetds=newDataSet();da.Fill(ds);

dg.DataSource=ds;dg.DataBind();}//}

protectedvoiddg_Edit(objectsource,DataGridCommandEventArgse){

SqlConnectionConnStr=new

SqlConnection(\"server=localhost;database=yusuan;uid=sa;pwd=\");

StringStrSQL=\"UPDATEoperatorSETflag='已批准'where

operator_name=\"+dg.DataKeys[(int)e.Item.ItemIndex];

SqlCommandcm=newSqlCommand(StrSQL,ConnStr);ConnStr.Open();try{

cm.ExecuteNonQuery();

Response.Write(\"\");

41耿迎迎:ACM在线评测系统protectedvoidButton1_Click(objectsender,EventArgse){

if(AA.SelectedValue==\"0\"){

//df.Visible=true;SqlConnectionConn=new

SqlConnection(\"server=localhost;database=yusuan;uid=sa;pwd=''\");

stringsql=\"select*fromoperatorwhereoperator_name='\"+

TextBox1.Text+\"'\";

Conn.Open();

SqlCommandCmd=newSqlCommand(sql,Conn);SqlDataReaderRead=Cmd.ExecuteReader();if(!Read.Read()){

//df.Visible=false;Label1.Visible=true;

Label1.Text=\"无此用户!\";//Conn.Close();}else{

//Label1.Visible=false;//df.Visible=true;//Conn.open();Read.Close();

SqlDataAdapterda=newSqlDataAdapter(sql,Conn);DataSetds=newDataSet();da.Fill(ds,\"bb\");

df.DataSource=ds.Tables[\"bb\"].DefaultView;df.DataBind();}

Conn.Close();}

elseif(AA.SelectedValue==\"1\"){

df.Visible=true;SqlConnectionConn=new

SqlConnection(\"server=localhost;database=yusuan;uid=sa;pwd=''\");

42}

}

catch(OleDbException){

Response.Write(\"\");}

ConnStr.Close();BindGrid();

中原工学院信息商务学院毕业设计(论文)+\"'\";

stringsql=\"select*fromoperatorwheremailbox='\"+TextBox1.TextSqlCommandCmd=newSqlCommand(sql,Conn);Conn.Open();

SqlDataReaderRead=Cmd.ExecuteReader();

if(!Read.Read()){

df.Visible=false;Label1.Visible=true;

Label1.Text=\"无此邮箱的用户!\";Conn.Close();}else{

Label1.Visible=false;Conn.Close();

SqlDataAdapterda=newSqlDataAdapter(sql,Conn);DataSetds=newDataSet();da.Fill(ds,\"bb\");

df.DataSource=ds.Tables[\"bb\"].DefaultView;df.DataBind();Conn.Close();}

}

protectedvoiddg_delete(objectsource,DataGridCommandEventArgse){

SqlConnectionConnStr=new

SqlConnection(\"server=localhost;database=yusuan;uid=sa;pwd=\");

StringStrSQL=\"deletefromoperatorwhereoperator_name=\"+

df.DataKeys[(int)e.Item.ItemIndex];

SqlCommandcm=newSqlCommand(StrSQL,ConnStr);ConnStr.Open();try{

cm.ExecuteNonQuery();

Response.Write(\"\");}

catch(OleDbException){

Response.Write(\"\");}

ConnStr.Close();BindGrid1();}

43}

耿迎迎:ACM在线评测系统publicvoidBindGrid1(){

SqlConnectionConnStr=new

SqlConnection(\"server=localhost;database=yusuan;uid=sa;pwd=\");

stringstrCom=\"SELECT*FROMoperator\";

SqlDataAdapterda=newSqlDataAdapter(strCom,ConnStr);DataSetds=newDataSet();da.Fill(ds);

df.DataSource=ds;df.DataBind();}

/////////////////////////////////////////////////////////////

protectedvoidButton1_Click(objectsender,EventArgse)//beifen

{

stringconnStr=\"DataSource=(local);InitialCatalog=yusuan;Persist

SecurityInfo=True;UserID=sa;Password=''\";

SqlConnectionconn=newSqlConnection(connStr);conn.Open();

stringsql=\"backupdatabaseyusuantodisk='G://yusuan/backdb.bak'\";Response.Write(\"\");SqlCommandcmd=newSqlCommand(sql,conn);cmd.ExecuteNonQuery();conn.Close();}

protectedvoidButton2_Click(objectsender,EventArgse){

stringconnStr=\"DataSource=(local);InitialCatalog=yusuan;Persist

SecurityInfo=True;UserID=sa;Password=''\";

SqlConnectionconn=newSqlConnection(connStr);conn.Open();

stringsql=\"usemasterrestoredatabaseyusuanfromdisk='G:

//yusuan/backdb.bak'\";

Response.Write(\"\");SqlCommandcmd=newSqlCommand(sql,conn);cmd.ExecuteNonQuery();conn.Close();

}

////////////////////////////////////////////

protectedvoidPage_Load(objectsender,EventArgse)//lookannounce

{

stringID=Request[\"id\"].ToString().Trim();SqlConnectionConn=newSqlConnection();Conn.ConnectionString=

\"server=localhost;database=yusuan;uid=sa;pwd=''\";

Conn.Open();

stringsqlstr=\"select*fromannounce1whereid='\"+ID+\"'\";

44中原工学院信息商务学院毕业设计(论文)}

protectedvoidLinkButton1_Click(objectsender,EventArgse){

stringURL=\"denglu.aspx\";Response.Redirect(URL);}

////////////////////////////////////////////////////

protectedvoidButton3_Click(objectsender,EventArgse)//operatorchange

{

stringPas=pas2.Text;

SqlConnectionConnStr=newSqlConnection();ConnStr.ConnectionString=

\"server=localhost;database=yusuan;uid=sa;pwd=''\";

stringstrCom=\"SELECT*FROMoperator\";

SqlCommandCmd=newSqlCommand(\"selectpasswordfromoperator

wherepassword='\"+pas1.Text+\"'\",ConnStr);

ConnStr.Open();

SqlDataReaderRead=Cmd.ExecuteReader();if(Read.Read()){

ConnStr.Close();

SqlDataAdapterMyadp=newSqlDataAdapter(strCom,ConnStr);DataSetmyDataSet=newDataSet();myDataSet.Clear();

Myadp.Fill(myDataSet,\"operator\");ConnStr.Open();

SqlCommandMycmd=newSqlCommand(\"updateoperatorset

password='\"+Pas+\"'\",ConnStr);

Mycmd.ExecuteNonQuery();ConnStr.Close();

Label1.Text=\"密码已经修改成功,请牢记您的密码!\";}else{

Label1.Text=\"此密码不正确!请重新输入!\";ConnStr.Close();

45SqlCommandcomm=newSqlCommand(sqlstr,Conn);SqlDataReaderdr=comm.ExecuteReader();while(dr.Read()){

timu.Text=dr[\"title\"].ToString().Trim();

neirong.Text=dr[\"cocent\"].ToString().Trim();

riqi.Text=\"发布时间:\"+dr[\"ann_date\"].ToString().Trim();}

dr.Close();Conn.Close();

耿迎迎:ACM在线评测系统}

///////////////////////////////////////////////////////

protectedvoidButton1_Click(objectsender,EventArgse)//unitmessage

{

SqlConnectionConn=newSqlConnection();Conn.ConnectionString=

\"server=localhost;database=yusuan;uid=sa;pwd=''\";

Conn.Open();SqlCommandComm=newSqlCommand(\"insertinto

unitinformation(unit_name,unit_head,financial_leader,tel_num,address,postcode,organ_code,budget_code,notes)values('\"+uname.Text+\"','\"+uhead.Text+\"','\"+flaeder.Text

+\"','\"+tnum.Text+\"','\"+uaddress.Text+\"','\"+pcode.Text+\"',

'\"+ocode.Text+\"','\"+bcode.Text+\"','\"+beizhu.Text+\"')\",Conn);

Comm.ExecuteNonQuery();Conn.Close();uname.Text=\"\";uhead.Text=\"\";flaeder.Text=\"\";tnum.Text=\"\";uaddress.Text=\"\";pcode.Text=\"\";ocode.Text=\"\";bcode.Text=\"\";beizhu.Text=\"\";}

protectedvoidButton2_Click(objectsender,EventArgse){

uname.Text=\"\";uhead.Text=\"\";flaeder.Text=\"\";tnum.Text=\"\";uaddress.Text=\"\";pcode.Text=\"\";ocode.Text=\"\";bcode.Text=\"\";beizhu.Text=\"\";}

///////////////////////////////////////////

}

46

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- net188.cn 版权所有 湘ICP备2022005869号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务