设计控制台应用程序项目,用于计算学生的GPA。GPA是英文平均分的简称,美国大学的GPA满分是4分。例如某学生的5门课程的学分和成绩为: 课程1有4个学分,成绩92(A); 课程2有3个学分,成绩80(B); 课程3有2个学分,成绩98(A); 课程4有6个学分,成绩70(C); 课程5有3个学分,成绩89(B)。 计算GPA有两种,一是常见算法GPA,另一个是标准算法GPA。在计算常见算法GPA时,先将分数转换成点数,其转换方式如下: 90-100对应点数为4.0,80-89对应点数为3.0,70-79对应点数为2.0,60-69对应点数为1.0,其他为0。 以上5项成绩GPA为:(学分*绩点)之和 /总学分 常见算法GPA=(4×4+3×3+2×4+6×2+3×3)/(4+3+2+6+3)=3.00 标准算法 (成绩*绩点)之和 *4/总学分/100 GPA=( (92×4+80×3+98×2+70×6+89×3)×4)/( (4+3+2+6+3)×100)=3.31 要求将学生和课程分别设计成类Student和Course,采用两种方式计算一个学生GPA。 结果: (1)显示学生的成绩列表; (2)显示两种方式计算的GPA值。
时间: 2023-06-08 21:04:33 浏览: 243
好的,这个问题可以回答。先创建两个类,Student和Course。
Student类可以包含以下属性:
- name (学生姓名)
- courses (学生所选课程)
Course类可以包含以下属性:
- name (课程名称)
- credit (课程学分)
- score (课程成绩)
我们可以先定义一个函数将分数转换为对应的绩点:
```python
def score_to_grade_point(score):
if score >= 90:
return 4.0
elif score >= 80:
return 3.0
elif score >= 70:
return 2.0
elif score >= 60:
return 1.0
else:
return 0.0
```
然后定义两个函数分别计算常见算法GPA和标准算法GPA:
```python
def gpa_common_algorithm(courses):
total_credit = sum(course.credit for course in courses)
total_grade_point = sum(score_to_grade_point(course.score) * course.credit for course in courses)
return round(total_grade_point / total_credit, 2)
def gpa_standard_algorithm(courses):
total_credit = sum(course.credit for course in courses)
total_grade_point = sum(score_to_grade_point(course.score) * course.credit for course in courses)
return round(total_grade_point * 4 / (total_credit * 100), 2)
```
最后,我们可以创建一个学生对象,添加课程,然后分别计算常见算法GPA和标准算法GPA并输出结果:
```python
# 创建学生对象
s = Student("张三")
# 添加课程
s.courses.append(Course("课程1", 4, 92))
s.courses.append(Course("课程2", 3, 80))
s.courses.append(Course("课程3", 2, 98))
s.courses.append(Course("课程4", 6, 70))
s.courses.append(Course("课程5", 3, 89))
# 显示学生的成绩列表
print("学生{}的成绩列表:".format(s.name))
for course in s.courses:
print("{}: 学分{},成绩{}".format(course.name, course.credit, course.score))
# 显示常见算法GPA值
gpa1 = gpa_common_algorithm(s.courses)
print("常见算法GPA:{}".format(gpa1))
# 显示标准算法GPA值
gpa2 = gpa_standard_algorithm(s.courses)
print("标准算法GPA:{}".format(gpa2))
```
输出结果为:
```
学生张三的成绩列表:
课程1: 学分4,成绩92
课程2: 学分3,成绩80
课程3: 学分2,成绩98
课程4: 学分6,成绩70
课程5: 学分3,成绩89
常见算法GPA:3.0
标准算法GPA:3.31
```
阅读全文