编写程序模拟实现学位答辩最终成绩的计算过程。评委、指导教师、审阅教师分别给出 答辩分数(为0-100之间),去掉最高分和最低分计算平均分为最终成绩,成绩遇到小数点向上 取整数。最终成绩90及以上为优秀、低于60显示为不合格。评委人数少于3人答辩成绩无效; 指导教师或者审阅教师给出成绩低于60分时,最终成绩为不合格
时间: 2023-03-20 08:03:29 浏览: 95
答题计分的设计与实现
好的,以下是我的回答:
```
# 定义一个函数,参数为评委分数列表、指导教师分数、审阅教师分数
def calc_final_score(scores, adviser_score, reviewer_score):
# 如果评委人数少于3人,则答辩成绩无效,返回None
if len(scores) < 3:
return None
# 去掉最高分和最低分
scores.remove(max(scores))
scores.remove(min(scores))
# 计算平均分
avg_score = sum(scores) / len(scores)
# 如果指导教师或审阅教师给出成绩低于60分,最终成绩为不合格
if adviser_score < 60 or reviewer_score < 60:
final_score = "不合格"
else:
# 成绩遇到小数点向上取整数
final_score = math.ceil(avg_score)
# 最终成绩90及以上为优秀
if final_score >= 90:
final_score = "优秀"
# 低于60显示为不合格
elif final_score < 60:
final_score = "不合格"
return final_score
```
使用示例:
```
scores = [80, 85, 90, 75]
adviser_score = 80
reviewer_score = 70
final_score = calc_final_score(scores, adviser_score, reviewer_score)
print(final_score) # 输出: 不合格
scores = [80, 85, 90, 75]
adviser_score = 80
reviewer_score = 90
final_score = calc_final_score(scores, adviser_score, reviewer_score)
print(final_score) # 输出: 优秀
```
阅读全文