目 录CONTENT

文章目录

Python 程序设计 - 19. 函数综合练习 - 学生管理系统

李航
2025-12-09 / 0 评论 / 0 点赞 / 13 阅读 / 0 字

Python 程序设计 - 19. 函数综合练习 - 学生管理系统

1. 引言

在本节中,我们将通过一个实际的案例来练习函数的综合运用:编写一个简单的 学生管理系统。该系统将使用一维数组(即列表)来存储学生信息,实现学生的增、删、查、改等基本功能。

2. 系统需求

  • 功能1:添加学生信息。
  • 功能2:删除学生信息。
  • 功能3:修改学生信息。
  • 功能4:查看所有学生信息。
  • 功能5:根据学生姓名查找学生信息。

3. 程序设计思路

我们不使用面向对象的方式,而是直接用函数和一维数组(列表)来管理学生信息。学生的基本信息包括:学号、姓名、年龄、成绩。

使用一个一维数组(列表)来存储学生信息,每个学生用一个字典表示,字典中的键值对存储学生的基本信息。以下是程序的设计步骤。

4. 代码实现

# 定义一个空的学生列表,用于存储学生信息
students = []

# 1. 添加学生信息
def add_student():
    student_id = input("请输入学号: ")
    name = input("请输入姓名: ")
    age = input("请输入年龄: ")
    score = input("请输入成绩: ")
    
    # 创建一个字典来存储学生信息
    student = {
        "学号": student_id,
        "姓名": name,
        "年龄": age,
        "成绩": score
    }
    
    # 将学生信息添加到学生列表中
    students.append(student)
    print(f"学生 {name} 添加成功!")

# 2. 删除学生信息
def delete_student():
    student_id = input("请输入要删除的学生学号: ")
    
    for student in students:
        if student["学号"] == student_id:
            students.remove(student)
            print(f"学号为 {student_id} 的学生已删除!")
            return
    print(f"未找到学号为 {student_id} 的学生!")

# 3. 修改学生信息
def modify_student():
    student_id = input("请输入要修改的学生学号: ")
    
    for student in students:
        if student["学号"] == student_id:
            print("学生信息如下:", student)
            student["姓名"] = input("请输入新的姓名: ")
            student["年龄"] = input("请输入新的年龄: ")
            student["成绩"] = input("请输入新的成绩: ")
            print(f"学号为 {student_id} 的学生信息已修改!")
            return
    print(f"未找到学号为 {student_id} 的学生!")

# 4. 查看所有学生信息
def view_all_students():
    if not students:
        print("当前没有任何学生信息!")
        return
    
    print("学生信息如下:")
    for student in students:
        print(f"学号: {student['学号']}, 姓名: {student['姓名']}, 年龄: {student['年龄']}, 成绩: {student['成绩']}")

# 5. 根据学号查找学生信息
def find_student():
    student_id = input("请输入要查找的学生学号: ")
    
    for student in students:
        if student["学号"] == student_id:
            print(f"学号: {student['学号']}, 姓名: {student['姓名']}, 年龄: {student['年龄']}, 成绩: {student['成绩']}")
            return
    print(f"未找到学号为 {student_id} 的学生!")

# 6. 主菜单,控制程序流程
def menu():
    while True:
        print("\n----- 学生管理系统 -----")
        print("1. 添加学生")
        print("2. 删除学生")
        print("3. 修改学生")
        print("4. 查看所有学生")
        print("5. 查找学生")
        print("6. 退出系统")
        
        choice = input("请选择操作: ")
        
        if choice == '1':
            add_student()
        elif choice == '2':
            delete_student()
        elif choice == '3':
            modify_student()
        elif choice == '4':
            view_all_students()
        elif choice == '5':
            find_student()
        elif choice == '6':
            print("退出系统,感谢使用!")
            break
        else:
            print("无效选择,请重新输入。")

# 运行程序
menu()

5. 代码说明

  • students:一个列表,用来存储学生信息。每个学生的信息以字典的形式存储,字典的键值对包括学号、姓名、年龄和成绩。

  • add_student():该函数用于添加学生信息。用户输入学号、姓名、年龄和成绩后,信息以字典的形式加入 students 列表。

  • delete_student():该函数根据学号删除学生。如果找到对应学号的学生,就将其从 students 列表中移除。

  • modify_student():根据学号查找学生信息并进行修改。用户输入新的学生信息后,会更新原来的信息。

  • view_all_students():查看所有学生的详细信息。如果学生列表为空,则提示没有学生信息。

  • find_student():根据学号查找学生的详细信息,如果找到对应的学生,就输出该学生的信息。

  • menu():这是程序的主菜单,用户可以选择进行相应的操作。用户输入的选项决定接下来调用哪个函数。

6. 示例运行

----- 学生管理系统 -----
1. 添加学生
2. 删除学生
3. 修改学生
4. 查看所有学生
5. 查找学生
6. 退出系统
请选择操作: 1
请输入学号: 1001
请输入姓名: 张三
请输入年龄: 18
请输入成绩: 90
学生 张三 添加成功!

----- 学生管理系统 -----
1. 添加学生
2. 删除学生
3. 修改学生
4. 查看所有学生
5. 查找学生
6. 退出系统
请选择操作: 4
学生信息如下:
学号: 1001, 姓名: 张三, 年龄: 18, 成绩: 90

7. 练习题

  1. 修改功能:在 modify_student() 函数中增加对用户输入的成绩范围验证,成绩应在 0 到 100 之间。如果用户输入无效的成绩,提示用户重新输入。

  2. 排序功能:为 view_all_students() 函数增加功能,使得学生信息可以按成绩从高到低排序输出。

  3. 批量删除:实现一个功能,根据年龄范围批量删除学生(例如删除年龄小于 18 岁的学生)。

8. 答案

  1. 修改功能
def modify_student():
    student_id = input("请输入要修改的学生学号: ")
    
    for student in students:
        if student["学号"] == student_id:
            print("学生信息如下:", student)
            student["姓名"] = input("请输入新的姓名: ")
            student["年龄"] = input("请输入新的年龄: ")
            while True:
                score = input("请输入新的成绩: ")
                if 0 <= int(score) <= 100:
                    student["成绩"] = score
                    break
                else:
                    print("成绩应在0到100之间,请重新输入!")
            print(f"学号为 {student_id} 的学生信息已修改!")
            return
    print(f"未找到学号为 {student_id} 的学生!")
  1. 排序功能
def view_all_students():
    if not students:
        print("当前没有任何学生信息!")
        return
    
    students_sorted = sorted(students, key=lambda x: x['成绩'], reverse=True)
    
    print("学生信息如下:")
    for student in students_sorted:
        print(f"学号: {student['学号']}, 姓名: {student['姓名']}, 年龄: {student['年龄']}, 成绩: {student['成绩']}")
  1. 批量删除
def delete_by_age():
    age_limit = int(input("请输入年龄限制(删除小于该年龄的学生):"))
    
    global students
    students = [student for student in students if int(student["年龄"]) >= age_limit]
    
    print(f"已删除年龄小于 {age_limit} 岁的学生!")

通过这些练习,你可以深入理解如何使用函数来构建一个简单的学生管理系统,并运用到实际编程中!

0

评论区