用链式结构实现学生管理系统包括学生姓名,学号后四位,年龄,性别,三门课成绩,录入学生信息时能够不按照任何顺序进行录入代码
时间: 2024-11-09 18:28:23 浏览: 15
链式结构通常用于数据结构中,如链表,它能支持动态添加和删除元素,非常适合用来实现动态的学生管理系统。在这种情况下,我们可以设计一个Student节点类,包含学生的属性如姓名、学号后四位、年龄、性别以及成绩数组。下面是简化的Python示例代码:
```python
class StudentNode:
def __init__(self, name=None, last_four_id=None, age=None, gender=None, grades=None):
self.name = name
self.last_four_id = last_four_id
self.age = age
self.gender = gender
self.grades = grades if grades else [0] * 3 # 初始化为3门课程的成绩
def set_grade(self, course_index, grade): # 链式设置成绩
if course_index < len(self.grades):
self.grades[course_index] = grade
else:
print("错误:索引超出范围")
def update_info(self, name=None, last_four_id=None, age=None, gender=None):
if name is not None:
self.name = name
if last_four_id is not None:
self.last_four_id = last_four_id
if age is not None:
self.age = age
if gender is not None:
self.gender = gender
# 创建新学生并添加到链表
def add_student(student_list, **kwargs):
new_student = StudentNode(**kwargs)
student_list.append(new_student) # 使用列表作为简单版本的链表
return new_student
# 录入学生信息,非特定顺序
def input_student_info(student_list):
while True:
data = input("请输入学生信息(按'q'退出):")
if data.lower() == 'q':
break
key, value = data.split('=')
getattr(student_list[-1], 'update_info')(**{key.strip(): int(value.strip())}) # 设置属性值
# 示例链表
students = []
input_student_info(students)
# 显示学生信息
for i, student in enumerate(students):
print(f"学生{i+1}:")
for prop in ['姓名', '学号后四位', '年龄', '性别', '成绩']:
print(f"{prop}: {getattr(student, prop)}")
阅读全文