HOJ 系统常用功能介绍 OJ部署定制快速入门 c++ python Java编程在线自动评测判题 信息奥赛一本通 USACO G E S P 蓝桥 CSP NOIP 蓝桥等考题库 常见问题

这篇具有很好参考价值的文章主要介绍了HOJ 系统常用功能介绍 OJ部署定制快速入门 c++ python Java编程在线自动评测判题 信息奥赛一本通 USACO G E S P 蓝桥 CSP NOIP 蓝桥等考题库 常见问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

hoj,linux运维,腾讯云,c++,java,python

技术支持微  makytony  终身更新维护

功能类似洛谷和信息奥赛一本通,支持CSP复赛中的freopen文件输入输出方式提交,模拟真实考试环境,防止出现 本地 AC 比赛 WA  PA TLE  爆零 的惨剧。
组织比赛作业,创建题目、查看用户提交代码、下载评测数据等都没限制。

约 3280 题,覆盖入门+进阶+算法+蓝桥杯+等级考试+CSP+NOIP比赛 。
题库demo:
http://124.223.218.214/home 溪口中学
1、一本通入门和语法篇 600题 
2、一本通算法篇和提高篇 220题
3、一本通启蒙篇 480题送配套PPT课件 
4、CSP-J NOIP复赛近10年真题  45题
5、dongfangboyi 题目1200题 配套讲义视频300节
6、蓝桥大学组基础和算法篇 280题
7、蓝桥青少组选拔赛省国赛历次真题 160题 
8、电子学会等级考试C语言历次真题1-8级 120题 
9、G E S P等级考试 2023年1-6级真题
10、蓝桥Python等考历次真题 240题
11、蓝桥c++等考历次真题 200题
12、USACO官网1-6章练习题真题 93题

https://www.bilibili.com/video/BV1JQ4y1G7km/ OJ完整功能视频介绍  

目        录

OJ功能介绍

版本更新记录

一、前端页面

​二、管理员后台

1、修改首页底部文字 左侧 常用设置 ——系统配置  此页面信息用户可以自主修改,保存立即生效。(关闭开启用户自注册功能)

2、修改首页轮播图

3、修改填写获取注册邮件和发送验证码邮箱

4、如何监控服务运行状态 

三、移动设备端界面

四、题目快速分类

用户管理

一、批量导入(从方便管理角度建议以 学生姓名 作为 用户名 )

二、批量生成临时用户 后期修改成需要的用户名和密码 (学生登录后修改密码)

三、用户自行注册(填写邮箱获取验证码)该方式不方便管理,建议使用前两种方式。

四、 管理员角色说明

判题模式

一、普通判题 逐字符对比

二、文件读写 freopen 判题  判题结果说明 AC WA PE

三、特殊判题

用例模式

一、ACM题目

二、OI题目

三、ACM赛制、OI赛制、IOI赛制区别

题目管理

一、OJ题目导入导出

1. 导出题目  2. 导入题目

二、导入QDUOJ、FPS格式

三、样例输入  样例输出  (支持多组) 提示(样例解析 数据范围)

四、如何添加题解

六、上传测试数据

一、手动输入(平时老师出题或者录入教案中题目)

二、文件上传(用于样例较多,或已经有单独题面和测试数据包)

七、修改题目难度-简单 中等 困难

八、添加选择题和判断题

训练题单

1. 公开训练

2. 私有训练

 创建比赛

一、ACM 比赛模式

二、OI 比赛模式

三、查询和导出比赛成绩排名

团队功能-班级

一、创建团队

二、加入团队

三、管理团队

四、团队中添加训练(从公共题库或者团队题库添加题目)

通知和公告发布

数据批量操作

一、安装Navicat 连接数据库

二、数据库图形化操作例如:批量隐藏题目 批量禁用学生账号 修改难度等级​

需要get的技能 

1、查看学员提交代码

2、训练题单给学员布置作业

4、查看未通过测试点、下载评测数据

5、怎么才能拥有你?我的域名 页脚悬挂备案号?

6、怎么开通https 安全访问?

7、在线编辑器的注释快捷键 ?

8、 相关的练习网址链接能否加上?

9、排名是什么意思? 为啥分acm和OI?题目难度如何设置?

​10、团队的作用是啥?分班,分校区管理 

11、自动生成的默认用户的密码是什么?  

12、查看学员做题进度和已经通过的题目

13、学员头衔激励刷题如何操作?

14、题目上传pdf讲义 视频题解

15、添加到比赛的题目,比赛后去哪儿了?

16、应该给 老师 添加什么角色?

常见问题处理

1、学校机房打不开OJ首页

2、删除用户账号 提示 server error

3、添加用户账号 提示server error

整体架构(方便理解OJ的运行过程)

 数据库关键表属性说明


服务器配置需求

腾讯云 2H4G 5M 60GB 轻量应用服务器  承载大约 200~400人使用,经过压力测试,评测并发速度可满足130人左右的在线比赛。
系统镜像选 Ubuntu 20.04 LTS ,没有桌面系统资源占用率很低。

【腾讯云】2核2G3M云服务器7.92元/月起,2000元代金券免费领https://curl.qcloud.com/DG602oAX

hoj,linux运维,腾讯云,c++,java,python

