OJ系统说明

官官方信息技术老师·13 页·深入(追求细节与边界)·0 次浏览·38 天前
OJ系统在线判题提交流程

OJ 系统说明

看完你能独立完成注册、选课到提交代码并通过评测的完整流程

按 空格/→ 演示下一步

问一句
1 / 13 页

全部页面点击任意一页,跳回舞台从这页播放

OJ系统在线判题提交流程

OJ 系统说明

看完你能独立完成注册、选课到提交代码并通过评测的完整流程

1第 1 页 · OJ 系统说明

OJ 是什么

上节我们说OJ系统说明,这节用健身房来类比OJ:Online Judge,在线判题平台。你写好代码提交,就像进健身房报到,系统替你验收成果。

海量题目
像器械区,供你按难度逐个挑战
提交与判题
代码上传后自动运行测试,如同教练盯你动作
即时反馈
AC/WA/TLE 等结果,告诉你差在哪
健身房对应 →OJ 平台

题库是器械,提交是训练一组,判题结果是教练纠错

2第 2 页 · OJ 是什么

注册账号的步骤

注册只需三步:填信息、收邮件、点链接激活,每步都有坑要避开。

1
填写信息
用户名、邮箱、密码;邮箱必须真实可收件,用于后续验证
2
查收邮件
系统发送激活链接到邮箱,注意垃圾箱,链接通常限时有效
3
激活登录
点击链接完成验证即可登录提交代码;密码记牢或用密码管理器
3第 3 页 · 注册账号的步骤

登录与账号细节

注册拿到账号只是第一步,就像办了门禁卡,每次进门还得刷卡。OJ 里「刷卡」就是登录,这一页讲清登录入口、密码管理和登不上时的排查思路。

登录入口
一般在首页右上角,用注册的用户名和密码进入
密码管理
妥善保存,忘记密码走邮箱找回流程重置
登录异常排查
先查大小写与空格,再查账号是否激活,最后联系管理员
门禁刷卡进门对应 →OJ 登录

门禁卡的卡号对应账号,刷卡验证对应密码校验

4第 4 页 · 登录与账号细节

界面分区导览

从登录后首页出发,按使用顺序走一遍 OJ 的五个功能分区,看清每个入口在哪、干什么用。

图解渲染中…
n1:页面最上方横条,用户名、题库、比赛、排名等入口都在这n3:点开某道题后的页面:题面、样例、数据范围n5:提交后显示编译中、通过、答案错误等结果n6:查看排行榜和他人讨论,入口在顶部导航栏
5第 5 页 · 界面分区导览

如何选课加入课程

四步完成选课加入课程,任何一步出错都会失败。

1
登录账号
未登录时搜索课程也无法加入,先确保右上角显示自己的用户名
2
进课程列表
导航栏进入「课程/Courses」页,这里列出本学期所有开放课程
3
搜索课程名
按老师给的课程名或课程码搜索,注意学期与班级要选对
4
输入密码加入
课程码由老师发,区分大小写,提交后页面显示已加入即成功
6第 6 页 · 如何选课加入课程

课程内能做什么

进了课程,接下来就是做题。但课程页面里那一堆标签——作业、题目、状态——各管什么事?先把分工弄清,交作业时才不会点错地方。

作业区
老师布置的题目集合,有截止时间,按时提交才算完成
题目列表
课程全部题目,可自由练,无截止时间限制
状态含义
AC=通过,WA=答案错,TLE=超时,CE=编译错误
学习委员收作业对应 →作业区

作业区是老师指定必须交的题,题目列表是自己加练的题库

7第 7 页 · 课程内能做什么

提交代码的完整流程

一次成功提交分五步,每步都有它存在的理由。

1
选题
在题目列表点开要做的题,看清题目编号和时限
2
读题与示例
读题面、输入输出格式和样例,明确边界条件
3
本地写码
本地写完并自测,别把 OJ 当调试器浪费提交次数
4
选语言并粘贴
选对编译器版本,粘贴完整代码,避免漏掉末尾
5
确认提交
点提交后核对题号与语言,再看返回的评测结果
8第 8 页 · 提交代码的完整流程

判定结果一览

上一步你把代码交了上去,服务器很快回你一串字母:AC、WA、TLE……这就像交完考卷对答案,每个字母都是机器给你的判词,看懂它们才知道下一步该改什么。

AC:通过
Accepted,全部测试点都对,这题完成
WA:答案错
Wrong Answer,逻辑有误或漏了边界情况
TLE:超时
Time Limit Exceeded,算法太慢跑不完
RE:运行错误
Runtime Error,如数组越界、除以零
CE:编译失败
Compile Error,语法写错,根本没跑起来
考卷批改对应 →OJ 判定

CE 对应没写完交白卷,TLE 对应没在铃响前做完

9第 9 页 · 判定结果一览

编译错误 vs 运行错误

同是“没过”,编译错误发生在代码看不懂的阶段,运行错误发生在跑起来的阶段,修法完全不同。

编译错误
  • 发生时机:编译阶段,程序没跑起来
  • 常见原因:少分号、括号不配对、拼写错
  • 应对:看编译器报错行号,改语法即可
运行错误
  • 发生时机:运行阶段,程序跑到一半崩了
  • 常见原因:数组越界、除零、空指针访问
  • 应对:检查边界条件,加输出定位崩溃点
代码根本没运行就是编译错误;能跑但中途崩或输出异常才是运行错误,先分清阶段再动手。
10第 10 页 · 编译错误 vs 运行错误

自测:流程与结果

点击作答

同一份代码,本地测试全对,提交 OJ 却判 Compile Error。最可能的原因是什么?

11第 11 页 · 自测:流程与结果

要点收束

  • ✓账号一次注册长期有效,登录是使用一切功能的前提
  • ✓加入课程后才能看到题目和截止时间
  • ✓提交三步:选语言、贴代码、确认后等判定
  • ✓结果分编译错与运行错,先看CE再查逻辑
  • ✓善用自测,用样例数据先本地验证再提交
延伸主题:测试数据与判题机制详解算法题从零入门路径如何利用OJ备赛与刷题计划
12第 12 页 · 要点收束

课后思考

三个开放问题,先自己琢磨几分钟,再看参考答案找思考路径。

1判定结果里,为什么编译错误要在运行错误之前先报出来?这个顺序说明了什么?

参考答案想想流程是串行的:代码先要变成可执行程序,才谈得上运行。编译都过不了,机器根本没机会执行。顺着这条流水线想,每一步检查的先后顺序自然就清楚了。

2如果比赛的判题要求「哪怕部分数据通过也给部分分」,OJ 现有判定流程要怎么改?

参考答案现在的判定通常一遇到错误数据就停止。要支持部分分,就得继续跑完剩余数据,按通过比例计分。想想哪些环节需要变:循环终止条件、结果汇总方式。

3除了在线判题,这套「提交—自动判定—反馈」的思路还能迁移到什么场景?边界在哪里?

参考答案自动化测试、数据管道校验、自动批改都用了类似闭环。但边界在「判定标准能否被明确定义」:主观创意类任务难以写出严格的判题程序,就不适合直接照搬。

13第 13 页 · 课后思考