利用链表实现一个简单的学生信息管理系统: (1)学生信息包括学号、姓名,性别、年龄、电话号码、所学专业、班级等; (2)系统的主要功能包括:学生信息的创建、输出学生信息、查询学生信息、增加学生信息、删除学生信息。
时间: 2024-10-27 18:07:19 浏览: 50
利用链表实现一个简单的学生信息管理系统,我们可以设计如下的数据结构和功能:
1. **数据结构**:
- 使用单链表结构存储每个学生的信息,链表节点包含学生的各项属性,例如:
```python
class StudentNode:
def __init__(self, id, name, gender, age, phone, major, class_name):
self.id = id
self.name = name
self.gender = gender
self.age = age
self.phone = phone
self.major = major
self.class_name = class_name
self.next = None
```
2. **系统功能**:
- **添加学生信息**(Create): 创建一个新的学生节点并添加到链表的尾部。
- **输出学生信息**(Display): 遍历链表打印所有学生的详细信息。
- **查询学生信息**(Search): 根据学号或其他特定属性查找特定学生,如果没有找到则返回提示。
- **增加学生信息**(Update): 找到目标学生后更新其部分信息。
- **删除学生信息**(Delete): 删除指定学号的学生节点,注意保持链表的完整性。
```python
class StudentInfoManager:
def __init__(self):
self.head = None
# 添加学生信息
def add_student(self, id, name, ...):
new_node = StudentNode(id, name, ...)
if not self.head:
self.head = new_node
else:
current = self.head
while current.next:
current = current.next
current.next = new_node
# 输出学生信息
def display_students(self):
current = self.head
while current:
print(current.id, current.name, ..., current.class_name)
current = current.next
# 查询学生信息
def search_student(self, condition):
current = self.head
found = False
while current and not found:
if condition(current):
found = True
print(current.info())
else:
current = current.next
return "Student not found" if not found else ""
# 增加学生信息
def update_student(self, id, updated_fields):
current = self.head
while current and current.id != id:
current = current.next
if current:
for field, value in updated_fields.items():
setattr(current, field, value)
# 删除学生信息
def delete_student(self, id):
if not self.head:
return
if self.head.id == id:
self.head = self.head.next
return
prev, current = self.head, self.head.next
while current and current.id != id:
prev, current = current, current.next
if current:
prev.next = current.next
```
阅读全文