【阿里云】2核4G5M轻量云165元首年直达https://www.aliyun.com/product/swas?scm=20140722.M_10000007990.P_111.MO_1594-ID_10000007990-MID_10000007990-CID_0-ST_7277-V_1&source=5176.11533457&userCode=eigfx9xp

OJ功能介绍

1、自动适配手机平板端屏幕大小,判题使用沙箱 cgroup 隔离用户程序,杜绝卡评和恶意代码;
2、分布式判题,可以一台前端主机加多台评测机进行分流,应对大规模比赛;
3、私有训练(班级)支持榜单 显示作业完成情况、公开训练(题单功能);
4、普通测评、特殊测评、交互测评、在线自测、子任务分组评测、文件IO( freopen 读写);
5、左题面右编程区的计蒜客布局,支持在线自测调试;
6、拥有讨论区与站内消息系统,方便学员上传题解、交流解题思路;

模块 功能介绍
首页 展示网站轮播图(校区环境、课程)、公告(题单、教学资料清单)、近期比赛、最近7天做题排名
题目 提供展示题目列表页,可以根据题库、难度、标签等进行筛选查询,同时展示各个题目的做题情况;提供展示题目详情页,可以看到题目内容,在线编写代码,查看当前用户对于该题的历史提交记录
训练 提供展示训练列表页,可以根据权限、分类进行筛选查询,进入指定训练页,可以查看到训练的介绍、训练的题目单以及训练记录单
比赛 提供展示类型为ACM和OI的比赛列表页,可以根据类型与比赛状态进行筛选查询,同时展示比赛的标题、时间、时长、类型、参赛人数等信息;进入指定比赛,可以看到比赛题目、比赛提交列表、排行榜、比赛公告、评论,以及比赛管理员可以选择重新评测某个比赛题目、提供现场打印代码的功能
评测 用户可以看到所有的提交记录列表,可以通过状态、题目ID、提交者进行筛选过滤
排名 分为ACM排行榜和OI排行榜,分别根据对应ACM题目和OI题目提交情况对用户进行排名展示
团队 团队可以看做是一个独立的小HOJ,里面包含了现有HOJ的题目、训练、比赛、评测、讨论、公告、排名等功能,其中各个团队的数据与HOJ主站的数据已做了完全隔离,各个团队可以自定义属于自己的题目、比赛、训练等,其中目前支持团队中的题目申请公开到主题库
个人信息与设置 用户拥有自己的个人主页,可以展示用户的学校、名称、个人简介、做题数和得分等信息;同时登陆状态可以在右上角进入个人设置,可以修改密码和邮箱,以及各种个人信息
登录与注册 用户可以通过点击导航栏右上角选择登录、注册、重置密码,即可完成对用户的鉴权

版本更新记录


22年05月    增加在线调试、个人主页提交热力图
22年08月    增加题目标签的分类管理(二级标签)
22年08月    增加人工评测(赛中后修正了评测数据)、取消评测(抄袭)
22年08月    增加OI题目的subtask、ACM题目的'遇错止评'模式
22年10月    增加比赛奖项配置,增加ACM赛制的滚榜
22年11月    增加题目详情页专注模式
23年05月    增加题目评测支持文件IO(freopen文件读写 CSP USACO)
23年06月    增加允许比赛结束后提交(赛后补题)
23年12月    增加首页一言功能(心灵毒鸡汤),每次打开首页或刷新 随机换语句
23年12月    在线编辑器丰富关键字提示 默认Monokai黑色背景彩色关键字主题 文字22号
23年12月    增加AC后礼花绽放效果、题目页 标签修改为 默认选中

hoj,linux运维,腾讯云,c++,java,python

hoj,linux运维,腾讯云,c++,java,python

hoj,linux运维,腾讯云,c++,java,python

OJ界面展示

一、前端页面

学生做题界面仿计蒜客 左题面 右编程区   提交编程代码前 点 语言 选择提交的语言 支持 C  C++ Python  JAVA语言,默认 C++ 语言 。

hoj,linux运维,腾讯云,c++,java,python

hoj,linux运维,腾讯云,c++,java,python

查看代码编译错误

hoj,linux运维,腾讯云,c++,java,python

比DEV C++ 详细一些。

查看测试点通过情况

hoj,linux运维,腾讯云,c++,java,python

 教师查询学员刷题情况和提交的代码

hoj,linux运维,腾讯云,c++,java,python

 题目有标签,按标签选择练习题目或者组成训练题单和作业。

二、管理员后台

hoj,linux运维,腾讯云,c++,java,python

点开每一项在右侧伸展操作界面

hoj,linux运维,腾讯云,c++,java,python

1、修改首页底部文字 左侧 常用设置 ——系统配置  此页面信息用户可以自主修改,保存立即生效。(关闭开启用户自注册功能)

hoj,linux运维,腾讯云,c++,java,python

2、修改首页轮播图

hoj,linux运维,腾讯云,c++,java,python

3、修改填写获取注册邮件和发送验证码邮箱

hoj,linux运维,腾讯云,c++,java,python

点击上方“设置”、进入“账户”,开启第一个及第二个,点击“生成新密码”,此密码即为授权码,填入【密 码】栏即可

hoj,linux运维,腾讯云,c++,java,python

 如果不开放注册可以不配置,默认已配置公用服务邮箱。

4、如何监控服务运行状态 

