输入学习信息,学号为0作为结束标志,建立其对应的线性表并输出数据,实现增,删,改,查的基本功能。用线性表顺序存储结构实现
时间: 2023-10-01 14:11:25 浏览: 108
好的,以下是基于线性表顺序存储结构的Python代码实现:
```python
class Student:
def __init__(self, sno, name, major):
self.sno = sno
self.name = name
self.major = major
class StudentList:
def __init__(self):
self.data = []
def append(self, student):
self.data.append(student)
def insert(self, index, student):
self.data.insert(index, student)
def delete(self, index):
del self.data[index]
def update(self, index, student):
self.data[index] = student
def search(self, sno):
for student in self.data:
if student.sno == sno:
return student
return None
def print(self):
for student in self.data:
print("学号: %s, 姓名: %s, 专业: %s" % (student.sno, student.name, student.major))
# 创建一个学生列表
studentList = StudentList()
# 输入学生信息
while True:
sno = input("请输入学号: ")
if sno == '0':
break
name = input("请输入姓名: ")
major = input("请输入专业: ")
student = Student(sno, name, major)
studentList.append(student)
# 输出学生列表
print("初始学生列表:")
studentList.print()
# 增加一个学生
newStudent = Student('001', '小明', '计算机科学')
studentList.insert(1, newStudent)
print("增加一个学生后的学生列表:")
studentList.print()
# 删除一个学生
studentList.delete(2)
print("删除一个学生后的学生列表:")
studentList.print()
# 修改一个学生
updateStudent = Student('002', '小红', '软件工程')
studentList.update(0, updateStudent)
print("修改一个学生后的学生列表:")
studentList.print()
# 查找一个学生
searchStudent = studentList.search('003')
if searchStudent:
print("找到了该学生,信息如下:")
print("学号: %s, 姓名: %s, 专业: %s" % (searchStudent.sno, searchStudent.name, searchStudent.major))
else:
print("没有找到该学生")
```
运行代码,可以看到输出结果如下:
```
请输入学号: 001
请输入姓名: 小明
请输入专业: 计算机科学
请输入学号: 002
请输入姓名: 小红
请输入专业: 软件工程
请输入学号: 003
请输入姓名: 小刚
请输入专业: 通信工程
请输入学号: 0
初始学生列表:
学号: 001, 姓名: 小明, 专业: 计算机科学
学号: 002, 姓名: 小红, 专业: 软件工程
学号: 003, 姓名: 小刚, 专业: 通信工程
增加一个学生后的学生列表:
学号: 001, 姓名: 小明, 专业: 计算机科学
学号: 001, 姓名: 小明, 专业: 计算机科学
学号: 002, 姓名: 小红, 专业: 软件工程
学号: 003, 姓名: 小刚, 专业: 通信工程
删除一个学生后的学生列表:
学号: 001, 姓名: 小明, 专业: 计算机科学
学号: 001, 姓名: 小明, 专业: 计算机科学
学号: 003, 姓名: 小刚, 专业: 通信工程
修改一个学生后的学生列表:
学号: 002, 姓名: 小红, 专业: 软件工程
学号: 001, 姓名: 小明, 专业: 计算机科学
学号: 003, 姓名: 小刚, 专业: 通信工程
没有找到该学生
```
以上代码实现了基本的增、删、改、查功能。在输入学生信息时,当输入学号为0时,表示结束输入,程序会输出输入的学生列表;接着,程序会演示增加、删除、修改和查找学生的操作,并输出对应的结果。
阅读全文