OJ系统判题思路与代码实现

                                  OJ系统判题思路与代码实现

毕业设计做了个OJ系统,做得不好,打算重做,因为比较感兴趣,涉及到了许多东西,做系统的同时又把我在学校里学的东西给捡了回来,哈哈。

输入:

exeFile:源程序文件

codeType:代码类型

test.in:输入文件

test.out:输出文件

timeLimit:时间限制

memoryLimit:内存限制

输出:

exitValue:子进程运行结果状态码

runTime:子进程运行时间

runMemory:子进程运行内存

 

 

一些相关说明:

  1. 主进程:调控子进程的程序。
  2. 子进程:执行源程序。
  3. 管道:(有名管道)子进程输出数据到管道中,主进程得以读取,

半双工式环形缓冲区,半双工地读写决定了父/子只能有一个进程读/写,所以父子进程轮流阻塞。

听说,有名管道环形缓冲,待验证,待审查对程序影响力。)

  1. fork()创建子进程
  2. setProcessLimit()自定义设定子进程资源限制函数,

包装修饰了setrlimit()库函数。

  1. 捕获Linux进程信号量(略)
  2. 获取进程PCB控制块信息(运行时间,内存...)
  • 5
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
BNUEP Offline Judge 北京师范大学珠海分校离线评测系统是在具备题目测试数据的情况下,能无联网自动评测ACM/ICPC模式的源代码评测系统(即本地测试工具、评测机)。它主要有以下功能(所有的功能都无需联网,在本机即可实现): *评测核心功能: 基本具备Online Judge的判题核心功能,如编译代码、内存限定,时间限定,获取代码长度等; *支持多种语言: 1.0 Beta2版本支持C/C++、Pascal、C#、JAVA; *出题模式 可以在有标准输入数据和标准程序的情况下,由系统产生标准输出数据,并可批量保存,同时自动命名标准输出数据的后缀; *文本高亮对比 在判题后,可以直接在本系统中将自己的程序输出和标准输出进行高亮的文本差异对比,操作类似于一些文本对比软件,在一定程度上可以较方便地发现WA代码的出错细节; *支持不限时执行代码 这个功能可以在一定程度上检测TLE代码的算法是否正确的,当然,不能是跑一天都没跑出来的程序; *打包与加密测试数据 使用加密后的数据可以正常判题,但不显示标准输出。这个功能是为了弥补放出去给别人评测的测试数据是明文的缺陷。加密之后评测方就看不到测试数据。这样就既可以实现离线评测,又可以实现Online Judge上的对测试数据屏蔽; ACM-ICPC简介: ACM国际大学生程序设计竞赛(简称ACM-ICPC)是由国际计算机界具有悠久历史的权威性组织ACM学会(Association for Computing Machinery)主办,是世界上公认的规模最大、水平最高、参与人数最多的大学生程序设计竞赛,其宗旨是使大学生能通过计算机充分展示自己分析问题和解决问题的能力。 ACM-ICPC的每一道题,都具备题目、需求描述、输入格式描述、输出格式描述、样例输入和样例输出共六大信息,有些题目还有一定的提示。此外,裁判还额外存储了关于该题的一组或多组对选手屏蔽的标准输入和标准输出数据,这些测试数据已经经过验证符合题意要求。当用户提交一道题目的源码之后,裁判会将该源码放入评测系统中编译运行,并使用标准输入作为用户程序的输入,然后获取用户程序的输出,接着,将用户程序输出和标准输出比较,最后返回给用户一个评判结果。评判结果包括:Accepted(测试通过)、Compile Error(编译失败)、Memory Limit Exceed(内存超出限制)、Presentation Error(格式错误)、Runtime Error(运行时错误,可能是数组越界,改写只读的内存,除零,栈或堆溢出等错误)、Time Limit Exceed(时间超出限制)、Wrong Answer(答案错误)等。
### 回答1: 南京信息工程大学oj系统题库是为了帮助学生提高编程能力、加强算法训练而开设的,题库中包含了各种类型的题目,涵盖了计算机科学与技术、软件工程、网络工程、物联网等专业的知识点。题库中的题目难度有高有低,从初级到高级、从简单到复杂都有涵盖,可以满足不同层次、不同需求的学生。 南京信息工程大学oj系统题库的题目内容丰富多样,可以涉及到各种算法、数据结构、编程语言等方面的知识。学生可以通过解答这些题目,了解和掌握不同算法和数据结构的应用场景,提高编程能力和实践动手能力。 南京信息工程大学oj系统题库的使用非常方便,学生只需登录系统,在题库中选择自己感兴趣或者需要练习的题目,然后根据题目的要求,编写相应的代码进行提交。系统会自动对代码进行评测,给出相应的反馈和评分,帮助学生了解自己的编程能力和解题能力。 同时,南京信息工程大学oj系统题库也可以作为教师授课和学生自学的辅助工具。老师可以根据课程内容,选择合适的题目进行布置作业或者考试,提升学生的学习兴趣和积极性。对于学生自学的话,可以通过解答题库中的题目,巩固和加深对于课程知识的理解和掌握。 总之,南京信息工程大学oj系统题库是一个重要的学习资源,可以帮助学生巩固和提高编程能力,为他们在计算机科学与技术以及相关领域的学习和就业打下坚实的基础。 ### 回答2: 南京信息工程大学oj系统题库是该校为了方便学生进行编程实践和提高编程能力而特别开设的一个在线题库。该题库的目的是帮助学生巩固课堂所学的理论知识,实践编程技巧,并培养学生解决实际问题的能力。 南京信息工程大学oj系统题库中包含了各种难度级别的编程题目,涵盖了计算机科学与技术、通信工程、软件工程等多个专业领域的知识点。学生可以通过选定特定的题目,根据自身编程能力的提升情况逐渐挑战难度更大的题目。 在南京信息工程大学oj系统题库中,学生可以提交自己的代码系统会自动对代码进行评测并返回结果。这样可以有效地帮助学生查找代码中的错误,并及时进行修改和改进。除此之外,学生还可以查看别人的解题思路代码实现,借鉴他人的经验,丰富自己的编程思维。 南京信息工程大学oj系统题库还提供了在线编程环境,学生无需安装额外的编译器或者IDE,只需通过浏览器就可以完成编程任务。这样方便学生的学习和实践,并提高了学生在编程中的效率和体验。 总之,南京信息工程大学oj系统题库是一个宝贵的资源,能够提供给学生进行编程实践和提高编程能力的机会。通过挑战不同难度的题目,学生可以不断提升自己的编程水平,更好地适应未来的学习和工作需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值