仪表盘  右侧展开页面记录了服务器CPU使用率和内存占用情况 ,内存占用90%以内正常,超过90%Linux 会启用磁盘交换内存。
 

hoj,linux运维,腾讯云,c++,java,python

重点关注 后端服务判题系统 健康状态, 出现走失情况, SSH连接服务器 执行 sudo reboot 或者 登录控制台  执行 重启  操作 5分钟内服务会全起来。

hoj,linux运维,腾讯云,c++,java,python

三、移动设备端界面

系统适配移动设备 支持手机和平板电脑 ,方便家长和老师根据学员做题情况,主要是排名和评测结果。

hoj,linux运维,腾讯云,c++,java,python

 hoj,linux运维,腾讯云,c++,java,python

四、题目快速分类

hoj,linux运维,腾讯云,c++,java,python

用户管理

一、批量导入(从方便管理角度建议以 学生姓名 作为 用户名 )

hoj,linux运维,腾讯云,c++,java,python

 用户数据导入仅支持csv格式的用户数据。

  1. 共七列数据:用户名和密码不能为空,邮箱、真实姓名、性别、昵称和学校可选填,否则该行数据可能导入失败。
  2. 第一行不必写(“用户名”,“密码”,“邮箱”,"真实姓名",“性别”,“昵称”,“学校”)这7个列名
  3. 性别为男请使用“male”或“0”,女请使用“female”或“1”,不填默认为“secrecy”。
  4. excel表格保存为 csv 文件 用记事本打开,另存为,保存为UTF-8编码的文件,否则中文可能会乱码。

    hoj,linux运维,腾讯云,c++,java,python

二、批量生成临时用户 后期修改成需要的用户名和密码 (学生登录后修改密码)

hoj,linux运维,腾讯云,c++,java,python

hoj,linux运维,腾讯云,c++,java,python

hoj,linux运维,腾讯云,c++,java,python

三、用户自行注册(填写邮箱获取验证码)该方式不方便管理,建议使用前两种方式。

四、 管理员角色说明

hoj,linux运维,腾讯云,c++,java,python

hoj,linux运维,腾讯云,c++,java,python

判题模式

一、普通判题 逐字符对比

普通模式是程序在线评测平台(OJ)通用的判题模式,主要的实现逻辑步骤如下:

   1、选手程序读取题目标准输入文件的数据

   2、判题机执行代码逻辑得到选手输出

   3、再将选手输出与题目标准输出文件的数据进行对比,最终得到判题结果

二、文件读写 freopen 判题

  1. 管理员修改题目标题添加英文单词(方便确定 输入输出文件名)(仿真CSP NOIP复赛) 养成习惯避免复赛暴零。

    hoj,linux运维,腾讯云,c++,java,python

  2. 修改读写模式 为 文件IO ,填写指定的读写文件名。

    hoj,linux运维,腾讯云,c++,java,python

  3.  IO模式题目左上角有明显标签,提示需要写的读写文件名。 

  4. #include <bits/stdc++.h>
    using namespace std;
    int main() {
        freopen("power.in","r",stdin);
        freopen("power.out","w",stdout);
        
        fclose(stdin);
        fclose(stdout);
    return 0;
    }

    hoj,linux运维,腾讯云,c++,java,python

     未正确文件读写,不能通过评测。

  5. 判题结果说明 AC WA PE

    hoj,linux运维,腾讯云,c++,java,python

三、特殊判题

特殊判题(Special Judge)是指OJ将使用一个特定的程序来判断提交的程序的输出是不是正确的,而不是单纯地看提交的程序的输出是否和标准输出一模一样。

一般使用Special Judge都是因为题目的答案不唯一,更具体一点说的话一般是两种情况:

  • 题目最终要求输出一个解决方案,而且这个解决方案可能不唯一。
  • 题目最终要求输出一个浮点数,而且会告诉只要答案和标准答案相差不超过某个较小的数就可以,比如0.01。这种情况保留3位小数、4位小数等等都是可以的,而且多保留几位小数也没什么坏处。

用例模式

​ OJ的测试用例评测模式有以下几种:

​ ACM题目:默认(全部评测)、遇错止评(顺序评测)

​ OI题目:全部评测(得分加和)、子任务(最低得分)、子任务(平均得分)

一、ACM题目

hoj,linux运维,腾讯云,c++,java,python

1. 默认(全部评测)

​ 用户提交的代码将运行所有的测试用例,然后汇总结果。如果全部测试点都符合预期,则评测状态结果为Accepted,否则遍历所有测试点结果,将第一个非Accepted的测试点的状态作为最终结果。

2. 遇错止评(顺序评测)​

用户提交的代码将顺序运行所有测试用例,如果遇到某个测试点的结果(非Accepted)不符合预期,则评测结束,将该测试点的评测结果作为最终结果;否则一直遍历全部测试用例评测直至结束。

二、OI题目

hoj,linux运维,腾讯云,c++,java,python

1.全部评测(得分加和)

​ 用户提交的代码将运行所有的测试用例,然后汇总所有评测点的得分和结果。如果全部测试点都符合预期,则评测状态结果为Accepted,得分为该题目的满分;否则遍历所有测试点结果,加和所有测试点的得分,作为该评测的最终得分。

2. 子任务(最低得分)

