创建一个列表,存储1 门课成绩,要求: ①用键盘输入学生的学号、姓名、电话,成绩使用推导式随机产生1~100以内 的数。 ②求出每门课的最高成绩。 3.求每个人的平均成绩。4.修改学生的信息。 5.插入一个学生的信息。 6.输出所有学生信息。
时间: 2024-12-12 22:30:31 浏览: 2
1_lower7y7_定义一个包含学生信息(学号_成绩)的顺序表和链表(二选一)_姓名_使其具有如下功能_
5星 · 资源好评率100%
为了创建这样的列表并满足上述需求,我们可以按照以下步骤操作:
1. 首先,我们需要定义一个数据结构,如 `Student` 类,包含学号、姓名、电话以及一个成绩列表。
```python
class Student:
def __init__(self, id, name, phone):
self.id = id
self.name = name
self.phone = phone
self.grades = []
def add_grade(self, score):
self.grades.append(score)
def get_average_score(self):
return sum(self.grades) / len(self.grades) if self.grades else 0
def update_info(self, new_name=None, new_phone=None):
if new_name:
self.name = new_name
if new_phone:
self.phone = new_phone
def create_student_list():
students = []
num_students = int(input("请输入学生人数:"))
for i in range(num_students):
student_id = input(f"请输入第{i + 1}名同学的学号:")
name = input(f"请输入第{i + 1}名同学的姓名:")
phone = input(f"请输入第{i + 1}名同学的电话:")
# 使用推导式生成随机成绩
scores = [random.randint(1, 100) for _ in range(3)]
student = Student(student_id, name, phone)
student.add_grade(scores[0])
max_grade = max(scores)
student.grades.extend(scores[1:])
students.append(student)
return students
```
2. 求每门课的最高成绩,可以遍历每个学生的成绩列表:
```python
for student in students:
print(f"{student.name}'s highest grade is {max(student.grades)}")
```
3. 计算每个人的平均成绩:
```python
for student in students:
print(f"{student.name}'s average score is {student.get_average_score()}")
```
4. 修改学生信息:
```python
while True:
user_input = input("是否要修改学生信息(y/n):")
if user_input.lower() == 'n':
break
index = int(input("请输入要修改的学生索引:"))
student = students[index]
choice = input("请选择修改信息类型(name/phone):")
if choice == 'name':
new_name = input("请输入新姓名:")
student.update_info(new_name=new_name)
elif choice == 'phone':
new_phone = input("请输入新电话:")
student.update_info(new_phone=new_phone)
```
5. 插入一个学生信息:
```python
new_student_id = input("请输入新学生的学号:")
new_student_name = input("请输入新学生的姓名:")
new_student_phone = input("请输入新学生的电话:")
new_student = Student(new_student_id, new_student_name, new_student_phone)
students.append(new_student)
```
6. 输出所有学生信息:
```python
for student in students:
print(f"学号:{student.id}, 姓名:{student.name}, 电话:{student.phone}")
```
阅读全文