请结合数据结构实现简单的学生信息管理,包括学生姓名,学号后四位,年龄,性别,三门课成绩,录入学生信息时能够不按照任何顺序进行录入,能够支持后续任意时刻的信息录入。成绩的录入要求能够按照学号顺序进行批量录入,并在录入时打印学生信息。要求按照链式结构实现。
时间: 2024-11-09 20:18:50 浏览: 6
学生信息管理系统,实现学生信息包括:学号、姓名、性别、年龄、班级等信息。
5星 · 资源好评率100%
为了实现一个学生信息管理系统,我们可以采用链表作为数据结构,链表允许动态添加和删除节点,非常适合这种需要插入和查询操作的情况。这里是一个简单的Python示例,使用链表来存储学生信息:
```python
class StudentNode:
def __init__(self, name, id, age, gender, grades):
self.name = name
self.id = id[-4:] # 只保留学号后四位
self.age = age
self.gender = gender
self.grades = grades
self.next = None
class StudentInfoManager:
def __init__(self):
self.head = None
def add_student(self, name, id, age, gender, grades):
new_node = StudentNode(name, id, age, gender, grades)
if not self.head:
self.head = new_node
else:
current = self.head
while current.next:
current = current.next
current.next = new_node
print(f"已添加学生信息:{new_node.name}, 学号:{new_node.id}")
def batch_add_students(self, students_data):
for data in students_data:
self.add_student(*data)
def display_student_info(self):
if not self.head:
print("当前无学生信息")
else:
current = self.head
while current:
print(f"姓名:{current.name}, 学号:{current.id}, 年龄:{current.age}, 性别:{current.gender}, 成绩:{current.grades}")
current = current.next
# 使用示例
manager = StudentInfoManager()
students_data = [
("张三", "100123", 18, "男", [85, 92, 90]),
("李四", "100456", 19, "女", [78, 88, 95])
]
manager.batch_add_students(students_data)
manager.display_student_info()
```
在这个例子中,我们首先创建了一个`StudentNode`类,它代表单个学生的信息并有一个指向下一个学生的指针。`StudentInfoManager`类维护了一个链表头节点,并提供添加单个学生、批量添加学生以及显示所有学生信息的方法。
阅读全文