某班级一次考试的成绩表。请计算每个学生总成绩,并按总成绩排名。找出各单科成绩第一名,输出其成绩与学号。

 成绩数据

 var scoreArr = [{
            sno: 1,
            chinese: 105,
            math: 62,
            english: 118
        },
        {
            sno: 2,
            chinese: 89,
            math: 78,
            english: 120
        },
        {
            sno: 3,
            chinese: 86,
            math: 64,
            english: 80
        },
        {
            sno: 4,
            chinese: 78,
            math: 99,
            english: 91
        },
        {
            sno: 5,
            chinese: 107.5,
            math: 97,
            english: 70
        },
        {
            sno: 6,
            chinese: 112,
            math: 61,
            english: 92
        },
        {
            sno: 7,
            chinese: 101,
            math: 79,
            english: 104
        },
        {
            sno: 8,
            chinese: 71,
            math: 72,
            english: 105
        },
        {
            sno: 9,
            chinese: 56,
            math: 68,
            english: 61
        },
        {
            sno: 10,
            chinese: 98,
            math: 83,
            english: 77
        }]

        var allResultsArr = [{
            sno: 1,
            chinese: 105,
            math: 62,
            english: 118
        },
        {
            sno: 2,
            chinese: 89,
            math: 78,
            english: 120
        },
        {
            sno: 3,
            chinese: 86,
            math: 64,
            english: 80
        },
        {
            sno: 4,
            chinese: 78,
            math: 99,
            english: 91
        },
        {
            sno: 5,
            chinese: 107.5,
            math: 97,
            english: 70
        },
        {
            sno: 6,
            chinese: 112,
            math: 61,
            english: 92
        },
        {
            sno: 7,
            chinese: 101,
            math: 79,
            english: 104
        },
        {
            sno: 8,
            chinese: 71,
            math: 72,
            english: 105
        },
        {
            sno: 9,
            chinese: 56,
            math: 68,
            english: 61
        },
        {
            sno: 10,
            chinese: 98,
            math: 83,
            english: 77
        }];
        

输出每个人的总成绩

 

 scoreArr.filter(value => { // 使用filter方法对数组进行遍历
            let everyResults = value.chinese + value.math + value.english; // 将每个人的三门成绩进行相加
            console.log(`学号为${value.sno}的总成绩为:${everyResults}`);  // 输出每个人的总成绩
        })

 按总成绩排名

 

 for (let i = 0; i < allResultsArr.length; i++) {  // 按总成绩排名
            for (let j = i + 1; j < allResultsArr.length; j++) {
                if (allResultsArr[i].chinese + allResultsArr[i].math + allResultsArr[i].english <
                allResultsArr[j].chinese + allResultsArr[j].math + allResultsArr[j].english) {
                    let temp = allResultsArr[i];
                    allResultsArr[i] = allResultsArr[j];
                    allResultsArr[j] = temp;
                }
            }
        }
        console.log(allResultsArr);  // 按照总成绩 排序后的排名

 输出每个科目的最高成绩

 

 everySubMax('chinese');  
        everySubMax('math');
        everySubMax('english');
        function everySubMax(x) {
            var max = scoreArr[0][x];
            for (var k = 1; k < scoreArr.length; k++) {
                if (max < scoreArr[k][x]) {
                    max = scoreArr[k][x];
                }
            }
            scoreArr.filter(item => {
                if (item[x] === max) {
                    return console.log(`学号为 ${item.sno} 的同学${x}科目成绩 ${max} 是班级第一名。`);
                }
            })
        }

好的,我明白了你的需求。基于你的要求,我编写了以下Scala程序,它可以读取一个班级成绩表,并输出班级总成绩top值、单科成绩top。 ```scala import scala.io.Source object GradeAnalyzer { def main(args: Array[String]): Unit = { //读取班级成绩表 val source = Source.fromFile("path/to/grade/file") val lines = source.getLines() //定义变量,用于存储班级总成绩每个科目的总分 var total = 0 var chineseTotal = 0 var mathTotal = 0 var englishTotal = 0 //定义变量,用于存储班级总成绩top值和单科成绩top var topScore = 0 var topChinese = 0 var topMath = 0 var topEnglish = 0 //遍历每个学生成绩 for (line <- lines) { val fields = line.split(",") val name = fields(0) val id = fields(1) val chinese = fields(2).toInt val math = fields(3).toInt val english = fields(4).toInt //计算总成绩每个科目的总分 val score = chinese + math + english total += score chineseTotal += chinese mathTotal += math englishTotal += english //更新班级总成绩top值和单科成绩top if (score > topScore) { topScore = score } if (chinese > topChinese) { topChinese = chinese } if (math > topMath) { topMath = math } if (english > topEnglish) { topEnglish = english } } //输出结果 println("班级总成绩top值:" + topScore) println("语文成绩top值:" + topChinese) println("数学成绩top值:" + topMath) println("英语成绩top值:" + topEnglish) //关闭文件 source.close() } } ``` 将上述代码中的"path/to/grade/file"替换为你实际的班级成绩表文件路径。程序将以逗号分隔符的方式读取每个学生成绩。在程序运行时,它将遍历每个学生成绩,并计算班级总成绩每个科目的总分。同时,程序还将更新班级总成绩top值和单科成绩top。最后,程序将输出这些结果。 希望这个程序能够帮到你。如果你还有其他问题,可以继续问我。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值