​ 将全部测试用例按照配置的组数分成多个子任务评测组,每个子任务求该组测试点的最低得分,作为该子任务的得分,然后汇总加和所有子任务组的得分,作为该评测的最终得分。

三、ACM赛制、OI赛制、IOI赛制区别

ACM赛制:每道题提交之后都有反馈,可以看到“通过”、“运行错误”、“答案错误”等等结果,但看不到错误的测试样例(leetcode周赛可以看到),每道题都有多个测试点,每道题必须通过了所有的测试点才算通过。每道题不限制提交次数,但没通过的话会有罚时,仅以最后一次提交为准。比赛过程中一般可以看到实时排名,通过题数相同的情况下按照答题时间+罚时来排名。

ACM赛制的比赛:ICPC、CCPC、codeforces比赛、leetcode周赛及全国编程大赛、牛客小白赛练习赛挑战赛、传智杯。

OI赛制:每道题提交之后都没有任何反馈,每道题都有多个测试点,根据每道题通过的测试点的数量获得相应的分数。每道题不限制提交次数,如果提交错误没有任何惩罚,仅以最后一次提交为准。比赛过程中看不到实时排名,赛后按照总得分来排名。

OI赛制的比赛:NOI全国青少年信息学奥林匹克竞赛、CCF CSP、考研机试、蓝桥杯、牛客OI赛、全国高校计算机能力挑战赛。

IOI赛制:每道题提交之后都有反馈,可以看到“通过”、“运行错误”、“答案错误”等等结果,甚至可以实时看到自己每道题得了多少分,但看不到错误的测试样例。每道题都有多个测试点,根据每道题通过的测试点的数量获得相应的分数。每道题不限制提交次数,如果提交错误没有任何惩罚,仅以最后一次提交为准。比赛过程中一般可以看到实时排名(如果是考试,一般看不到排名),按照总得分来排名。可以说,IOI赛制是结合了OI赛制和ACM赛制的特点。

IOI赛制的比赛:PAT、团体程序设计天梯赛、CCF CCSP、洛谷月赛。

题目管理

一、OJ题目导入导出

1. 导出题目

用于题目备份和迁移。点击选择需要的题目,便可以批量导出成一个zip压缩包,分别对应一个json格式的题目数据,一个对应名字的文件夹存放评测数据文件,具体的文件结构如下:

+-- problem_1000.json
+-- problem_1000
|   +-- 1.in
|   +-- 1.out
|   +-- ....
+-- problem_1001.json
+-- problem_1001
|   +-- 1.in
|   +-- 1.out
|   +-- ....

hoj,linux运维,腾讯云,c++,java,python

2. 导入题目

选择需要导入的题目数据zip压缩包,如果是自己做的题目需要批量导入请注意不要多一层文件夹进行压缩请保证题目json文件的名字与其对应的存放评测数据的文件夹名字一致。

hoj,linux运维,腾讯云,c++,java,python

二、导入QDUOJ、FPS格式

请严格按照青岛oj的后台导出的压缩文件来上传。

请使用标准的FPS格式的题目数据文件(.xml) (单个文件超过100MB建议分割)

hoj,linux运维,腾讯云,c++,java,python

三、样例输入  样例输出  (支持多组) 提示(样例解析 数据范围)

参考以下模板:

hoj,linux运维,腾讯云,c++,java,python

hoj,linux运维,腾讯云,c++,java,python

去掉支持语言前面的勾选,一般保留 c++ 和Python3, 在提交页面默认C++, 学生选择一次Python3提交后下次默认 Python3 ,可以切换改变

hoj,linux运维,腾讯云,c++,java,python

四、如何添加题解

hoj,linux运维,腾讯云,c++,java,python

添加后效果:

hoj,linux运维,腾讯云,c++,java,python

 hoj,linux运维,腾讯云,c++,java,python

六、上传测试数据

    上传题目测试用例数据可以选择手动输入、Zip文件上传两种方式

一、手动输入(平时老师出题或者录入教案中题目)

每次点击 添加用例 就可以手动填入该用例的输入与输出,该方式比较适合题目数据简单的,同时手动输入的题目数据将记录进数据库,下次对该题目进行修改可以直接获取,然后进行测试数据的修改,同时也会在服务器对应的 testcase 文件夹生成对应的文件。

hoj,linux运维,腾讯云,c++,java,python

hoj,linux运维,腾讯云,c++,java,python

二、文件上传(用于样例较多,或已经有单独题面和测试数据包)

对于普通题目,测试用例文件包括inoutanstxt四种扩展名

例如有两组测试用例,则对于普通题目测试用例的文件名分别为*.in, *.out(*.ans),或者*input*.txt, *output*.txt ,其他形式的文件后台均不识别。

压缩时,请将文件都放在压缩包的根目录,而不是包含在某一个文件夹中,比如正确的格式是:

├── 1.in          
├── 1.out
├── 2.in
├── 2.out

 然后压缩测试用例到一个zip中

注意:不要在这些文件外面套多一层文件夹,请全选.in和.out文件,右键 添加压缩文件, 直接压缩。

建议:尽量减少测试用例组数,这会一定程度上提高判题性能。日常练习测试样例在精不在多

hoj,linux运维,腾讯云,c++,java,python

七、修改题目难度-简单 中等 困难

题目管理 — 题目列表

hoj,linux运维,腾讯云,c++,java,python

hoj,linux运维,腾讯云,c++,java,python

