34 回答题目
测试中
POST
http://127.0.0.1:8000/home/<str:coursename>/<str:assignmentname>/submit/
OJ
作答str:assignmentname作业中相应id的作业,body含有两个字段,分别是'id'和'content_answer',id是作答题目的id可以从get中获得,content_answer是作答的信息
题目作答规则
答案均由"<-&&->"包裹
- 选择题作答规则,以多选a,c,e为例
content_answer应填"<-&a&-><-&c&-><-&e&->"
得到返回值id和题目的得分如:
{ "id": 2, "score": 5 }
- 简答题题作答规则,以多选a,b,c为例,第一个空的答案为“床前明月光”第二个空的答案为“疑是地上霜”
content_answer应填"<-&床前明月光&-><-&疑是地上霜&->"
得到返回值score和comment一般为null(在ai判题开发之前)
{ "id": 1, "score": null, "comment": null }
- 代码题的作答规则比较特殊,但是每个部分都由数个"<-&&->"包裹
具体来说,comment分为两个部分,语言选择块和代码块- 语言选择块由content_answer中第一个"<-&&->"构成,比如选择cpp则填"<-&cpp&->",选java则为"<-&java&->"(在所有"<-&&->"中只有第一个为语言选择块)
- 代码块紧跟在语言选择快之后,由于要实现多文件判题,每个代码块分为两个"<-&&->",第一个中填写文件名,第二中填写相应文件中代码内容,代码块个数没有限制
举一个具体的例子要提交三个文件:
//main.cpp
#include<iostream>
#include "header.h"
using namespace std;
int main(){
function();
cout<<"Hello World!"<<endl;
return 0;
}
//function.cpp
#include<iostream>
#include"header.h"
using namespace std;
void function(){
int a;
cin >> a;
cout << a << endl;
}
//header.h
void function();
我们的body需要这样填写:
{
"id":4,
"content_answer":"<-&cpp&-><-&main.cpp&-><-&#include<iostream>\n#include \"header.h\"\nusing namespace std;\nint main(){\nfunction();\ncout<<\"Hello World!\"<<endl;\nreturn 0;\n}&-><-&function.cpp&-><-&#include<iostream>\n#include\"header.h\"\nusing namespace std;\nvoid function(){\nint a;\ncin >> a;\ncout << a << endl;\n}&-><-&header.h&-><-&void function();&->"
}
得到的返回值:
{
"id": 4,
"score": 200,
"comment": "50 ms 200 KB Output true\n50 ms 200 KB Output true\n"
}
请求参数
Body 参数application/json
示例代码
返回响应
修改于 2024-03-22 14:14:02