编程竞赛控制系统(PC2)使用说明书

编程竞赛控制系统(PC2)使用说明书

 

1.        系统简介

 

PC2是由美国加利福尼亚大学为国际大学生编程竞赛开发研制的竞赛控制系统。目前主要用于ACM/ICPC等国际编程竞赛。PC2最新的版本是8.5d,系统采用JAVA语言编写,可以运行在任何支持JAVA的平台(windows系列以及Solaris/Linux/ FreeBSD),网络模式为C/S,竞赛语言可以选用绝大多数的编程语言。PC2系统提供编程竞赛控制,阅卷,记分等功能。在使用PC2系统过程中我们发现它可以极大的提高在诸如竞赛或者学校考试过程中教师的工作效率。由于PC2系统不依赖于硬件和软件系统,使得PC2系统几乎可以适用与任何的机器环境。C语言竞赛作为可以实际发挥学生编程能力、扩展学生视野、提高学生上机动手能力的竞赛正日益受到越来越多的人的重视。

 

2.         PC2配置及应用

 

                                             系统的配置

     PC2系统需要JAVA运行环境的支持,因此没有安装JDK的服务器首先要安装JDK(JDK最新的版本为1.4.2)PC2系统要求的最低版本为1.3.1PC2系统本身是无需安装的(http://www.ecs.csis.edu/pc2提供下载),下载完毕后需要配置、修改系统的配置与批处理文件。具体配置如下:(以下文件如无特殊说明,全部位于pc2v85d目录下)

(1)        pc2v8.ini(pc2系统配置文件):要修改服务器IP如本机地址为211.87.46.211

则可在文件中设置为 IP:server=211.87.46.211。如下图所示:

1

(2)        setjava.bat(设置JAVA运行环境批处理文件):指定JDKPC2目录,设置路

径如本机的JAVAPC2目录分别为D/j2sdk141D/pc2v85d则可设置为 set PC2=d:/pc2v85d  set JAVA=d:/j2sdk141

(3)  通过以上的配置我们就可以正常运行PC2系统了,PC2系统主要提供四个服务,分别由四个批处理文件来启动1PC2Server.bat(启动PC2服务器) 2PC2Admin.bat(启动PC2管理员客户端) 3PC2Judge.bat(启动PC2裁判员客户端) 4PC2Team.bat(启动PC2竞赛选手客户端)。服务器的设置如上操作,客户端仅需在pc2v8.ini中的IPserver=语句后写上服务器的IP地址。(服务器可以填写Localhost,但是客户机必须填写服务器的IP地址)。竞赛的C/S模式如下:

 

 

 

 


                                         (竞赛端)

 

 

 

 

                                        (裁判端)

      (服务器)

 

 

 

                                             系统的运行                      (系统管理端)

(1)          服务器端:首先运行setjava.bat来设置JAVA运行环境,然后运行

PC2Server.bat启动服务器。

(2)          客户端:和服务器相同也要首先运行setjava.bat来设置JAVA运行环境,然

后运行相对应的批处理文件(前提是服务器已经启动)

                                             系统管理端

     运行PC2Admin.bat可以进入管理员界面(PC2系统提供初始帐号密码rootroot)如图2所示,下面简要介绍一下系统管理端的主要功能:

(1)  可以生成和管理系统管理员、裁判员、记分员、选手的帐号和密码,同时系统支持导入已生成的帐号密码文件,为了系统的安全性和保密性我们最好选取此项功能。

(2)  配置编译器:应采用命令行编译器,如TC2.0TCCTCC语法配置编译。如此次比赛我们采用的编译器为TC2.0,则配置如下:c:/tc2/tcc  -Ic:/tc2/include  -Lc:/tc2/lib  {:mainfile}。系统同时可以支持Dev c++语言的编译器,如下图。

(3)  竞赛题目:竞赛前应该输入题目名称(已备),题目的输入输出(格式应与竞赛要求一致)以及程序运行的时间限制。

(4)  竞赛时间:可以规定比赛时间,控制比赛的开始和结束。

2.4  竞赛端

     运行PC2Team.bat可以进入选手界面(系统提供初始帐号密码teamXteamX) (其中X为编号) 如图3所示,系统管理端的主要功能:

(1)   题目提交功能:选手在这个界面可以选择题目、编程语言和主程序,确认无误后可以提交给服务器。虽然系统可以区分对于一个程序的多次提交,但是现实中对裁判的阅卷工作造成了很多不利影响,因此在竞赛过程中应该提示选手一个程序最好只提交一次。对于裁判员来说只有第一个程序是有效的。

 

2

3

(2)   问题解答:如果选手对于已经提交的程序有了不同的想法,可以在这个界面与裁判员进行交流沟通。

(3)   提交程序表:选手可以在这个界面了解到已经提交的程序的概况。避免出现遗忘提交程序的问题。

(4)   设置:选手可以很方便的在此修改自己的密码,下次登录时生效。

2.5  裁判端

     运行PC2Judge.bat可以进入裁判员界面(系统提供初始帐号密码judgeXjudgeX) (其中X为编号) 如图4所示,系统管理端的主要功能:

4

(1)        程序裁判:在此这个界面中裁判员不仅可以运行参赛选手提交上来的程序,

也可以直接阅读选手的源程序。可以很方便的按照选手名、提交时间、问题进行排序。

(2)        提问、回答问题:在这里裁判员可以浏览和回答选手提交的问题,同时也

可以把新的问题说明提交给选手。

(3)  设置:为了系统的安全性每名裁判都可以在这里自己设定密码。

PC2系统的阅卷可以采用手工阅卷也可以采用自动阅卷。当采用自动阅卷时应该首先在系统管理端的题目菜单中设置,给出题目的结果格式(可在系统提供的选项中配置),另外要提供输入、输出、回答和结果文件。手工阅卷中只提供输入文件就可以了。   

对于可以编译成功的程序要参照具体的评分标准,竞赛采用如下的评分标准:

(1)   程序正确且结果正确。(满分)

(2)   结果正确但输出格式不对。(扣两分)

(3)   程序可以编译,结果不正确或部分正确,原则上得分不超过本题分值的1/3

(4)   程序不能编程通过。(零分)

3.        使用PC2系统组织竞赛中的问题

 

                                             出题

     题目的要求首先应该适合参赛选手的水平,偏易或偏难都容易给学生造成不必要的压力。本次竞赛中采用4个小时内选做五道题目的方法,比赛结果比较客观的反映除了参赛选手的真实水平,取得了较好的效果。

     其次要规定题目的具体输入输出格式,在竞赛过程中选手的程序的输入输出格式必须遵守题目给出的要求(具体的要求在每道题目后做详细说明),输入输出没有遵守格式造成的后果由选手本人负责。

     另外也要规定程序存储的名称,以便于管理。

                                             用户名与密码

     2.3 系统管理中我们已经介绍过系统支持导入选手名和密码文件,文件格式为:1|teamname|true|password ,其中1为编号,可编写了一个可以自动生成用户名和密码的程序,很好的保证了竞赛的公平性。

                                             竞赛组织

(1)   组织选手报名(此次竞赛在本院计算机系内部选拔)

(2)   组织教师挑选题目。

(3)   配置机器:包括服务器、裁判机、竞赛机。

(4)   组织选手熟悉系统环境。

(5)   开始竞赛。

(6)   组织教师进行阅卷。

(7)   宣布竞赛结果。

 

4.      PC2系统应用中问题的分析

4.1 程序的输入输出

    对于2.5节中提及系统自动阅卷功能,因系统只是简单的从设置好的输入文件读出、写入输出文件,然后与标准答案对比,因此在程序只是读入数据没有经过处理就写入答案的情况下,系统不能给出提示。我们建议在程序量不是很大的情况下应对所有正确程序进行人工阅卷。

4.2 不可编译程序的处理

在使用此系统过程中,我们发现对于一些不能编译成功的程序系统不能很好的处理,往往造成系统崩溃,需要重新启动服务器,甚至需要重启电脑 (这也是系统不如意的地方) 。所以在竞赛或者考试时应该提示选手注意不要提交不能编译成功的程序。

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/473027.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎么查看linux日志里请求量最高的url访问最多的_实用的Linux高级命令,开发运维都要懂!...

在运维的坑里摸爬滚打好几年了,我还记得我刚开始的时候,我只会使用一些简单的命令,写脚本的时候,也是要多简单有多简单,所以有时候写出来的脚本又长又臭。像一些高级点的命令,比如说 Xargs 命令、管道命令、…

ggplot2箱式图两两比较_第十九章_使用ggplot2进行高级绘图

介绍ggplot2包使用形状、颜色和尺寸来对多元数据进行可视化用刻面图比较各组自定义ggplot2图19.1 R中的四种图形系统基础gridlatticeggplot2(用的较多)gghub需要的R包ggpolt2gridExtra(可以拼图)car19.2 ggplot2介绍library(ggplot2)ggplot(datamtcars, aes(xwt, ympg)) geom_p…

centos7 編譯 chmsee

安装libchm及相关的devel包,安装 xulrunner 及 devel 包!否则后面make的时候会出错! 到解压出来的chmsee/src目录下,找到与你系统对应的Makefile文件,我选的是Makefile.fedora,cp Makefile.fedora Makefile…

python调用cmd命令释放端口_详解python调用cmd命令三种方法

目前我使用到的python中执行cmd的方式有三种 使用os.system("cmd") 该方法在调用完shell脚本后,返回一个16位的二进制数,低位为杀死所调用脚本的信号号码,高位为脚本的退出状态码,即脚本中“exit 1”的代码执行后,os.system函数返回值的高位数则是1,如果低位数是0的情…

LeetCode 1742. 盒子中小球的最大数量

文章目录1. 题目2. 解题1. 题目 你在一家生产小球的玩具厂工作,有 n 个小球,编号从 lowLimit 开始,到 highLimit 结束(包括 lowLimit 和 highLimit ,即 n highLimit - lowLimit 1)。 另有无限数量的盒子…

bash shell命令(1)

本文地址:http://www.cnblogs.com/archimedes/p/bash-shell1.html,转载请注明源地址。 ls命令 ls用来列出目录的内容,它是用户最常用的命令之一,ls命令的格式为: ls[选项][目录名或文件名] 选项的主要参数:…

activiti页面展示流程图乱码_activiti 5.17 流程图中文乱码问题

1. 流程图中任务中的中文乱码显示问题。解决方法:设置processEngineConfiguration中的两个字体属性,例如:。。。2. 流程图中TextAnnotation中的中文乱码显示问题。此乱码产生的原因是,负责画流程图的类DefaultProcessDiagramCanva…

python遍历文件夹下所有文件名中含有指定_Python 遍历目录找出包含指定字符串的文件夹...

题目:编写一个程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径 题目不难,但是初接触Python,对函数不够熟悉,犯了不少错误。总结如下: os.path.is…

LeetCode 1743. 从相邻元素对还原数组(拓扑排序)

文章目录1. 题目2. 解题1. 题目 存在一个由 n 个不同元素组成的整数数组 nums ,但你已经记不清具体内容。 好在你还记得 nums 中的每一对相邻元素。 给你一个二维整数数组 adjacentPairs ,大小为 n - 1 ,其中每个 adjacentPairs[i] [ui, v…

BP神经网络算法学习

BP(Back Propagation)网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是眼下应用最广泛的神经网络模型之中的一个。BP网络能学习和存贮大量的输入-输出模式映射关系&#xff…

phppage类封装分页功能_PHP封装的page分页类定义与用法完整示例

本文实例讲述了PHP封装的page分页类定义与用法。分享给大家供大家参考,具体如下:亲测有效,见下图>1. 测试实例test.phpheader("Content-Type: text/html; charsetutf-8");date_default_timezone_set("Asia/Shanghai")…

ms agent

Microsoft Agent是微软公司于1997年9月发布的一项代理软件开发技术,而后被集成到Internet Explorer 4.0 Plus及更高版本中,目前版本为2.0,支持简体中文。作为一种软件代理工具,Agent以其强大的交互功能、鲜明的人性特点、优美的操…

无向图的深度优先遍历非递归_【数据结构图(一)】什么是图

一、什么是“图”(Graph) 表示“多对多”的关系包含一组顶点:通常用 V (Vertex) 表示顶点集合一组边:通常用 E (Edge) 表示边的集合无向边:(v, w) 有向边:不考虑重边和自回路二、抽象数据类型定义类型名称:图(Graph)数…

LeetCode 1744. 你能在你最喜欢的那天吃到你最喜欢的糖果吗?(前缀和)

文章目录1. 题目2. 解题1. 题目 给你一个下标从 0 开始的正整数数组 candiesCount ,其中 candiesCount[i] 表示你拥有的第 i 类糖果的数目。 同时给你一个二维数组 queries ,其中 queries[i] [favoriteTypei, favoriteDayi, dailyCapi] 。 你按照如下…

wdcp-apache开启KeepAlive提高响应速度

因为我们的网站,媒体文件,js文件,css文件等都在同一个服务器上,并且,我们网站有非常多的图片,所以当建立好tcp链接之后,不应该马上关闭连接,因为每建立一次连接还要进行dns解析&…

python的指针跟c的区别_ctypes中的LP_x*指针和*p指针有什么区别?(以及与结构的奇怪交互)...

我很难理解Python ctypes中LP_*(例如LP_c_char)和*\u p(例如c_char_p)指针之间的区别。是否有文件区分它们?在我所读到的关于*\p指针的一些信息表明它们更好(以某种未指明的方式),但是当我试图将它们用作结构字段时,我会得到奇怪的行为。例如…

爱斯基摩结构

“爱斯基摩结构”:狗拉雪橇是生活在北极圈的爱斯基摩人最重要的运载工具。怎样才能让狗多拉快跑?爱斯基摩人将狗分成两个层次,前面是一只领狗,后头有N只力狗。他们给领狗制造许多特权:它单独享用食品&#…

如何将网页保存为图片_网页账号密码该如何保存?

我们在使用浏览器浏览一些网页的时候,需要输入我们的账号密码才能登陆,以保证安全。但是有时候浏览网页,不小心关掉了,重新打开时又要重新输入密码,这样会显得很繁琐。那么有什么办法能让网页记住我们的账号密码吗&…

scala学习-类与对象

类  /  对象 【《快学Scala》笔记】 一、类 1、Scala中的类是公有可见性的,且多个类可以包含在同一个源文件中; 1 class Counter{ 2 private var value 0  //类成员变量必须初始化,否则报错 3 4 def increment(){ //类中的…

LeetCode 1745. 回文串分割 IV(区间DP)

文章目录1. 题目2. 解题1. 题目 给你一个字符串 s ,如果可以将它分割成三个 非空 回文子字符串,那么返回 true ,否则返回 false 。 当一个字符串正着读和反着读是一模一样的,就称其为 回文字符串 。 示例 1: 输入&a…