当前位置:首页 > 范文专栏 > 计算机论文

ASP的ACM在线测评

  • 2019-05-28 15:23:52
  • 来源:51板报网
  • 编辑:51板报网
  • 己被围观204次
基于ASP的ACM在线测评系统开发
【摘要】ACM/ICPC是世界上公认的规模最大、水平最高的国际大学生程序设计竞赛。其目的旨在使大学生运用计算机来充分展示自己分析问题和解决问题的能力。ACM国际大学生程序设计竞赛是参赛选手展示计算机才华的广阔舞台,是著名大学计算机教育成果的直接体现,是信息企业与世界顶尖计算机人才对话的最好机会。我国自1996年开始参加ACM/ICPC亚洲区预赛以来,越来越多的大学生参与到竞赛中,并相继开发出自己的ACM竞赛在线测评系统。本文阐述了ACM在线测评系统的发展现状以及ACM在线测评系统的开发意义,同时主要对该系统进行了需求分析,分析了了该系统的总体结构的设计思想和预想实现的主要功能模块,包括系统运行流程图、数据库的设计、竞赛题目的录入和管理、在线测评和成绩统计等功能模块,给出了关键功能的部分实现思想。
【关键字】ASP.Net; ACM编程大赛;在线测评引言ACM/ICPC(ACM International Collegiate Programming Contest,国际大学生程序设计竞赛)是由国际计算机界历史悠久、颇具权威性的组织ACM(Association for Computing Machinery,美国计算机协会)主办的,世界上公认的规模最大,水平最高的国际大学生程序设计竞赛,其目的旨在使大学生运用计算机来充分展示自己分析问题和解决问题的能力。此项比赛不单是培养参赛选手的创造力,团队合作精神以及他们在软件程序开发过程中的创新意识,同时也是检测选手们在压力下进行开发活动的能力的最好的平台。可以说,ACM国际大学生程序设计竞赛是参赛选手展示计算机才华的广阔舞台,是著名大学计算机教育成果的直接体现,是信息企业与世界顶尖计算机人才对话的最好机会。该项竞赛从1970年举办至今,一直受到国际知名大学的重视,并受到全世界著名计算机公司的高度关注,在过去十几年中,APPLE、AT&T、MICROSOFT和TBM等世界著信息企业分别担任了竞赛的赞助商。可以说。ACM国际大学生程序设计竞赛已成为世界各国大学生最具影响力的国际计算机类的赛事,是广大爱好计算机编程的大学生展示才华的舞台,是著名大学计算机教育成果的直接体现,是信息企业与世界顶尖计算机人才对话的最好机会。
1. 背景与意义
1.1 ACM大赛简介ACM国际大学生程序设计竞赛(英文名称:ACM International Collegiate Program Content(ACM-ICPC或ICPC))是由美国计算机协会(ACM)主办的,一项旨在展示大学生创新能力、团队精神和压力下编写程序、分析和解决问题能力的年度竞赛。经过30多年的发展,ACM国际大学生程序设计大赛已经发展成为最具影响力的大学生计算机竞赛。赛事目前有IBM公司赞助。竞赛的历史可以追溯到1970年,当时在美国德克赛斯AM大学举办了首届比赛。当时的主办方是the Alpha Chapter of the UPE Computer Science Honor Society.作为一种全新的发现和培养计算机科学顶尖学生的方式,竞赛很快得到美国和加拿大各大学的响应。1977年,在ACM计算机科学会议期间举办了首次决赛,并演变成为目前的一年一届的多国参与的国际性比赛。迄今已经举办了34届。最初的几届比赛的参赛队伍主要来自美国和加拿大,后来逐渐发展成为一项世界范围内的竞赛。特别是自1977年IBM开始赞助赛事后,赛事规模增长迅速。1997年,总共有来自560所大学的840支队伍参加比赛。而到了2004年,这一数字迅速增加到840所大学的4109支队伍并以每年10-20%的速度在增长。1980年代,ACM将竞赛的总部设在位于美国德克萨斯州的贝勒大学。在赛事的早期,冠军多为美国和加拿大的大学获得。而进入1990年代以来,俄罗斯和其他一些东欧国家的大学连夺数次冠军。来自中国大陆的上海交通大学代表队则在2002年美国夏威夷的第26届和2005年上海的第29届全球总决赛上两夺冠军。这也是目前为止亚洲大学在该竞赛上取得的最好成绩。赛事的竞争格局已经由最初的北美大学一支独秀演变成目前的亚欧对抗的局面。
1.2 ACM的比赛规则ACM-ICPC以团队形式代表学校参赛,每队由3名成员组成。每位队员必须是在校学生,有一定的年龄限制,并且最多可以参加两次全球总决赛和5次区域选拔赛。比赛期间,每队使用1台电脑需要在5个小时内使用C、C++、Pascal或Java中的一种编写程序解决7到10个问题。程序完成之后提交裁判运行,运行结果会判定为正确或错误两种并及时通知参赛队。而且有趣的事每队在正确完成一道题后,组织者将在其位置上升起一只代表该题颜色的气球。最后的获胜者为正确解答题目最多且用时最少的队伍。,每道试题用时将从竞赛开始到试题解答被判定为止,期间每一次提交运行结果被判错的话,将被加罚20分钟时间,为解答正确的试题不计时。例如:A、B两队都正确完成两道题目,其中A队提交这两题的时间分别是比赛开始后1:00和2:45,B队为1:20和2:00,但B队有一题提交了2次。这样A队的总用时为1:00+2:45=3:45而 B队为1:20+2:00+0:20=3:40,所以B队以总用时少而获胜。与其它计算机程序竞赛(例如国际信息学奥林匹克,IOI)相比,ACM-ICPC的特点在于其题量大,每队需要5小时内完成8道题目,甚至更多。另外一支队伍3名队员却只有1台电脑,使得时间显得更为紧张。因此除了扎实的专业水平,良好的团队协作和心理素质同样是获胜的关键。1.3 ACM在线测评系统的开发意义传统的ACM编程大赛采用的均是人工阅卷,这种情况下,阅卷效率低下,而且浪费人力和物力。同时,竞赛规模扩大对阅卷工作的自动化、高效性、合理性和公正性提出了很高的要求,基于以上原因,建立一套准确、搞笑的程序评测系统成为非常迫切的需求。本课题研究给出了一种网络自动化的程序分析系统—ACM在线测评系统的实现方案,旨在提供一个ACM/ICPC训练的平台,也为希望提高计算机程序设计能力的同学提供一个练习的场所。
2. 系统分析
2.1 系统开发原理本系统采用三层架构设计,它的工作原理如下图所示:图2-1系统总体功能需求框图系统采用三层结构,管理员通过管理员借口模块负责试题的管理以及用户账号的管理。普通用户通过普通用户接口模块选择比赛参与做题或者对ACM编程题进行练习。而数据管理模块则用于判断学生提交程序的正误并针对比赛进行成绩统计与发布。这样采用三层架构以后,用户界面层通过统一的接口向业务层发送请求,业务层按自己的逻辑规则将请求处理之后进行数据库操作,然后将数据库返回的数据,封装成类的形式返回给用户界面层。这样用户界面层甚至可以不知道数据库的结构,它只要维护与业务层之间的接口即可。
2.2 系统可行性分析
2.2.1 功能可行性分析本系统可以为用户提供一个方便的ACM在线测评环境,可以让用户方便的对自己编写的程序进行及时有效的编译测评。同时,也方便老师在组织此类比赛时队学生的比赛成绩及时得出结论。相对于传统的人为的对学生提交上来的程序进行批阅,在一定程度上减少了人力及物力的消耗。所以,从功能可行性上讲,该系统是可行的。2.2.2 技术可行性分析经过这些年的发展。ASP.Net已经非常成熟,成为当今软件界比较流行的Web开发语言工具。而数据库SQL Server2008也已经被广泛应用,成为很多程序设计时不可或缺的一部分。所以本系统在技术上是可行的。2.2.3 使用可行性分析本系统以“简洁、便捷”为基本目标,占用资源很少。窗口设计尽量美观精简,以满足用户最基本的功能需求为标准。所以,本系统在使用上是可行的。2.3 系统需求分析ACM在线测评系统主要作用是方便学生进行ACM的编程进行自我测试以及在进行比赛时能够比较高效率的计算出每一题的得分,在比赛结束后能够统计出总成绩,如果可以的话,最好能够将比赛排名显示出来,这样就节省了人为批阅程序所花费的大量的时间以及人力、物力资源。因此,该系统应该大致包含以下几种模块:2.3.1 前台用户模块(1)用户登录:普通用户进行登录后,可以使用系统具备的相应功能。
(2)用户注册:新用户进行注册,注册时只能注册普通用户账号。
(3)密码修改:用户登陆后可以修改自己的登录密码。(4)编程题浏览:用户可以对浏览各类编程题目,了解题目的详细信息以要求。
(5)参与答题:用户根据实际情况选择编程题进行编码并提交。(
6)查询成绩:对于参加比赛的用户,可以查询对应比赛的成绩。
2.3.2 后台管理模块管理员负责维护整个系统的运行,管理系统所有的用户以及试题和比赛的信息和数据,应该提供以下功能:
(1) 题目管理:管理员可以添加各类ACM类型的题目,包括题目类型、内容、语言等属性的设置,同时管理员还可以修改添加每道题目的测试数据参数。
(2) 比赛管理:管理员可以添加比赛信息,包括比赛的名称,时间等。同时管理员还可以从题库中选择或添加对应比赛的试题,即设置每场比赛的参赛试题。
(3) 用户信息管理:管理员可以查看普通用户以及管理员用户的信息,同时管理员可以更改用户权限,创建普通用户以及管理员用户。
4) 成绩管理:对于每次的比赛,管理员有权限查看普通用户的成绩,并对用户成绩信息进行管理。
3. 系统设计
3.1 系统设计目标对于用于实现ACM在线测评功能的系统,本系统在设计时应满足以下几个目标:
(1) 普通用户可以方便的查看练习场里的各个练习题。
(2) 普通用户可以方便的选择自己合适的编程题进行代码的编写与提交。
(3) 普通用户可以在指定时间内选择比赛进入,并答题。
(4) 普通用户可以查询自己参加过的比赛,并查看成绩。
(5) 管理员用户可以方便的查看数据库中的试题。
(6) 管理员可以方便的对数据库中的试题进行增、删、改、查操作。
(7) 管理员可以方便的对数据库中的比赛信息进行增、删、改、查操作。
(8) 管理员可以方便的对用户账户进行管理,包括权限的修改以及账户的添加。
(9) 管理员可以方便的查看普通用户在竞赛中的成绩
3.2 系统详细设计4. 系统实现
4.1 软件开发工具
4.1.1 前台开发工具的选择本系统基于ASP.Net,以C#为程序设计语言,前台开发工具为Visual Studio 2010。C#在Microsoft.NET开发平台中战友极重要的地位,它不是C/C++或是Visual Basic的任何一个新版本,而是整合二者优点及特色于一身的新一代编程语言。C#是一个现代化的、直观的、面向对象的编程语言。Visual ASP.NET是一套综合工具,用于为Microsoft Windows和Web创建XML WEB服务和基于Microsoft.NET的应用程序。4.1.2 后台开发工具的选择Microsoft SQL Server2008是一个分布式的关系型数据库管理系统,具有客户机/服务器体系结构,采用了Transact-sql的sql语言在客户机与服务器间传递客户机的请求与服务器处理结果。SQL Server 2008能够满足今天的商业环境要求不同类型的数据库解决方案。它是一种应用广泛的数据库管理系统,具有许多显著的有点:易用性、适合分布式组织的可伸缩性、用于决策支持的数据仓库功能、与许多其他服务器软件紧密关联的集成性,良好的性价比等。SQL Server 2008还为数据库的管理与分析带来了灵活性,允许单位在快速变化的环境中从容响应,从而获得竞争优势。从数据管理和分析的角度看,将原始数据转化为商业智能和充分利用Web带来的机会非常重要。作为一个完备的数据库和数据分析包,SQL Server 2008为快速开发新一代企业级商业应用程序、为企业赢得核心竞争优势打开了胜利之门。
4.1.3 软件开发平台的选择基于ASP.Net和Microsoft SQL Server 2008对运行环境的要求,并根据所使用的电脑的实际情况,我选择了Windows 7作为系统开发、测试和运行的平台。5. 开发总结5.1 收获对我来说,本次的毕业设计既是一次尝试,也是一次挑战,它是大学四年的最后一门课程,也是。平时上课学的都是理论知识,然而亲自动手实践的机会很少,这次的毕业设计为我提供一个很好的机会,可以让我讲所学的理论知识运用到实践中,是检验理论知识学习成果的最好办法。事实上,在某种程度上很好的检验了我在大学本科期间的所学,帮助我复习了ASP.NET网站开发的运用和设计思想,提高了我网站项目的实际设计与开发能力。这次的毕业设计让我深刻体会到:实现一个具体的功能程序远比看懂一个程序要难得多。从对ACM在线测评系统一无所知,到研究该系统的编译与测评程序,到最后的程序编写,期间有太多的问题需要我们去考虑,有太多的算法需要我们去思考,不仅有知识上的,还有能力上的,以及心理上的。可以这么说,这次的毕业设计让我重新认识了程序设计,认识了ACM以及ASP.Net。5.2 不足一个好的完善的ACM在线测评系统必然凝结了很多人辛勤的智慧,需要讲过很多的修改完善才能予以实现。由于开发时间和本人编程能力有限,本次知识完成了ACM在线测评系统的简单功能,但是界面不够友好,功能覆盖面狭窄,同时在测试结果状态及成绩统计等还有很多的不足。

  相关推荐:

互联网信息作为现有技术的界定

ASP.NET的交流论坛系统

在线图书交易系统论文

试析基于.NET的高校信息管理系统研发

运用计算力学原理解析航空航天问题

标签(TAG)

更多精彩内容