八、添加选择题和判断题

oj是代码的自动评测,还无法实现选择题和判断题的评测,变通方式如下:

hoj,linux运维,腾讯云,c++,java,python

hoj,linux运维,腾讯云,c++,java,python

训练题单

hoj,linux运维,腾讯云,c++,java,python

训练分为公开训练私有训练,同时可自定义训练分类

两种训练其实都是题单功能,区别在于私有训练拥有记录榜单

1. 公开训练

  • 管理员可在后台添加公开权限的题目,同时能对题目进行排序。
  • 题目的所有用户提交情况以及用户自身对该题目的提交情况与题目列表的题目数据同步。
  • hoj,linux运维,腾讯云,c++,java,python

  • hoj,linux运维,腾讯云,c++,java,python

2. 私有训练

  • 管理员可在后台添加公开权限的题目,同时能对题目进行排序。
  • 题目的所有用户提交情况以及用户自身对该题目的提交情况与题目列表的题目数据同步。

公开训练的区别:

  • 非训练创建者和超级管理员访问私有训练需要对应的密码。
  • 超级管理员与训练创建者的题目提交情况不会计入记录榜单
  • 系统会同步普通用户对应训练题目的提交情况,生成对应的记录榜单。
  • 用户在进入私有训练后,只有在训练里面的题目提交,记录榜单才会继续更新记录。
  • 私有训练的做题记录和评测记录在主题库不体现,实现题目保密和用户数据隔离。

系统同步用户对应题目数据的情况如下:

  • 后台管理员增加新的题目,系统会同步训练已成功访问的所有用户对应新题目的提交情况。
  • 后台管理员移除题目,系统会删除对应题目的榜单记录。
  • hoj,linux运维,腾讯云,c++,java,python

 用于留课后作业 可以方便看到每位学员题目完成情况。

 创建比赛

一、ACM 比赛模式

该模式是按照ACM-ICPC的比赛规则来进行,Contest设置项中的Seal Time Rank即为是否封榜,封榜后将不再刷新排名。可选择比赛结束前半小时,比赛前一小时,比赛全程封榜。

如果开启封榜,则封榜期间的角色不同如下:

  1. 封榜期间,超级管理员与比赛创建者不受影响,正常可查看题目统计数据,提交数据等,排行榜需自行开启强制刷新,同时提交结果可以及时看到评测结果,但不会纳入排行榜!
  2. 封榜期间,普通用户与非比赛创建者(包括其它管理员角色),可以及时看到自己的提交结果,但不可看到别人封榜后的提交,不能看到题目的统计情况,排行榜保持封榜前的排名数据。

注意:比赛一结束,默认所有数据变成正常显示,但后台可以设置比赛结束继续封榜!

hoj,linux运维,腾讯云,c++,java,python

hoj,linux运维,腾讯云,c++,java,python

hoj,linux运维,腾讯云,c++,java,python

打星用户:不参与比赛排名。

二、OI 比赛模式

在OI模式下,选手的提交将根据得分点来计分,多次提交以最后一次提交或选择以最高得分的提交)为准,排名规则为多个题目的总分数。同样可以进行封榜操作,封榜时段,选手不能查看到实时的排行榜数据!

比赛一结束,默认所有数据变成正常显示,但后台可以设置比赛结束继续封榜!

比赛权限

  • 公开赛:所有用户都可以查看比赛详情、比赛题目、比赛提交,比赛排行榜、比赛讨论等,且都可以在比赛阶段随时提交。
  • 保护赛:所有用户都可以查看比赛详情、比赛题目、比赛提交,比赛排行榜、比赛讨论等,但在比赛阶段提交需要提供该比赛的密码!
  • 私有赛:仅支持有比赛密码的用户进入比赛,查看查看比赛详情、比赛题目、比赛提交,比赛排行榜、比赛讨论等,包括提交。

 后台比赛题目列表管理页面如下:

hoj,linux运维,腾讯云,c++,java,python

教师在从公共题库中选择题目当作比赛题目时需要注意:大部分题目均 题解AC程序”,从公共题库选择后需要修改题目:

操作如下:先将选手程序前面的对勾 点取消,待比赛结束后,再勾选恢复。

hoj,linux运维,腾讯云,c++,java,python

三、查询和导出比赛成绩排名

比赛结束后,可以 csv 电子表格 格式导出比赛成绩和 图片形式 保存榜单。

hoj,linux运维,腾讯云,c++,java,python

hoj,linux运维,腾讯云,c++,java,python

hoj,linux运维,腾讯云,c++,java,python

深绿色为运行用时最短的记录。

hoj,linux运维,腾讯云,c++,java,python

团队功能-班级

        团队可以看做是一个独立的小OJ,里面包含了现有OJ的题目、训练、比赛、评测、讨论、公告、排名等功能,其中各个团队的数据与OJ主站的数据 完全隔离,各个团队可以自定义属于自己的题目、比赛、训练等,支持团队中的题目申请公开到主题库。

团队分为公开团队、保护团队、私有团队

  • 公开团队:加入无需申请
  • 保护团队:加入需要申请
  • 私有团队: 需要邀请码才能申请加入

一、创建团队

hoj,linux运维,腾讯云,c++,java,python

