diff --git a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/autoTools/AutoToolsController.java b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/autoTools/AutoToolsController.java index 9b3c7536..aaeb691c 100644 --- a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/autoTools/AutoToolsController.java +++ b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/autoTools/AutoToolsController.java @@ -18,6 +18,7 @@ import pc.exam.pp.module.exam.service.stuPaperScore.StuPaperScoreService; import pc.exam.pp.module.judgement.controller.admin.autoTools.vo.StuPaperReqVo; import pc.exam.pp.module.judgement.controller.admin.autoTools.vo.StuPaperScoreInfoVo; import pc.exam.pp.module.judgement.service.auto_tools.AutoToolsService; +import pc.exam.pp.module.judgement.service.c_programming.JudgementService; import pc.exam.pp.module.judgement.service.wps_excel.JudgementWpsExcelService; import pc.exam.pp.module.judgement.service.wps_pptx.JudgementWpsPptxService; import pc.exam.pp.module.judgement.service.wps_word.JudgementWpsWordService; @@ -48,28 +49,34 @@ public class AutoToolsController { @Resource private JudgementWpsExcelService judgementWpsExcelService; @Resource + private JudgementService judgementService; + @Resource IExamQuestionService examQuestionService; @GetMapping("/get") public CommonResult get(StuPaperReqVo stuPaperReqVo) throws Exception { return autoToolsService.judgementScore(stuPaperReqVo.getStuId(),stuPaperReqVo.getPaperId()); } +// @GetMapping("/getTest") +// public double gets(StuPaperReqVo stuPaperReqVo) throws Exception { +// ExamQuestion examQuestion = examQuestionService.selectExamQuestionByQuId(stuPaperReqVo.getPaperId()); +// return judgementWpsWordService.judgementWpsWord(15.0, "D:\\", "D:\\stu\\wps_word\\9f7d8f5d7c68cc2bfd03a23c19045efe7ba13a4bebeb833abece146908bcd0c6.docx", examQuestion); +// } +// @GetMapping("/getTests") +// public double getss(StuPaperReqVo stuPaperReqVo) throws Exception { +// ExamQuestion examQuestion = examQuestionService.selectExamQuestionByQuId(stuPaperReqVo.getPaperId()); +// return judgementWpsPptxService.judgementWpsPptx(15.0, "D:\\", "D:\\文档.pptx", examQuestion); +// } +// @GetMapping("/getTestss") +// public double getsss(StuPaperReqVo stuPaperReqVo) throws Exception { +// ExamQuestion examQuestion = examQuestionService.selectExamQuestionByQuId(stuPaperReqVo.getPaperId()); +// return judgementWpsExcelService.judgementWpsXlsx(15.0, "D:\\", "D:\\文档.xlsx", examQuestion); +// } @GetMapping("/getTest") public double gets(StuPaperReqVo stuPaperReqVo) throws Exception { ExamQuestion examQuestion = examQuestionService.selectExamQuestionByQuId(stuPaperReqVo.getPaperId()); - return judgementWpsWordService.judgementWpsWord(15.0, "D:\\", "D:\\stu\\wps_word\\9f7d8f5d7c68cc2bfd03a23c19045efe7ba13a4bebeb833abece146908bcd0c6.docx", examQuestion); + return judgementService.ProgrammingC(15.0, "D:\\", "C语言编程题.c", examQuestion); } - @GetMapping("/getTests") - public double getss(StuPaperReqVo stuPaperReqVo) throws Exception { - ExamQuestion examQuestion = examQuestionService.selectExamQuestionByQuId(stuPaperReqVo.getPaperId()); - return judgementWpsPptxService.judgementWpsPptx(15.0, "D:\\", "D:\\文档.pptx", examQuestion); - } - @GetMapping("/getTestss") - public double getsss(StuPaperReqVo stuPaperReqVo) throws Exception { - ExamQuestion examQuestion = examQuestionService.selectExamQuestionByQuId(stuPaperReqVo.getPaperId()); - return judgementWpsExcelService.judgementWpsXlsx(15.0, "D:\\", "D:\\文档.xlsx", examQuestion); - } - @GetMapping("/getStuScoreInfo") @Operation(summary = "通过学生ID、试卷ID获取") public CommonResult getStuScore(StuPaperReqVo stuPaperReqVo){ diff --git a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/service/auto_tools/AutoToolsServiceImpl.java b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/service/auto_tools/AutoToolsServiceImpl.java index e353bd90..df1daa12 100644 --- a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/service/auto_tools/AutoToolsServiceImpl.java +++ b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/service/auto_tools/AutoToolsServiceImpl.java @@ -326,31 +326,31 @@ public class AutoToolsServiceImpl implements AutoToolsService{ System.out.println(wps_word_score+"wps_word得分"); break; } -// if ("演示".equals(one_file.getName().split("\\.")[0])) { -// double wps_pptx_score = judgementWpsPptxService.judgementWpsPptx(15.0, one_file.getPath(), file_one.getPath(), examQuestion); -// score += wps_pptx_score; -// stuPaperScoreDO.setScore(new BigDecimal(wps_pptx_score)); -// // 原始正确分数 -// stuPaperScoreDO.setTrueScore(new BigDecimal("15.0")); -// // 判断题是否正确 -// if (wps_pptx_score == 15.0) { -// stuPaperScoreDO.setIsTrue(0); -// } else if (wps_pptx_score == 0) { -// stuPaperScoreDO.setIsTrue(1); -// } else { -// stuPaperScoreDO.setIsTrue(2); -// } -// stuPaperScoreDO.setSubjectName(examQuestion.getSubjectName()); -// if (isNull) { -// // 如果之前没做过,则插入该题的分数 -// stuPaperScoreService.insertStuPaperScore(stuPaperScoreDO); -// } else { -// // 如果之前做过,则更新该题的分数 -// stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO); -// } -// System.out.println(wps_pptx_score+"wps_ppt得分"); -// break; -// } + if ("演示".equals(one_file.getName().split("\\.")[0])) { + double wps_pptx_score = judgementWpsPptxService.judgementWpsPptx(15.0, one_file.getPath(), file_one.getPath(), examQuestion); + score += wps_pptx_score; + stuPaperScoreDO.setScore(new BigDecimal(wps_pptx_score)); + // 原始正确分数 + stuPaperScoreDO.setTrueScore(new BigDecimal("15.0")); + // 判断题是否正确 + if (wps_pptx_score == 15.0) { + stuPaperScoreDO.setIsTrue(0); + } else if (wps_pptx_score == 0) { + stuPaperScoreDO.setIsTrue(1); + } else { + stuPaperScoreDO.setIsTrue(2); + } + stuPaperScoreDO.setSubjectName(examQuestion.getSubjectName()); + if (isNull) { + // 如果之前没做过,则插入该题的分数 + stuPaperScoreService.insertStuPaperScore(stuPaperScoreDO); + } else { + // 如果之前做过,则更新该题的分数 + stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO); + } + System.out.println(wps_pptx_score+"wps_ppt得分"); + break; + } // if ("表格".equals(one_file.getName().split("\\.")[0])) { // double wps_excel_score = judgementWpsExcelService.judgementWpsXlsx(15.0, one_file.getPath(), file_one.getPath(), examQuestion); // score += wps_excel_score; @@ -433,36 +433,35 @@ public class AutoToolsServiceImpl implements AutoToolsService{ break; } -// if ("程序设计".equals(one_file.getName().split("\\.")[0])) { -// System.out.println(one_file); -// File mysql_file = new File(one_file.getPath()); -// double judgement = mysqlServerice.Judgement(20.0,mysql_file, examQuestion); -// score+=judgement; -// stuPaperScoreDO.setScore(new BigDecimal(judgement)); -// // 原始正确分数 -// stuPaperScoreDO.setTrueScore(new BigDecimal("15.0")); -// // 判断题是否正确 -// if (judgement == 20.0) { -// stuPaperScoreDO.setIsTrue(0); -// } else if (judgement == 0) { -// stuPaperScoreDO.setIsTrue(1); -// } else { -// stuPaperScoreDO.setIsTrue(2); -// } -// stuPaperScoreDO.setSubjectName(examQuestion.getSubjectName()); -// if (isNull) { -// // 如果之前没做过,则插入该题的分数 -// stuPaperScoreService.insertStuPaperScore(stuPaperScoreDO); -// } else { -// // 如果之前做过,则更新该题的分数 -// stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO); -// } -// System.out.println(judgement+"mysql得分"); -// break; -// } + if ("程序设计".equals(one_file.getName().split("\\.")[0])) { + System.out.println(one_file); + File mysql_file = new File(one_file.getPath()); + double judgement = mysqlServerice.Judgement(20.0,mysql_file, examQuestion); + score+=judgement; + stuPaperScoreDO.setScore(new BigDecimal(judgement)); + // 原始正确分数 + stuPaperScoreDO.setTrueScore(new BigDecimal("15.0")); + // 判断题是否正确 + if (judgement == 20.0) { + stuPaperScoreDO.setIsTrue(0); + } else if (judgement == 0) { + stuPaperScoreDO.setIsTrue(1); + } else { + stuPaperScoreDO.setIsTrue(2); + } + stuPaperScoreDO.setSubjectName(examQuestion.getSubjectName()); + if (isNull) { + // 如果之前没做过,则插入该题的分数 + stuPaperScoreService.insertStuPaperScore(stuPaperScoreDO); + } else { + // 如果之前做过,则更新该题的分数 + stuPaperScoreService.updateStuPaperScore(stuPaperScoreDO); + } + System.out.println(judgement+"mysql得分"); + break; + } } } - } } } @@ -479,7 +478,7 @@ public class AutoToolsServiceImpl implements AutoToolsService{ // end、删除文件 System.out.println(stuFilePath); zip_file.delete(); -// folder.delete(); + // folder.delete(); deleteFolder(folder); } BigDecimal bd = new BigDecimal(Double.toString(score)); diff --git a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/utils/JudgementCUtils.java b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/utils/JudgementCUtils.java index 3e0e79fe..26a03850 100644 --- a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/utils/JudgementCUtils.java +++ b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/utils/JudgementCUtils.java @@ -70,8 +70,10 @@ public class JudgementCUtils try { boolean hasInput = code.contains("scanf") || code.contains("fgets") || code.contains("getchar"); System.out.println(System.getenv("PATH")); - String programC = pathC + "/program.c"; - String programOut = pathC + "/program.out"; +// String[] programCList = pathC.split("\\\\"); + + String programC = pathC + "\\program.c"; + String programOut = pathC + "\\program.out"; // 写入 C 源码到文件 File file = new File(programC); try (FileWriter writer = new FileWriter(file)) {