diff --git a/ConsoleStudentView.java b/ConsoleStudentView.java new file mode 100644 index 0000000..0224de7 --- /dev/null +++ b/ConsoleStudentView.java @@ -0,0 +1,101 @@ +package com.student.view; + +import com.student.model.Student; + +import java.util.List; +import java.util.Scanner; + +/** + * 控制台学生视图实现类,负责在命令行界面展示学生信息和获取用户输入 + */ +public class ConsoleStudentView implements StudentView { + private final Scanner scanner; + + /** + * 构造函数,初始化Scanner对象 + */ + public ConsoleStudentView() { + this.scanner = new Scanner(System.in); + } + + @Override + public void displayStudent(Student student) { + if (student != null) { + System.out.println("\n===== 学生信息 ====="); + System.out.println("ID: " + student.getId()); + System.out.println("姓名: " + student.getName()); + System.out.println("年龄: " + student.getAge()); + System.out.println("课程: " + student.getCourse()); + System.out.println("==================\n"); + } else { + System.out.println("未找到该学生信息"); + } + } + + @Override + public void displayAllStudents(List students) { + if (students.isEmpty()) { + System.out.println("当前没有学生信息"); + return; + } + + System.out.println("\n===== 所有学生信息 ====="); + System.out.printf("%-10s %-10s %-5s %-15s\n", "ID", "姓名", "年龄", "课程"); + System.out.println("----------------------------------------"); + for (Student student : students) { + System.out.printf("%-10s %-10s %-5d %-15s\n", + student.getId(), + student.getName(), + student.getAge(), + student.getCourse()); + } + System.out.println("========================================\n"); + } + + @Override + public void displayMessage(String message) { + System.out.println(message); + } + + @Override + public String getStudentIdInput() { + System.out.print("请输入学生ID: "); + return scanner.nextLine(); + } + + @Override + public Student getStudentInput() { + System.out.println("请输入学生信息:"); + System.out.print("ID: "); + String id = scanner.nextLine(); + System.out.print("姓名: "); + String name = scanner.nextLine(); + System.out.print("年龄: "); + int age = Integer.parseInt(scanner.nextLine()); + System.out.print("课程: "); + String course = scanner.nextLine(); + return new Student(id, name, age, course); + } + + @Override + public void displayMenu() { + System.out.println("\n===== 学生管理系统 ====="); + System.out.println("1. 添加学生"); + System.out.println("2. 查看所有学生"); + System.out.println("3. 查找学生"); + System.out.println("4. 更新学生信息"); + System.out.println("5. 删除学生"); + System.out.println("0. 退出系统"); + System.out.println("======================="); + } + + @Override + public int getMenuChoice() { + System.out.print("请选择操作 (0-5): "); + try { + return Integer.parseInt(scanner.nextLine()); + } catch (NumberFormatException e) { + return -1; // 无效输入 + } + } +} \ No newline at end of file