用python编写一个简单的学生成绩管理程序,每个学生记录包含学号、姓名、课程和分数,采用顺序表储存,完成以下功能:1、屏幕显示所有学生记录2、输入两个学生记录3、按学号和课程删除一个学生记录
时间: 2024-09-14 22:03:47 浏览: 73
要使用Python编写一个简单的学生成绩管理程序,我们首先需要定义一个数据结构来存储学生记录。这里我们可以使用列表(list)来实现顺序表存储。每个学生记录可以是一个字典(dict),其中包含学号、姓名、课程和分数。下面是如何实现你所需功能的代码示例:
```python
# 定义学生记录的数据结构
def display_students(students):
"""屏幕显示所有学生记录"""
print("当前所有学生记录:")
for student in students:
print(f"学号: {student['学号']}, 姓名: {student['姓名']}, 课程: {student['课程']}, 分数: {student['分数']}")
def add_student(students):
"""输入两个学生记录"""
student1 = input("请输入第一个学生的学号、姓名、课程和分数,用空格分隔:")
student2 = input("请输入第二个学生的学号、姓名、课程和分数,用空格分隔:")
# 分割输入的字符串并转换为字典
student1_dict = dict(zip(['学号', '姓名', '课程', '分数'], student1.split()))
student2_dict = dict(zip(['学号', '姓名', '课程', '分数'], student2.split()))
students.append(student1_dict)
students.append(student2_dict)
def remove_student_by_id(students, student_id):
"""按学号删除一个学生记录"""
global removed
removed = False
students[:] = [student for student in students if student['学号'] != student_id]
if not removed:
print(f"没有找到学号为 {student_id} 的学生记录。")
def remove_student_by_course(students, course):
"""按课程删除一个学生记录"""
global removed
removed = False
students[:] = [student for student in students if student['课程'] != course]
if not removed:
print(f"没有找到课程为 {course} 的学生记录。")
# 初始化学生记录列表
students = []
# 添加两个学生记录
add_student(students)
# 显示所有学生记录
display_students(students)
# 删除学号为指定的学生记录
student_id_to_remove = input("请输入要按学号删除的学生学号:")
remove_student_by_id(students, student_id_to_remove)
# 删除课程为指定的学生记录
course_to_remove = input("请输入要按课程删除的课程名称:")
remove_student_by_course(students, course_to_remove)
# 再次显示所有学生记录,确认删除操作
display_students(students)
```
在这个程序中,我们定义了四个函数:`display_students` 用于显示所有学生记录,`add_student` 用于输入两个学生记录,`remove_student_by_id` 和 `remove_student_by_course` 分别用于按学号和课程删除学生记录。使用全局变量 `removed` 来标记是否成功删除记录,并在删除操作中通过列表推导式来过滤掉需要删除的记录。
请注意,这个程序是基于文本界面的,所有操作都需要通过控制台输入进行。此外,它仅提供了一个基础的框架,实际应用中可能需要更多的错误检查和异常处理来增强程序的健壮性。
阅读全文