import sys from datetime import date from typing import Optional from src.models.student import Student from src.bll.student_service import StudentService class ConsoleUI: def __init__(self, service: StudentService): self.service = service def run(self): while True: self._show_main_menu() choice = input("请选择操作: ").strip() if choice == "1": self._add_student() elif choice == "2": self._delete_student() elif choice == "3": self._update_student() elif choice == "4": self._query_students() elif choice == "5": self._show_statistics() elif choice == "6": self._data_import_export() elif choice == "7": self._clear_all_data() elif choice == "0": print("感谢使用学生信息管理系统,再见!") sys.exit(0) else: print("无效选择,请重新输入!") def _show_main_menu(self): print("\n" + "=" * 30) print("学生信息管理系统".center(26)) print("=" * 30) print("1. 添加学生信息") print("2. 删除学生信息") print("3. 更新学生信息") print("4. 查询学生信息") print("5. 统计分析") print("6. 数据导入导出") print("7. 清空所有学生信息") print("0. 退出系统") print("=" * 30) def _add_student(self): print("\n" + "=" * 30) print("添加学生信息".center(26)) print("=" * 30) student_data = {} student_data["name"] = input("姓名: ").strip() student_data["id_card"] = input("身份证号: ").strip() student_data["stu_id"] = input("学号: ").strip() # 其他可选字段输入... try: student = Student(**student_data) success, msg = self.service.add_student(student) print(msg) except Exception as e: print(f"添加失败: {str(e)}") # 其他UI方法...