一、个人简介
💖💖作者:计算机编程果茶熊 💙💙个人简介:曾长期从事计算机专业培训教学,担任过编程老师,同时本人也热爱上课教学,擅长Java、微信小程序、Python、Golang、安卓Android等多个IT方向。会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我! 💛💛想说的话:感谢大家的关注与支持! 💜💜 网站实战项目 安卓/小程序实战项目 大数据实战项目 计算机毕业设计选题 💕💕文末获取源码联系计算机编程果茶熊
二、系统介绍
开发语言:Java+Python 数据库:MySQL 系统架构:B/S 后端框架:SpringBoot(Spring+SpringMVC+Mybatis)+Django 前端:Vue+HTML+CSS+JavaScript+jQuery
JavaWeb精品课程网站是一个基于SpringBoot框架和Vue+ElementUI技术栈开发的综合性在线教育管理平台。该系统采用前后端分离的B/S架构设计,后端使用SpringBoot+SpringMVC+MyBatis技术栈,前端采用Vue.js框架结合ElementUI组件库构建用户界面,数据存储采用MySQL数据库。系统功能涵盖教师管理、学生管理、课程信息管理、课程分类管理、课程成绩管理、班级管理、选择课程管理、发布作业管理、完成作业管理、考试成绩管理、学习资料管理、资料分类管理、论坛分类管理、留言板管理等17个核心功能模块。系统支持教师发布课程内容、布置作业任务,学生在线选课学习、提交作业、参与讨论,管理员进行系统维护和数据管理等多角色操作。通过Vue组件化开发和ElementUI美观界面设计,为用户提供良好的交互体验,同时SpringBoot的快速开发特性和MyBatis的数据持久化能力确保系统的稳定性和可扩展性。
三、JavaWeb精品课程网站-视频解说
计算机毕设推荐JavaWeb精品课程网站Vue+ElementUI前端界面设计教程
四、JavaWeb精品课程网站-功能展示
五、JavaWeb精品课程网站-代码展示
import org.apache.spark.sql.SparkSession;
@RestController
@RequestMapping("/course")
public class CourseController {
@Autowired
private CourseService courseService;
@Autowired
private StudentService studentService;
@Autowired
private TeacherService teacherService;
@PostMapping("/select")
public ResponseEntity<Map<String, Object>> selectCourse(@RequestBody SelectCourseRequest request) {
SparkSession spark = SparkSession.builder().appName("CourseSelection").master("local").getOrCreate();
Map<String, Object> result = new HashMap<>();
try {
Student student = studentService.findById(request.getStudentId());
if (student == null) {
result.put("success", false);
result.put("message", "学生不存在");
return ResponseEntity.badRequest().body(result);
}
Course course = courseService.findById(request.getCourseId());
if (course == null) {
result.put("success", false);
result.put("message", "课程不存在");
return ResponseEntity.badRequest().body(result);
}
List<SelectCourse> existingSelections = courseService.findByStudentIdAndCourseId(request.getStudentId(), request.getCourseId());
if (!existingSelections.isEmpty()) {
result.put("success", false);
result.put("message", "您已选择该课程");
return ResponseEntity.badRequest().body(result);
}
int currentCount = courseService.countByCourseId(request.getCourseId());
if (currentCount >= course.getMaxStudents()) {
result.put("success", false);
result.put("message", "课程人数已满");
return ResponseEntity.badRequest().body(result);
}
SelectCourse selectCourse = new SelectCourse();
selectCourse.setStudentId(request.getStudentId());
selectCourse.setCourseId(request.getCourseId());
selectCourse.setSelectTime(new Date());
selectCourse.setStatus("已选择");
courseService.saveSelectCourse(selectCourse);
course.setCurrentStudents(currentCount + 1);
courseService.updateCourse(course);
result.put("success", true);
result.put("message", "选课成功");
result.put("data", selectCourse);
return ResponseEntity.ok(result);
} catch (Exception e) {
result.put("success", false);
result.put("message", "选课失败:" + e.getMessage());
return ResponseEntity.status(500).body(result);
} finally {
spark.stop();
}
}
@PostMapping("/assignment/submit")
public ResponseEntity<Map<String, Object>> submitAssignment(@RequestBody SubmitAssignmentRequest request) {
SparkSession spark = SparkSession.builder().appName("AssignmentSubmission").master("local").getOrCreate();
Map<String, Object> result = new HashMap<>();
try {
Assignment assignment = courseService.findAssignmentById(request.getAssignmentId());
if (assignment == null) {
result.put("success", false);
result.put("message", "作业不存在");
return ResponseEntity.badRequest().body(result);
}
if (new Date().after(assignment.getDeadline())) {
result.put("success", false);
result.put("message", "作业提交已截止");
return ResponseEntity.badRequest().body(result);
}
List<AssignmentSubmission> existingSubmissions = courseService.findSubmissionByStudentIdAndAssignmentId(request.getStudentId(), request.getAssignmentId());
AssignmentSubmission submission;
if (!existingSubmissions.isEmpty()) {
submission = existingSubmissions.get(0);
submission.setContent(request.getContent());
submission.setFilePath(request.getFilePath());
submission.setSubmitTime(new Date());
submission.setStatus("已重新提交");
} else {
submission = new AssignmentSubmission();
submission.setStudentId(request.getStudentId());
submission.setAssignmentId(request.getAssignmentId());
submission.setContent(request.getContent());
submission.setFilePath(request.getFilePath());
submission.setSubmitTime(new Date());
submission.setStatus("已提交");
}
courseService.saveAssignmentSubmission(submission);
Student student = studentService.findById(request.getStudentId());
String studentName = student != null ? student.getName() : "未知学生";
AssignmentSubmissionLog log = new AssignmentSubmissionLog();
log.setAssignmentId(request.getAssignmentId());
log.setStudentId(request.getStudentId());
log.setStudentName(studentName);
log.setSubmitTime(new Date());
log.setOperation("提交作业");
courseService.saveSubmissionLog(log);
result.put("success", true);
result.put("message", "作业提交成功");
result.put("data", submission);
return ResponseEntity.ok(result);
} catch (Exception e) {
result.put("success", false);
result.put("message", "作业提交失败:" + e.getMessage());
return ResponseEntity.status(500).body(result);
} finally {
spark.stop();
}
}
@PostMapping("/grade/calculate")
public ResponseEntity<Map<String, Object>> calculateGrade(@RequestBody GradeCalculationRequest request) {
SparkSession spark = SparkSession.builder().appName("GradeCalculation").master("local").getOrCreate();
Map<String, Object> result = new HashMap<>();
try {
Course course = courseService.findById(request.getCourseId());
if (course == null) {
result.put("success", false);
result.put("message", "课程不存在");
return ResponseEntity.badRequest().body(result);
}
List<AssignmentSubmission> assignments = courseService.findSubmissionsByStudentIdAndCourseId(request.getStudentId(), request.getCourseId());
List<ExamResult> examResults = courseService.findExamResultsByStudentIdAndCourseId(request.getStudentId(), request.getCourseId());
if (assignments.isEmpty() && examResults.isEmpty()) {
result.put("success", false);
result.put("message", "暂无成绩数据");
return ResponseEntity.badRequest().body(result);
}
double assignmentScore = 0;
int assignmentCount = 0;
for (AssignmentSubmission assignment : assignments) {
if (assignment.getScore() != null && assignment.getScore() > 0) {
assignmentScore += assignment.getScore();
assignmentCount++;
}
}
double avgAssignmentScore = assignmentCount > 0 ? assignmentScore / assignmentCount : 0;
double examScore = 0;
int examCount = 0;
for (ExamResult exam : examResults) {
if (exam.getScore() != null && exam.getScore() > 0) {
examScore += exam.getScore();
examCount++;
}
}
double avgExamScore = examCount > 0 ? examScore / examCount : 0;
double finalScore = avgAssignmentScore * 0.4 + avgExamScore * 0.6;
String grade = calculateLetterGrade(finalScore);
CourseGrade courseGrade = courseService.findGradeByStudentIdAndCourseId(request.getStudentId(), request.getCourseId());
if (courseGrade == null) {
courseGrade = new CourseGrade();
courseGrade.setStudentId(request.getStudentId());
courseGrade.setCourseId(request.getCourseId());
}
courseGrade.setAssignmentScore(avgAssignmentScore);
courseGrade.setExamScore(avgExamScore);
courseGrade.setFinalScore(finalScore);
courseGrade.setGrade(grade);
courseGrade.setUpdateTime(new Date());
courseService.saveCourseGrade(courseGrade);
result.put("success", true);
result.put("message", "成绩计算完成");
result.put("data", courseGrade);
return ResponseEntity.ok(result);
} catch (Exception e) {
result.put("success", false);
result.put("message", "成绩计算失败:" + e.getMessage());
return ResponseEntity.status(500).body(result);
} finally {
spark.stop();
}
}
private String calculateLetterGrade(double score) {
if (score >= 90) return "A";
else if (score >= 80) return "B";
else if (score >= 70) return "C";
else if (score >= 60) return "D";
else return "F";
}
}
六、JavaWeb精品课程网站-文档展示
七、END
💕💕文末获取源码联系计算机编程果茶熊