
由于这些程序是从linux系统上直接复制过来的,所以,由于行尾问题,在windows记事本打开时会发现它没有换行。。
这里发的程序只是C++的后台程序,还有一些网页程序,用来做界面,没有发上来。
好,下面进入正题:
一、这里有三个cpp
一个是server.cpp,这个是一个后台服务的程序,我让它一直在后台运行,并监听一个端口,当php端需要判题时,就把源代码写到指定位置,然后,发一个连接到这个端口。这时,server程序就会产生一个进程来处理这次判题事件。
第二个是:equal.cpp,这个是判断生成的文件与答案是否相同的一个程序。
第三个是:judge.cpp,这个才是重头戏,它包含了其它的一堆头文件,真正的判题程序。
二、几个.h文件
1、db.h是数陆伏据库 *** 作类
2、log.h是写系统日志的函数
3、run.h是运行状态信息的类
4、problem.h是题目信息类
5、ExeRunner.h是ExeRunner类的头文件,一个最重要的类,主要是用来运行一个载入并运行其它的程序的。而且包含了监视功能。
6、mylib.h是我很久以前写的一个我自己的库,现在看起来挺弱智的,不过,当时确实空慧有好几个地方都用到了它。
7、disabled_syscall.h是来标识哪些系统调用可用,哪些不可用的。这个头文件是网上找的。
三、另外的那个RunLog是系统日志。不是源代码。
#include"judger.h"
int main(int argc,char**argv)
{
if (argc!=2) {WriteLog("调用判题程序时参数太少")return -1}
WriteLog(string("开始判断,本次运行的运行号为:")+argv[1])
Judger judger(stoi(argv[1]))
judger.Judge()
}
ACM程序设计大赛是大学级别最高的脑力竞赛,素来被冠以"程序设计的奥林匹克"的尊称。
具体情况:
大赛自1970年开始至今已有30年历史,是世界范围内历史最悠久、规模最大的程序设计竞赛。
比赛形式是:经过校级和地区级选拔的参赛组,于指定的时间、地点搜大正参加世界级的决赛,由3个成员组成的小组应用一台计算机解决6到8个生活中的实际问题。
ACM-ICPC以团队的形式代表各学校参赛,每队由3名队员组成。每位队员必须是在校学生,有一定的年龄限制,并且最多可以参加2次全球总决赛和5次区域选拔赛。
比赛期间,每队使用1台电脑需要在5个小时内使用C、C++或Java中的一种编写仿指程序解决7到10个问题。程序完成之后提交裁判运行,运行的结果会判定为正确或错误两种并及时通知参赛队。
而且有趣的是每队在正确完成一题后,组织者将世悔在其位置上升起一只代表该题颜色的气球。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)