20244225实验四《python程序设计》实验报告

课程:《Python程序设计》
班级: 2442
姓名: 孟雨欣
学号:20244225
实验教师:王志强
实验日期:2025年5月13日
必修/选修: 公选课

一、实验内容

  1. 数据模型:
    创建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进行检查,并请教同学,查找问题

五、其他(感悟、思考等)

  1. 首先,很高兴可以跟随王老师学习python的相关知识,初次接触《Python 程序设计》课程时,我对编程的认知仅停留在书本概念,怀揣着对未知领域的忐忑与期待,开启了这段充满挑战与惊喜的学习之旅。如今课程结束,回首这段历程,内心满是充实与感激,Python 不仅教会我编程技术,更重塑了我的思维方式与问题解决能力。​
    课程初期,Python 简洁优雅的语法让我耳目一新。相较于其他编程语言,Python 代码如同自然语言般直白易懂,缩进规则取代了繁杂的括号,让程序结构一目了然。在学习变量、数据类型与控制流语句时,我深刻体会到 Python “优雅而不失强大” 的设计理念。通过一个个简单的示例,如计算圆的面积、判断闰年等基础程序,我逐渐掌握了 Python 的基础语法,也明白了编程逻辑的重要性。
  2. 随着课程深入,函数、模块与类的概念纷至沓来,这是学习过程中最具挑战性的阶段。函数的封装思想,让我学会将复杂问题拆解为可复用的代码块;模块化编程则培养了我代码组织与管理的能力,使程序开发更具条理性。而面向对象编程(OOP)的引入,更是打开了新世界的大门。通过定义类与对象,将现实世界中的事物抽象为代码模型,这种思维转变让我对编程有了更深层次的理解。
    3.最后,感谢王老师的一路陪伴与悉心教导
    六、参考资料
    《Python程序设计》
    《Python 面向对象编程》
    《Python 输入输出处理》
posted @ 2025-05-13 20:22  孟雨欣  阅读(27)  评论(0)    收藏  举报