20244225实验四《python程序设计》实验报告
课程:《Python程序设计》
班级: 2442
姓名: 孟雨欣
学号:20244225
实验教师:王志强
实验日期:2025年5月13日
必修/选修: 公选课
一、实验内容
- 数据模型:
创建Student类表示学生实体,包含学号、姓名、年龄和性别属性
使用字典存储学生信息,键为学号,值为Student对象实例
功能模块:
StudentManager类负责学生信息的增删改查操作
每个操作都有明确的返回值,便于处理结果反馈
用户界面:
使用简单的控制台菜单驱动界面
通过数字选择不同功能,提供清晰的操作指引
流程控制:
主程序使用无限循环保持运行状态
根据用户输入调用相应功能,处理无效输入情况
二、实验过程
![]()
![]()
实验代码:
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):
if student.student_id in self.students:
return False
self.students[student.student_id] = student
return True
def delete_student(self, student_id):
if student_id in self.students:
del self.students[student_id]
return True
return False
def update_student(self, student_id, name=None, age=None, gender=None):
if student_id not in self.students:
return False
student = self.students[student_id]
if name:
student.name = name
if age:
student.age = age
if gender:
student.gender = gender
return True
def query_student(self, student_id):
return self.students.get(student_id, None)
def list_all_students(self):
return list(self.students.values())
def main():
manager = StudentManager()
while True:
print("\n===== 学生信息管理系统 =====")
print("1. 添加学生")
print("2. 删除学生")
print("3. 修改学生信息")
print("4. 查询学生")
print("5. 显示所有学生")
print("0. 退出")
choice = input("请输入你的选择: ")
if choice == "1":
student_id = input("请输入学号: ")
name = input("请输入姓名: ")
age = input("请输入年龄: ")
gender = input("请输入性别: ")
student = Student(student_id, name, age, gender)
if manager.add_student(student):
print("添加成功")
else:
print("添加失败,学号已存在")
elif choice == "2":
student_id = input("请输入要删除的学号: ")
if manager.delete_student(student_id):
print("删除成功")
else:
print("删除失败,学号不存在")
elif choice == "3":
student_id = input("请输入要修改的学号: ")
name = input("请输入新姓名(不修改则留空): ")
age = input("请输入新年龄(不修改则留空): ")
gender = input("请输入新性别(不修改则留空): ")
if manager.update_student(student_id, name or None, age or None, gender or None):
print("修改成功")
else:
print("修改失败,学号不存在")
elif choice == "4":
student_id = input("请输入要查询的学号: ")
student = manager.query_student(student_id)
if student:
print(student)
else:
print("未找到该学生")
elif choice == "5":
students = manager.list_all_students()
if not students:
print("暂无学生信息")
else:
for student in students:
print(student)
elif choice == "0":
print("感谢使用,再见!")
break
else:
print("无效的选择,请重新输入")
if name == "main":
main()
三、实验结果
【HUAWEI – 结课作业.py 2025-05-13 19-16-54】https://www.bilibili.com/video/BV1ZPEFzxEY5?vd_source=fa34a2ec695c05d58a5212f59b7863c8
四、实验过程中遇到的问题和解决过程
• 问题1: 在设计实验时,遇到实验代码错误
问题描述:使用Pycharm进行检查,并请教同学,查找问题
五、其他(感悟、思考等)
- 首先,很高兴可以跟随王老师学习python的相关知识,初次接触《Python 程序设计》课程时,我对编程的认知仅停留在书本概念,怀揣着对未知领域的忐忑与期待,开启了这段充满挑战与惊喜的学习之旅。如今课程结束,回首这段历程,内心满是充实与感激,Python 不仅教会我编程技术,更重塑了我的思维方式与问题解决能力。
课程初期,Python 简洁优雅的语法让我耳目一新。相较于其他编程语言,Python 代码如同自然语言般直白易懂,缩进规则取代了繁杂的括号,让程序结构一目了然。在学习变量、数据类型与控制流语句时,我深刻体会到 Python “优雅而不失强大” 的设计理念。通过一个个简单的示例,如计算圆的面积、判断闰年等基础程序,我逐渐掌握了 Python 的基础语法,也明白了编程逻辑的重要性。 - 随着课程深入,函数、模块与类的概念纷至沓来,这是学习过程中最具挑战性的阶段。函数的封装思想,让我学会将复杂问题拆解为可复用的代码块;模块化编程则培养了我代码组织与管理的能力,使程序开发更具条理性。而面向对象编程(OOP)的引入,更是打开了新世界的大门。通过定义类与对象,将现实世界中的事物抽象为代码模型,这种思维转变让我对编程有了更深层次的理解。
3.最后,感谢王老师的一路陪伴与悉心教导
六、参考资料
《Python程序设计》
《Python 面向对象编程》
《Python 输入输出处理》



浙公网安备 33010602011771号