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() ``` 代码统计: - 总行数:105行(包含空行和注释) - 有效代码行:约85行 项目规模说明: 这个基础版本的学生管理系统包含: 1. 学生类定义(Student) 2. 管理类定义(StudentManager) 3. 完整的增删改查功能 4. 控制台交互界面 如需扩展功能(如文件存储、数据库连接、图形界面),代码量会增加至300-1000行。 ######[AI问答 | 1216点数解答 | 2025-12-11 17:48:04]
- Java JFrame 实现多界面跳转:含登录、注册及个人信息管理功能(讯飞星火 | 503点数解答 | 2024-06-06 23:49:29)400
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)469
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)352
- 工程师必备!10 种工程日常易用管理工具大揭秘(百度文心 | 346点数解答 | 2023-11-09 18:26:09)296
- Python 实战:学生信息列表转字典、遍历、深拷贝及数据修改全流程(GPT | 422点数解答 | 2024-10-29 15:43:54)426
- Python实战:学生成绩列表转字典,深拷贝与数据修改操作全解析(字节豆包 | 254点数解答 | 2024-10-29 16:01:39)417
- Golang开发:解析JSON数据时数值默认类型及示例解析(百度文心 | 393点数解答 | 2023-11-09 18:13:06)285
- SQL Working Areas Sizing: Manual vs. Automatic Policy - A Comprehensive Analysis(阿里通义 | 530点数解答 | 2024-05-13 10:55:58)313
- C++ 实现我的世界基岩版:从简单框架到开发要点揭秘(字节豆包 | 182点数解答 | 2025-02-22 15:53:11)202
- C++ 实现完整斗地主:含洗牌、发牌与手牌展示,可按需扩展!(字节豆包 | 1028点数解答 | 2026-01-10 08:02:37)40
- Java程序模拟教学选课:林老师开课,58 位学生选课男女比例大揭秘( | 2653点数解答 | 2024-04-02 11:00:16)475
- Java程序设计课程:模拟教学管理,统计58位选课学生男女比重( | 363点数解答 | 2024-04-05 18:31:39)480