跳至主要內容

扩展思路

holic-x...大约 2 分钟

扩展思路

  • 提供在线测试接口(返回编译结果)
  • 沙箱模块引入自定义异常机制(自定义异常拦截过滤响应返回数据,处理沙箱响应信息)
  • 沙箱模块引入swagger、knife4j(便于在线调试沙箱接口):onlineRun

项目测试:

1.创建题目-输出两数之和

​ 设定题目基本信息、答案信息等

输出两数之和:

```java
public class Main {
    public static void main(String[] args) {
        int a = Integer.parseInt(args[0]);
        int b = Integer.parseInt(args[1]);
        System.out.println("结果:" + (a + b));
    }
}

```

​ 设定测试用例规则

输入用例:1 22 6

输出用例:3、8

每个输入用例和输出用例是对照的

2.创建题目-反转链表

​ 如果编译失败,则可将编译结果进行返回(例如引入在线调试接口等,返回相应的提示信息:编译、调试、输入测试用例等)

import java.util.*;
public class Main {


    public class ListNode {
        int val;
        ListNode next = null;

        public ListNode(int val) {
            this.val = val;
        }
    }

    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param head ListNode类 
     * @return ListNode类
     */
    public ListNode oddEvenList (ListNode head) {
        // write code here
        return null;
    }
}

编译成功 ExecuteMessage(exitValue=0, message=, errorMessage=null, time=274, memory=null) 运行失败,错误码: 1 ExecuteMessage(exitValue=1, message=, errorMessage=错误: 在类 Main 中找不到 main 方法, 请将 main 方法定义为: public static void main(String[] args) 否则 JavaFX 应用程序类必须扩展javafx.application.Application, time=34, memory=null) 删除成功 超时了,中断

参考功能说明:http://www.ikun-oj.top/view/question/1720794298284281858/description

题目描述、题解、提交记录(查看提交记录,显示提交信息)

运行:

public class Main {
    public static void main(String[] args) {
        int a = Integer.parseInt(args[0]);
        int b = Integer.parseInt(args[1]);
        System.out.println("结果:" + (a + b));
    }
}

Status:code为0正常响应。

status是判题响应状态 :参考QuestionSubmitStatusEnum

运行错误=》显示错误结果

image-20240510120451668

运行成功=》发送响应内容(提示错误信息等)

以两数之和题目为参考:

{
  "code": "",
  "judgeInfo": "",
  "language": "",
  "questionId": 1787049705855799298,
  "status": 0
}

响应数据:

{
  "code": 0,
  "data": {
    "outputList": [],
    "message": "错误: 找不到或无法加载主类 Main\n原因: java.lang.ClassNotFoundException: Main",
    "status": 3,
    "judgeInfo": {
      "message": null,
      "memory": null,
      "time": "0"
    }
  },
  "message": "ok"
}

项目扩展

1.代码提交

​ 代码提交后台实现思路:先生成提交记录,随后后台一步调用沙箱接口获取调试信息并生成调试结果

​ 如果前台需要查看答案:可以再次调用接口获取答案记录(例如用户已经提交了题目,则可点击答案选项卡获取答案信息)

​ 如果前台需要在线输入用例灵活调试:则可设定相应的测试用例,调用沙箱接口直接进行测试

评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v3.1.3