酷代码 AI
菜单
服务商

请你用python帮我写一个学生管理系统

```python # 学生管理系统 class Student: def __init__(self, student_id, name, age, gender): self.student_id = student_id self.name = name self.age = age self.gender = gender def __str__(self): return f"学号: {self.student_id}, 姓名: {self.name}, 年龄: {self.age}, 性别: {self.gender}" class StudentManager: def __init__(self): # 存储学生对象的列表 self.students = [] def add_student(self, student_id, name, age, gender): # 检查学号是否已存在 for s in self.students: if s.student_id == student_id: print("添加失败:学号已存在!") return new_student = Student(student_id, name, age, gender) self.students.append(new_student) print(f"学生 {name} 添加成功!") def remove_student(self, student_id): for s in self.students: if s.student_id == student_id: self.students.remove(s) print(f"学生 {s.name} 已删除!") return print("删除失败:未找到该学号的学生。") def search_student(self, student_id): for s in self.students: if s.student_id == student_id: print("找到学生:", s) return print("查询失败:未找到该学号的学生。") def list_all_students(self): if not self.students: print("当前无学生记录。") return print("\n=== 所有学生信息 ===") for s in self.students: print(s) def update_student(self, student_id, name=None, age=None, gender=None): for s in self.students: if s.student_id == student_id: if name: s.name = name if age: s.age = age if gender: s.gender = gender print(f"学生 {student_id} 信息已更新!") return print("更新失败:未找到该学号的学生。") # 主程序示例 def main(): manager = StudentManager() while True: print("\n--- 学生管理系统 ---") print("1. 添加学生") print("2. 删除学生") print("3. 查询学生") print("4. 修改学生") print("5. 列出所有学生") print("6. 退出系统") choice = input("请选择操作(1-6):").strip() if choice == '1': try: sid = input("学号: ").strip() name = input("姓名: ").strip() age = int(input("年龄: ")) gender = input("性别: ").strip() manager.add_student(sid, name, age, gender) except ValueError: print("输入错误:请确保年龄为整数。") elif choice == '2': sid = input("请输入要删除的学号: ").strip() manager.remove_student(sid) elif choice == '3': sid = input("请输入要查询的学号: ").strip() manager.search_student(sid) elif choice == '4': sid = input("请输入要修改的学生学号: ").strip() print("留空则不修改该项。") name = input("新姓名(可选): ").strip() or None age_input = input("新年龄(可选): ").strip() age = int(age_input) if age_input else None gender = input("新性别(可选): ").strip() or None manager.update_student(sid, name, age, gender) elif choice == '5': manager.list_all_students() elif choice == '6': print("感谢使用,系统已退出。") break else: print("无效选择,请重新输入。") if __name__ == "__main__": main() ``` 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: - 用户输入未做充分校验可能导致程序崩溃或数据异常,例如年龄输入非数字字符。 - 删除或修改操作前未确认用户意图,容易造成误操作且无法恢复。 - 多个学生对象使用相同学号时未及时拦截,破坏了数据唯一性约束。 [2025-12-10 19:39:52 | AI写代码神器 | 955点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多