以下限制只对 非 普通管理员、题目管理员、超级管理员的普通用户:

  • 每个用户创建团队的前提为通过20道题目

  • 每个用户每天可以创建的团队数量为2

  • 每个用户总共可以创建的团队数量为5

  • 以上数据为默认数量,可以通过开关设置修改,甚至禁止普通用户创建团队。

  • hoj,linux运维,腾讯云,c++,java,python

    用户在登录之后,便可以创建团队

  • hoj,linux运维,腾讯云,c++,java,python

    输入团队的名称、简称、简介、描述,选择权限和是否显示即可创建属于自己的团队
  • hoj,linux运维,腾讯云,c++,java,python

    二、加入团队

    管理员把 团队名称 告诉用户,用户登录后,点击指定的团队进入团队主页,点击右侧的申请加入即可加入团队。

  • 对于公开团队是直接加入,无需团队管理员审批!
  • 对于保护团队需要输入加入理由,等待团队管理员审批!
  • 对于私有团队需要输入正确的邀请码和加入理由,等待团队管理员审批!

    三、管理团队

团队角色分为:

  1. 申请中
  2. 申请被拒绝
  3. 普通成员
  4. 管理员
  5. 超级管理员(创建团队的Owner也是超管)

注意:主站的超级管理员与创建团队的Owner拥有同等最高权限,拥有解散团队的权限

  • 在团队比赛中:比赛创建者、团队超管、主站超管不纳入排行榜计算
  • 在私有训练中:比赛创建者、团队超管、主站超管不纳入记录榜单计算
  • 在团队信息中:团队Owner、主站超管才可以更新团队信息
  • 团队管理员、团队超级管理员、主站超管可以管理题目、管理训练、管理比赛、管理公告
  • 团队管理员、团队超级管理员、主站超管可以点击团队内的题目管理,选择需要公开到主站题库的团队题目,点击申请即可。申请后,会发消息告知主站的超级管理员和题目管理员对题目进行审批,管理员则可以在后台进行审批,审批通过的团队题目则会加入到主题库中。
  • 团队题目的统计数据、用户的提交数据在团队内和主站中的数据是隔离的!

四、团队中添加训练(从公共题库或者团队题库添加题目)

hoj,linux运维,腾讯云,c++,java,python找到创建的 训练 ,点右侧 查看训练题目列表

hoj,linux运维,腾讯云,c++,java,python

点击 从公共题库添加题目 或者   从团队题库添加题目

hoj,linux运维,腾讯云,c++,java,python

hoj,linux运维,腾讯云,c++,java,python

hoj,linux运维,腾讯云,c++,java,python

通知和公告发布

  1. 通知和公告都仅有超级管理员可操作
  2. 通知是系统消息通知,每个小时推送一次到用户的站内消息系统

hoj,linux运维,腾讯云,c++,java,python

hoj,linux运维,腾讯云,c++,java,python

直接操作数据库

OJ使用mysql数据库,部署时为了避免工具扫描破解已经修改端口,账户密码已经二开双重加密。

一、安装Navicat 连接数据库

Navicat 16.0破解版下载https://download.csdn.net/download/abilix_tony/88557544

hoj,linux运维,腾讯云,c++,java,python

hoj,linux运维,腾讯云,c++,java,python

hoj,linux运维,腾讯云,c++,java,python

二、数据库图形化操作

1、批量隐藏题目

修改 auth 字段 1 公开题目    2 私有(隐藏)题目   3 比赛题目   添加道比赛中 自动修改比赛题目

hoj,linux运维,腾讯云,c++,java,python

hoj,linux运维,腾讯云,c++,java,python

2、修改难度等级

修改 difficulty 字段 0 简单    1  中等   2 困难    根据题目前缀 或者题号范围  筛选后 批量修改。

需要get的技能 

1、查看学员提交代码

入 首页 ,点击 评测,点击 C++ / python 语言栏即可查看 学员提交的代码及测试点正确/错误情况 (OI题目) 包含编译错误,方便教师答疑。如果修改了题目测试点,可以点击 重新 进行对此代码重新评测。

hoj,linux运维,腾讯云,c++,java,python

 学员可以选择 “ 我的” 只查看自己提交代码通过情况。 管理员可以 筛选 题目ID 或者 输入学生用户名,只查看某位学员评测情况。

2、训练题单给学员布置作业

hoj,linux运维,腾讯云,c++,java,python

hoj,linux运维,腾讯云,c++,java,python

 把上方地址栏里面生成的链接 复制粘贴给学员。

推荐:根据 作业内容班级 日期 建立 私有训练,方便检查作业和统计排名。

hoj,linux运维,腾讯云,c++,java,python

hoj,linux运维,腾讯云,c++,java,python

3、撤销作弊记录

hoj,linux运维,腾讯云,c++,java,python

hoj,linux运维,腾讯云,c++,java,python

4、查看未通过测试点、下载评测数据

如果有题目 部分通过 或者 超时 点开提交页面的 结果  就可以看到哪些测试点没有通过。

hoj,linux运维,腾讯云,c++,java,python

管理员权限账号 进入后台管理 -题目管理-题目列表  输入题号或者题目名称(支持模糊查询)

找到题目, 点击 中间图标  下载评测数据压缩包  解压缩  找到未通过的的评测点 选择 记事本 打开。

hoj,linux运维,腾讯云,c++,java,python

hoj,linux运维,腾讯云,c++,java,python

