统计成绩 [问题描述]《 给出n个学生的 m门考试的成绩表,每个学生的信息由学号姓名以及各科成绩组成对学生的考试成绩进行有关统计,并打印统计表。 [基本要求]4 (1)按总数高低次序,打印出名次表,分数相同的为同一名次; 4 (2) 按名次打印出每个学生的学号、姓名、总分以及各科成绩。“[测试] 4 由学生依据软件工程的测试技术自己确定。注意测试边界数据t[选作内容]“ 对各科成绩设置不同的权值。 *u
时间: 2024-03-23 12:37:18 浏览: 87
基本功能:设学生姓名及成绩已分别存入指定数据存储单元,统计成绩分布的人数:A级(90~100),B级(80~89),C级(70~79),D级(60~69),E级(0~59)。并按顺序显示全班成绩,及统计信息。要求界面友好。 增强功能:学生姓名及成绩根据屏幕提示由键盘录入再存入数据存储单元。
4星 · 用户满意度95%
对于这个问题,我可以给你一些思路。首先,你需要读入每个学生的学号、姓名和各科成绩,然后计算每个学生的总分。接着,你需要按照总分进行排序,得出每个学生的名次,并输出名次表。最后,按照名次输出每个学生的学号、姓名、总分以及各科成绩。
对于权值问题,你可以在计算总分时,将每门课程的成绩乘以对应的权值,再相加得到总分。
下面是一个伪代码的示例:
```
// 读入学生信息
for i = 1 to n:
read 学号, 姓名, 语文成绩, 数学成绩, 英语成绩, ...
// 计算总分
总分 = 语文成绩 * 权值1 + 数学成绩 * 权值2 + 英语成绩 * 权值3 + ...
// 存储学生信息和总分
学生[i] = {学号, 姓名, 语文成绩, 数学成绩, 英语成绩, ..., 总分}
// 按总分进行排序
sort(学生, key=lambda x: x.总分, reverse=True)
// 输出名次表
for i = 1 to n:
if i == 1 or 学生[i].总分 != 学生[i-1].总分:
// 新的名次
名次 = i
print(名次, 学生[i].学号, 学生[i].姓名, 学生[i].总分)
// 按名次输出每个学生的信息
for i = 1 to n:
print(i, 学生[i].学号, 学生[i].姓名, 学生[i].总分, 学生[i].语文成绩, 学生[i].数学成绩, 学生[i].英语成绩, ...)
```
当然,这只是一个示例,具体实现方式还需要根据你所使用的编程语言和具体的数据结构进行调整。
阅读全文