前言
💖💖作者:计算机程序员小杨 💙💙个人简介:我是一名计算机相关专业的从业者,擅长Java、微信小程序、Python、Golang、安卓Android等多个IT方向。会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。热爱技术,喜欢钻研新工具和框架,也乐于通过代码解决实际问题,大家有技术代码这一块的问题可以问我! 💛💛想说的话:感谢大家的关注与支持! 💕💕文末获取源码联系 计算机程序员小杨 💜💜 网站实战项目 安卓/小程序实战项目 大数据实战项目 深度学习实战项目 计算机毕业设计选题 💜💜
一.开发工具简介
后端开发语言:Java 后端框架:Spring Boot(Spring+SpringMVC+Mybatis) 前端:微信小程序 数据库:MySQL 系统架构:C/S 开发工具:微信小程序开发工具
二.系统内容简介
《学生评教小程序》是一个基于微信小程序的教学质量评价管理系统,采用Java语言结合Spring Boot框架构建后端服务,前端通过微信小程序提供便捷的移动端操作界面,数据存储使用MySQL数据库,整体架构采用客户端/服务器模式。系统围绕教学评价这一核心业务场景,构建了完整的评价管理生态,包含学生信息管理、教师信息管理、班级组织管理等基础数据管理模块,支持课程类型分类和课程信息的全面管理。系统的核心功能聚焦于教师评价和课程评价两个维度,通过标准化的试题库和问卷调查机制,为学生提供多样化的评价方式,同时建立了问卷调查记录的完整追踪体系。系统还集成了留言板功能,为师生之间搭建沟通桥梁,并配备了完善的系统管理功能,确保平台的稳定运行和数据安全。整个系统充分利用微信小程序的便民特性,让教学评价工作变得更加高效便捷,为提升教学质量管理水平提供了有力的技术支撑。
三.系统功能演示
四.系统界面展示
五.系统源码展示
import org.apache.spark.sql.SparkSession;
import org.springframework.web.bind.annotation.*;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.*;
import java.time.LocalDateTime;
@RestController
public class TeacherEvaluationController {
@Autowired
private TeacherEvaluationService evaluationService;
private SparkSession spark = SparkSession.builder()
.appName("StudentEvaluationSystem")
.master("local[*]")
.getOrCreate();
@PostMapping("/evaluation/submit")
public ResponseResult submitEvaluation(@RequestBody EvaluationRequest request) {
try {
EvaluationRecord record = new EvaluationRecord();
record.setStudentId(request.getStudentId());
record.setTeacherId(request.getTeacherId());
record.setCourseId(request.getCourseId());
record.setEvaluationTime(LocalDateTime.now());
record.setStatus("SUBMITTED");
List<EvaluationDetail> details = new ArrayList<>();
for (QuestionAnswer answer : request.getAnswers()) {
EvaluationDetail detail = new EvaluationDetail();
detail.setQuestionId(answer.getQuestionId());
detail.setScore(answer.getScore());
detail.setComment(answer.getComment());
detail.setWeight(getQuestionWeight(answer.getQuestionId()));
details.add(detail);
record.getDetails().add(detail);
}
double totalScore = calculateWeightedScore(details);
record.setTotalScore(totalScore);
record.setEvaluationLevel(determineEvaluationLevel(totalScore));
evaluationService.saveEvaluation(record);
updateTeacherStatistics(request.getTeacherId(), totalScore);
sendNotificationToTeacher(request.getTeacherId(), record);
return ResponseResult.success("评价提交成功");
} catch (Exception e) {
return ResponseResult.error("评价提交失败: " + e.getMessage());
}
}
@GetMapping("/survey/generate")
public ResponseResult generateSurvey(@RequestParam String courseType, @RequestParam String difficulty) {
try {
List<Question> questionPool = questionService.getQuestionsByType(courseType);
List<Question> selectedQuestions = new ArrayList<>();
Map<String, Integer> categoryCount = new HashMap<>();
categoryCount.put("TEACHING_METHOD", 3);
categoryCount.put("COURSE_CONTENT", 3);
categoryCount.put("INTERACTION", 2);
categoryCount.put("OVERALL", 2);
for (String category : categoryCount.keySet()) {
List<Question> categoryQuestions = questionPool.stream()
.filter(q -> q.getCategory().equals(category))
.filter(q -> q.getDifficulty().equals(difficulty))
.sorted((a, b) -> Double.compare(b.getUsageRate(), a.getUsageRate()))
.limit(categoryCount.get(category))
.collect(Collectors.toList());
selectedQuestions.addAll(categoryQuestions);
}
Collections.shuffle(selectedQuestions);
Survey survey = new Survey();
survey.setId(generateSurveyId());
survey.setCourseType(courseType);
survey.setDifficulty(difficulty);
survey.setQuestions(selectedQuestions);
survey.setCreateTime(LocalDateTime.now());
survey.setStatus("ACTIVE");
survey.setEstimatedDuration(selectedQuestions.size() * 30);
surveyService.saveSurvey(survey);
return ResponseResult.success(survey);
} catch (Exception e) {
return ResponseResult.error("问卷生成失败: " + e.getMessage());
}
}
@PostMapping("/course/evaluate")
public ResponseResult evaluateCourse(@RequestBody CourseEvaluationRequest request) {
try {
Course course = courseService.getCourseById(request.getCourseId());
if (course == null) {
return ResponseResult.error("课程信息不存在");
}
boolean hasEvaluated = courseEvaluationService.hasStudentEvaluated(
request.getStudentId(), request.getCourseId());
if (hasEvaluated) {
return ResponseResult.error("您已经评价过该课程");
}
CourseEvaluation evaluation = new CourseEvaluation();
evaluation.setStudentId(request.getStudentId());
evaluation.setCourseId(request.getCourseId());
evaluation.setEvaluationDate(LocalDateTime.now());
Map<String, Integer> scores = request.getScores();
evaluation.setContentQuality(scores.get("content"));
evaluation.setTeachingMethod(scores.get("method"));
evaluation.setCourseDifficulty(scores.get("difficulty"));
evaluation.setWorkloadRating(scores.get("workload"));
evaluation.setOverallSatisfaction(scores.get("overall"));
double averageScore = scores.values().stream()
.mapToInt(Integer::intValue)
.average()
.orElse(0.0);
evaluation.setAverageScore(averageScore);
evaluation.setRecommendation(averageScore >= 4.0 ? "RECOMMEND" :
averageScore >= 3.0 ? "NEUTRAL" : "NOT_RECOMMEND");
evaluation.setComment(request.getComment());
evaluation.setAnonymous(request.isAnonymous());
courseEvaluationService.saveEvaluation(evaluation);
updateCourseRating(request.getCourseId(), evaluation);
logEvaluationActivity(request.getStudentId(), "COURSE_EVALUATION", request.getCourseId());
return ResponseResult.success("课程评价提交成功");
} catch (Exception e) {
return ResponseResult.error("课程评价失败: " + e.getMessage());
}
}
}
六.系统文档展示
结束
💕💕文末获取源码联系 计算机程序员小杨