奖学金评定系统 901.问题描述:在评定奖学金时,学校通常会综合考虑学生的专业课成绩和德育成绩,并将两者之间设置一定的比例以便合成学生的综合成绩,然后按照综合成绩的排名顺序确定不同等级的奖学金获得者的名单。编程实现上述奖学金评定过程,具体要求:(1)从文件rawscore.txt中读入学生人数、考核科目数及每位学生各科目分数等基本信息。(2)根据读入的信息,计算出每位学生的专业课平均分。(3)设置专业课成绩与德育成绩之间的比例、奖学金等级数、各等级获奖人数等基本信息。(4)输出满足上述设置要求的奖学金获得者名单及基本信息等。2.设计与实现:从下图所示的文件rawscore.txt中读取信息,并根据预先的设置(成绩比例、奖学金等级及数量),计算出每位学生的综合成绩。然后,将每条记录按照综合成绩从低到高进行冒泡排序,按照奖学金等级和数量依次输出排序结果。
时间: 2024-03-27 07:36:30 浏览: 87
好的,下面是一个Python实现的示例代码,具体实现过程如下:
1. 从文件rawscore.txt中读取学生人数、考核科目数及每位学生各科目分数等基本信息。
2. 根据读入的信息,计算出每位学生的专业课平均分。
3. 设置专业课成绩与德育成绩之间的比例、奖学金等级数、各等级获奖人数等基本信息。
4. 根据设定的专业课成绩与德育成绩比例,计算学生的综合成绩。可以使用加权平均数的方法来实现。
5. 将每个学生的综合成绩按照从小到大的顺序进行冒泡排序。
6. 按照奖学金等级和数量依次输出排序结果。
```python
# 读取学生基本信息
with open('rawscore.txt', 'r') as f:
lines = f.readlines()
num_students = int(lines[0].strip()) # 学生人数
num_subjects = int(lines[1].strip()) # 考核科目数
scores = [] # 存储各个学生的分数
for i in range(2, num_students+2):
scores.append(list(map(int, lines[i].strip().split())))
# 计算每位学生的专业课平均分
averages = [] # 存储每位学生的专业课平均分
for i in range(num_students):
total_score = 0
for j in range(num_subjects):
total_score += scores[i][j]
averages.append(round(total_score / num_subjects, 2))
# 设置奖学金评定参数
ratio = 0.6 # 专业课成绩与德育成绩比例
num_levels = 3 # 奖学金等级数
num_winners = [10, 20, 30] # 各等级获奖人数
# 计算每位学生的综合成绩
comprehensive_scores = [] # 存储每位学生的综合成绩
for i in range(num_students):
comprehensive_score = ratio * averages[i] + (1 - ratio) * scores[i][-1]
comprehensive_scores.append(round(comprehensive_score, 2))
# 冒泡排序
for i in range(num_students-1):
for j in range(num_students-i-1):
if comprehensive_scores[j] > comprehensive_scores[j+1]:
comprehensive_scores[j], comprehensive_scores[j+1] = comprehensive_scores[j+1], comprehensive_scores[j]
scores[j], scores[j+1] = scores[j+1], scores[j]
# 输出奖学金获得者名单及基本信息等
for i in range(num_levels):
print('奖学金等级:{}'.format(i+1))
for j in range(num_winners[i]):
index = num_students - 1 - (i+1)*num_winners[i] + j + 1
print('获奖者姓名:{},综合成绩:{}'.format(scores[index][0], comprehensive_scores[index]))
```
需要注意的是,这只是一个示例代码,具体的实现方法可能会因为不同的学校和政策而有所差异,需要根据实际情况进行调整。
阅读全文