hoj,linux运维,腾讯云,c++,java,python

hoj,linux运维,腾讯云,c++,java,python

5、怎么设置自己的域名 页脚悬挂备案号?

购买域名并备案:
https://cloud.tencent.com/act/pro/domain-sales  域名购买
https://blog.csdn.net/abilix_tony/article/details/125186392?spm=1001.2014.3001.5501 域名备案指南

备案通过后 管理后台 填写域名信息和查询地址  https://beian.miit.gov.cn/

hoj,linux运维,腾讯云,c++,java,python

hoj,linux运维,腾讯云,c++,java,python

6、怎么开通https 安全访问?

https 安全访问 (必须有域名会后才能申请   大部分客户不需要https加密功能 ) 需要SSL证书 。申请 地址 :https://cloud.tencent.com/document/product/400/6814

填写信息后 审核通过后  下载Nginx (适用大部分场景)(pem文件、crt文件、key文件)证书,交给我们安装部署证书到服务器上。

7、在线编辑器的注释快捷键 ?

devC++ 批量注释 选中要注释的代码  Ctrl+/    ,    在线编辑器没有   可以单行 // 或者/*  */

8、 常用的链接能否加上?

常用的链接,可以添加公告里面,比如一些常用软件的下载地址。

9、排名是什么意思? 为啥分acm和OI?题目难度如何设置?

ACM排名 是AC数量排名  OI排名 是题目得分排名   OI类型 题目 AC(Partial Accepted),PA(Partial Accepted)得不同分值。刷难度高的题目 AC分值会高一些。

AC 100分,得分计算公式:10(0.1*分数+2*难度)

hoj,linux运维,腾讯云,c++,java,python

如何设置题目为ACM或者OI模式   题目管理   题目列表  编辑题目  页面中部  

hoj,linux运维,腾讯云,c++,java,python

hoj,linux运维,腾讯云,c++,java,python
10、团队的作用是啥? 布置作业

类似班级的功能 。 每个团队都是独立的OJ  独立题库、训练、排名和记载评测记录。添加到训练的题目可以从公共题库添加也可以团队管理成员录入题目。
 实现班级间的数据隔离或者老师团队的信息隔离, 如果一个校区建一个团队 类似分校区功能。

hoj,linux运维,腾讯云,c++,java,python

根据学生班级建立不同的团队,团队名称对应班级。

团队里面建训练,训练名称可以是作业的日期或者知识点名字,设置成私有训练,这样实现作业区分。

或者直接在主OJ里面设置私有训练,不同班级密码不同,很方便查看作业完成情况。

11、自动生成的默认用户的密码是什么?  

随机的MD5值,仍是未解之谜。 管理员可以修改成学生的账号  建议实名方便管理, 密码改简单一些,学生登录后在设置中自己修改。

12、查看学员做题进度和已经通过的题目

hoj,linux运维,腾讯云,c++,java,python

hoj,linux运维,腾讯云,c++,java,python

13、学员头衔激励刷题如何操作?

hoj,linux运维,腾讯云,c++,java,python

hoj,linux运维,腾讯云,c++,java,python

后面的星标是复制粘贴的, 头衔颜色越深等级越高,感觉越高级,最高纯黑。
头衔参考:后面分值是AC过题数,每月动态调整。
或者参考洛谷的咕值:AC题目数量除以10取整。

hoj,linux运维,腾讯云,c++,java,python

hoj,linux运维,腾讯云,c++,java,python

14、题目上传pdf讲义 视频题解

题目管理-题目编辑   支持pdf 视频 可以通过浏览器直接播放预览,其他格式需要下载本地。

hoj,linux运维,腾讯云,c++,java,python

15、添加到比赛的题目,比赛后去哪儿了?

题库题目添加到比赛中,题目状态自动由 公开题目 改成 比赛题目 ,在题目列表和搜索过程中会隐藏,保护比赛题目。比赛结束后 手动改成 比赛题目

题目管理 - 题目列表

hoj,linux运维,腾讯云,c++,java,python

16、应该给 老师 添加什么角色?

如果只需要添加修改题目,创建比赛,不需要维护学生名单,给 题目管理员 权限,

否则给  超级管理员 权限。

17、可否收米?

客户样例:

hoj,linux运维,腾讯云,c++,java,python

18、如何对学员分班级管理,查看题目的时候,按班级分类,查看完成作业情况?

团队就是班级功能,按班级建立团队,团队里面建训练 留作业,例如:C++算法提高班作业-10月28日-多重背包问题。
训练类型 设置为 私有训练 , 有 记录榜单 ,可以查看班级学员每道题目的完成情况。

hoj,linux运维,腾讯云,c++,java,python

常见问题处理

1、学校机房打不开OJ首页

学校机房使用电子书包或者防火墙禁网需要加入以下地址为白名单:
lf3-cdn-tos.bytecdntp.com
lf6-cdn-tos.bytecdntp.com
lf9-cdn-tos.bytecdntp.com
lf26-cdn-tos.bytecdntp.com

以上地址是OJ的js和css的CDN加速,目的是减轻服务器的带宽负担。

二开的5.0版本 已经弃用CDN加速方案,资源打包放在服务器上,首次访问加载较慢,以后秒开。

2、删除用户账号 提示 server error

