ADD file via upload

main
pc9pizjb6 6 months ago
parent d21a7e7501
commit 2a96530624

@ -0,0 +1,163 @@
package com.studentmanagement.controller;
import com.studentmanagement.exception.DuplicateStudentException;
import com.studentmanagement.exception.StudentNotFoundException;
import com.studentmanagement.model.Student;
import com.studentmanagement.model.StudentDAO;
import com.studentmanagement.view.StudentView;
import java.util.List;
/**
*
*
*/
public class StudentController {
private StudentDAO studentDAO;
private StudentView studentView;
/**
*
* @param studentView
*/
public StudentController(StudentView studentView) {
this.studentDAO = StudentDAO.getInstance();
this.studentView = studentView;
}
/**
*
* @param student
*/
public void addStudent(Student student) {
try {
studentDAO.addStudent(student);
studentView.displaySuccessMessage("学生添加成功: " + student.getName());
} catch (DuplicateStudentException e) {
studentView.displayErrorMessage("学生添加失败: " + e.getMessage());
}
}
/**
*
*/
public void displayAllStudents() {
List<Student> students = studentDAO.getAllStudents();
studentView.displayStudentList(students);
}
/**
* ID
* @param id ID
*/
public void findStudentById(String id) {
try {
Student student = studentDAO.getStudentById(id);
studentView.displayStudentDetails(student);
} catch (StudentNotFoundException e) {
studentView.displayErrorMessage(e.getMessage());
}
}
/**
*
* @param student
*/
public void updateStudent(Student student) {
try {
studentDAO.updateStudent(student);
studentView.displaySuccessMessage("学生信息更新成功: " + student.getName());
} catch (StudentNotFoundException e) {
studentView.displayErrorMessage("学生更新失败: " + e.getMessage());
}
}
/**
*
* @param id ID
*/
public void deleteStudent(String id) {
try {
Student student = studentDAO.getStudentById(id);
studentDAO.deleteStudent(id);
studentView.displaySuccessMessage("学生删除成功: " + student.getName());
} catch (StudentNotFoundException e) {
studentView.displayErrorMessage("学生删除失败: " + e.getMessage());
}
}
/**
*
* @param course
*/
public void filterStudentsByCourse(String course) {
List<Student> students = studentDAO.getStudentsByCourse(course);
if (students.isEmpty()) {
studentView.displayErrorMessage("未找到选修课程'" + course + "'的学生");
} else {
studentView.displayFilteredStudents(students, "课程: " + course);
}
}
/**
*
* @param minGrade
* @param maxGrade
*/
public void filterStudentsByGradeRange(double minGrade, double maxGrade) {
List<Student> students = studentDAO.getStudentsByGradeRange(minGrade, maxGrade);
if (students.isEmpty()) {
studentView.displayErrorMessage("未找到成绩在" + minGrade + "-" + maxGrade + "范围内的学生");
} else {
studentView.displayFilteredStudents(students, "成绩范围: " + minGrade + "-" + maxGrade);
}
}
/**
*
* @param course
*/
public void calculateAverageGradeByCourse(String course) {
List<Student> students = studentDAO.getStudentsByCourse(course);
if (students.isEmpty()) {
studentView.displayErrorMessage("未找到选修课程'" + course + "'的学生");
return;
}
double sum = 0.0;
int count = 0;
for (Student student : students) {
Double grade = student.getCourseGrade(course);
if (grade != null) {
sum += grade;
count++;
}
}
if (count > 0) {
double average = sum / count;
studentView.displayStatistics("课程'" + course + "'的平均成绩: " + String.format("%.2f", average));
} else {
studentView.displayErrorMessage("无法计算课程'" + course + "'的平均成绩");
}
}
/**
*
*/
public void calculateAverageAge() {
List<Student> students = studentDAO.getAllStudents();
if (students.isEmpty()) {
studentView.displayErrorMessage("当前没有学生记录");
return;
}
int sum = 0;
for (Student student : students) {
sum += student.getAge();
}
double average = (double) sum / students.size();
studentView.displayStatistics("学生平均年龄: " + String.format("%.2f", average));
}
}
Loading…
Cancel
Save