你需要将一系列的学生期末考试信息进行存储(学生人数不会超过100)。每个学生的信息包括: 姓名(由 first name 和last name 两部分组成,例如Jingyu LI,first_name = "Jingyu" last_name = "LI") ; 学号(12 位数字组成,开头4位为2022、2021、2020); C语言成绩(一个大于等于零的整数); 重修信息(学号 2022.........为否,其余为是); GPA等级(A+, A, B+, B, C+, C, D, F )。 A+: 100-93; A: 92-85; B+: 84-80; B: 79-75; C+:74-70; C: 69-65; D: 64-60; F: <60. 其中,姓名,学号,成绩为输入数据,其余数据需要你计算。 另外,学号不符合规定的数据需要删除掉。 输入 一系列 名、姓、学号、成绩 输出 名、姓、学号、成绩、重修信息、GPA等级
时间: 2024-03-17 21:45:28 浏览: 65
我可以提供一个 Python 代码示例来实现这个功能:
```python
class Student:
def __init__(self, first_name, last_name, student_id, score):
self.first_name = first_name
self.last_name = last_name
self.student_id = student_id
self.score = score
self.is_retake = student_id[:4] != "2022" and student_id[:4] != "2021" and student_id[:4] != "2020"
self.gpa = self.calculate_gpa()
def calculate_gpa(self):
if self.score >= 93:
return "A+"
elif self.score >= 85:
return "A"
elif self.score >= 80:
return "B+"
elif self.score >= 75:
return "B"
elif self.score >= 70:
return "C+"
elif self.score >= 65:
return "C"
elif self.score >= 60:
return "D"
else:
return "F"
students = []
while True:
first_name = input("请输入学生的名字:")
last_name = input("请输入学生的姓氏:")
student_id = input("请输入学生的学号:")
score = int(input("请输入学生的成绩:"))
if student_id[:4] != "2022" and student_id[:4] != "2021" and student_id[:4] != "2020":
print("该学号不符合规定,已删除!")
continue
student = Student(first_name, last_name, student_id, score)
students.append(student)
is_continue = input("是否继续输入?(y/n)")
if is_continue == "n":
break
# 输出每个学生的信息
for student in students:
print(student.first_name, student.last_name, student.student_id, student.score, "是" if student.is_retake else "否", student.gpa)
```
这段代码定义了一个 `Student` 类,用于存储每个学生的信息,包括姓名、学号、成绩、是否重修和 GPA 等级。程序会不断循环输入学生信息,直到用户选择停止输入。最后,程序会输出每个学生的信息。
阅读全文