学员发表了评论题解等,后台管理-讨论管理,搜学员名字  删除其讨论和题解。

学员账号可以禁用,不建议删除。

hoj,linux运维,腾讯云,c++,java,python

3、添加用户账号 提示server error

系统已经有相同用户名,使用之前的,还是确认重名,添加后缀。

 数据库关键表属性说明

hoj,linux运维,腾讯云,c++,java,python

hoj,linux运维,腾讯云,c++,java,python

hoj,linux运维,腾讯云,c++,java,python

hoj,linux运维,腾讯云,c++,java,python

hoj,linux运维,腾讯云,c++,java,python文章来源地址https://www.toymoban.com/news/detail-823340.html

problem表列值含义-方便数据库批量修改
hoj,linux运维,腾讯云,c++,java,python

到了这里,关于HOJ 系统常用功能介绍 OJ部署定制快速入门 c++ python Java编程在线自动评测判题 信息奥赛一本通 USACO G E S P 蓝桥 CSP NOIP 蓝桥等考题库 常见问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android 9.0 系统rom定制之user模式下解除系统进入recovery功能的限制

     在9.0的系统rom定制化开发中,系统中recovery模式功能也是很重要的一部分,而在原生系统中,对于debug模式的产品,可以通过电源键和音量+键进入recovery模式, 但是在user模式下的产品,对于通过这种方式,进入recovery模式就受限制了,防止用户无操作为了产品安全等,不让进

    2024年02月16日
    浏览(49)
  • 抖音短视频矩阵管理系统源码开发部署(开源定制)

      短视频矩阵管理系统是专门为企业号商家、普通号商家提供帐号运营从流量 到转化成交的一站式服务方案,具体包含:点赞关注评论主动私信 ,评论区回复,自动潜客户挖掘,矩阵号营销,自动化营销,粉丝 管理等功能,可以帮助企业或商家快速批量制作高质量短视频,

    2024年02月13日
    浏览(39)
  • VsCode新手必读:快速掌握最常用功能

    VsCode是一款由微软开发的免费开源的代码编辑器,支持多种编程语言,并提供丰富的功能和插件。VsCode的灵活性和可定制性使其成为许多开发者首选的开发工具。 VsCode可以在Windows、macOS和Linux上运行。 VsCode拥有丰富的插件库,包括代码片段、语法高亮、调试器等。 VsCode集成

    2024年02月03日
    浏览(40)
  • 抖音seo矩阵系统源码搭建技术+二开开源代码定制部署

     抖音SEO源码是指将抖音平台上的视频资源进行筛选、排序等操作,进而提升其在搜索排名中的权重,从而让更多的用户能够发现并观看到这些视频资源。而抖音SEO矩阵系统源码则是指通过建立一个分析系统,分析抖音中的用户、视频、标签等数据,并将这些数据进行综合分

    2024年02月16日
    浏览(41)
  • 【MyBatisPlus】快速入门、常用注解、常用配置

    🐌个人主页: 🐌 叶落闲庭 💨我的专栏:💨 c语言 数据结构 javaEE 操作系统 Redis 石可破也,而不可夺坚;丹可磨也,而不可夺赤。 MyBatisPlus官方提供了starter,其中集成了Mybatis和MybatisPlus的所有功能,并且实现了自动装配效果。 要操作的数据库表结构: Mybatis的UserMapper.java

    2024年02月07日
    浏览(38)
  • Jmeter常用功能-参数化介绍

    JMeter也有像LR中的参数化,本篇就来介绍下JMeter的参数化如何去实现。 参数化:录制脚本中有登录操作,需要输入用户名和密码,假如系统不允许相同的用户名和密码同时登录,或者想更好的模拟多个用户来登录系统。 这个时候就需要对用户名和密码进行参数化,使每个虚拟

    2024年02月12日
    浏览(39)
  • Android 10.0 SystemUI定制之通过系统属性控制锁屏页面通知栏显示与隐藏功能实现

    在10.0的系统产品开发中,在一些SystemUI的系统定制化开发中,在对锁屏页面的通知栏在某些情况下不需要显示通知栏,所以就需要 在systemui的通知栏布局页面中,通过属性来控制是否在锁屏页面的时候显示通知,具体就分析下systemui然后开发相关功能 在systemui系统中最主要的

    2024年02月04日
    浏览(58)
  • Vue快速入门,常用指令,生命周期

    Vue常用指令  案例:   Vue生命周期    

    2024年02月03日
    浏览(50)
  • 快速入门Linux 中的常用命令

    使用终端软件连接到Linux系统后会出现下面这样的 root 表示当前用户的用户名 iZbp1gjlzlb0uidsc2adxuZ 表示主机名 ~ 表示当前所在的目录,在Linux中表示home目录(用户数据存放的目录) #表示当前是管理员 $ 表示是普通用户 语法:ls [选项] [目录或文件] 功能:对于目录,该命令列出

    2024年02月16日
    浏览(42)
  • git快速入门!!! git的常用命令!!!

    Git 是一个开源的分布式版本控制系统,有很多实用的命令可以帮助我们更高效地管理项目和代码。以下是一些常用的 Git 命令及其使用方法和示例: 1. 初始化一个新的 Git 仓库 这个命令会在当前目录下创建一个新的 Git 仓库。 2. 添加文件到暂存区 这个命令会把指定的文件添

    2024年02月05日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包