package com.studentmanagement.view; import com.studentmanagement.model.Student; import java.util.List; import java.util.Map; /** * 学生控制台视图类 * 实现StudentView接口,提供基于控制台的学生信息显示 */ public class StudentConsoleView implements StudentView { @Override public void displayStudentList(List students) { System.out.println("\n===== 学生列表 ====="); if (students.isEmpty()) { System.out.println("当前没有学生记录"); } else { System.out.printf("%-10s %-10s %-5s %-5s %-10s\n", "学号", "姓名", "年龄", "性别", "平均成绩"); System.out.println("------------------------------------------"); for (Student student : students) { System.out.printf("%-10s %-10s %-5d %-5s %-10.2f\n", student.getId(), student.getName(), student.getAge(), student.getGender(), student.calculateAverageGrade()); } } displaySeparator(); } @Override public void displayStudentDetails(Student student) { System.out.println("\n===== 学生详细信息 ====="); System.out.println("学号: " + student.getId()); System.out.println("姓名: " + student.getName()); System.out.println("年龄: " + student.getAge()); System.out.println("性别: " + student.getGender()); System.out.println("课程成绩:"); if (student.getCourseGrades().isEmpty()) { System.out.println(" 暂无成绩记录"); } else { for (Map.Entry entry : student.getCourseGrades().entrySet()) { System.out.printf(" %-10s: %.2f\n", entry.getKey(), entry.getValue()); } System.out.println("平均成绩: " + String.format("%.2f", student.calculateAverageGrade())); } displaySeparator(); } @Override public void displayFilteredStudents(List students, String filterCriteria) { System.out.println("\n===== 筛选结果 ====="); System.out.println("筛选条件: " + filterCriteria); displayStudentList(students); } @Override public void displaySuccessMessage(String message) { System.out.println("[成功] " + message); } @Override public void displayErrorMessage(String message) { System.out.println("[错误] " + message); } @Override public void displayStatistics(String statistics) { System.out.println("\n===== 统计信息 ====="); System.out.println(statistics); displaySeparator(); } @Override public void displayMainMenu() { displaySeparator(); System.out.println("学生管理系统"); displaySeparator(); System.out.println("1. 添加学生"); System.out.println("2. 查看所有学生"); System.out.println("3. 根据ID查找学生"); System.out.println("4. 更新学生信息"); System.out.println("5. 删除学生"); System.out.println("6. 根据课程筛选学生"); System.out.println("7. 根据成绩范围筛选学生"); System.out.println("8. 计算课程平均成绩"); System.out.println("9. 计算学生平均年龄"); System.out.println(0 + ". 退出系统"); displaySeparator(); System.out.print("请选择操作: "); } /** * 显示分隔线 */ private void displaySeparator() { System.out.println("------------------------------------------"); } /** * 显示等待提示 */ public void waitForEnter() { System.out.println("\n按Enter键继续..."); try { System.in.read(); } catch (Exception e) { // 忽略异常 } } }