java( if、循环、数组综合案例)

1:求某年最好成绩
2:求某年的平均成绩
3:求所有年份最好成绩
4:求某门课历年最好成绩

package base;

import java.util.Scanner;

public class comprehensive {
    public static void main(String[] args) {
        /*if、循环、数组等综合练习*/
        //定义课程数组
        int maxScoreCount = 6;
        String[] scoreNames = new String[maxScoreCount];
        scoreNames[0] = "语文";
        scoreNames[1] = "数学";
        scoreNames[2] = "英语";
        scoreNames[3] = "物理";
        scoreNames[4] = "化学";
        scoreNames[5] = "生物";

        Scanner in = new Scanner(System.in);
        System.out.println("请输入要保存多少年的成绩:");
        int yearCount = in.nextInt();
        //年份、课程多维数组
        double[][] scores = new double[yearCount][scoreNames.length];
        for (int i = 0; i < scores.length; i++) {
            for (int j = 0; j < scoreNames.length; j++) {
                scores[i][j] = 80 + Math.random() * 20;
                System.out.println("第" + (i + 1) + "年" + scoreNames[j] + "成绩为:" + scores[i][j]);
            }
        }

        //循环
        boolean count = true;
        while (count) {
            System.out.println("请输入要进行的操作编号");
            System.out.println("1:求某年最好成绩\n" +
                    "2:求某年的平均成绩\n" +
                    "3:求所有年份最好成绩\n" +
                    "4:求某门课历年最好成绩"
            );
            int oprtId = in.nextInt();

            //switch判断
            int year = 0;
            switch (oprtId) {
                /**求某年最好成绩*/
                case 1:
                    System.out.println("请输入查看哪一年的最好成绩");
                    year = in.nextInt() - 1;
                    if (year < 0 || year >= yearCount) {
                        System.out.println("非法的年份");
                        break;
                    }
                    int bestOfYearScoreId = 0;
                    for (int i = 0; i < scores[year].length; i++) {
                        if (scores[year][bestOfYearScoreId] < scores[year][i]) {
                            bestOfYearScoreId = i;
                        }
                    }
                    System.out.println("第" + (year + 1) + "年,最好的成绩是" + scoreNames[bestOfYearScoreId] + ",分数是:" + scores[year][bestOfYearScoreId]);
                    break;

                /**求某年的平均成绩*/
                case 2:
                    System.out.println("请输入查看哪一年的平均成绩");
                    year = in.nextInt() - 1;
                    if (year < 0 || year >= yearCount) {
                        System.out.println("非法的年份");
                        break;
                    }
                    double totalScore = 0;
                    for (int i = 0; i < scores[year].length; i++) {
                        totalScore += scores[year][i];
                    }
                    System.out.println("第" + (year + 1) + "年的平均成绩为" + totalScore / scoreNames.length);
                    break;

                /**求所有年份最好成绩*/
                case 3:
                    int bestOfYearsScoreId = 0;
                    year = 0;
                    for (int i = 0; i < scores.length; i++) {
                        for (int j = 0; j < scores[i].length; j++) {
                            if (scores[year][bestOfYearsScoreId] < scores[i][j]) {
                                year = i;
                                bestOfYearsScoreId = j;
                            }
                        }
                    }
                    System.out.println("历年最好成绩为第" + (year + 1) + "年的" + scoreNames[bestOfYearsScoreId] + ",分数为:" + scores[year][bestOfYearsScoreId]);
                    break;

                /**求某门课历年最好成绩*/
                case 4:
                    System.out.println("请问要查询某门课的历年最好成绩:");
                    int scoreId = in.nextInt();
                    year = 0;
                    for (int i = 0; i < scores.length; i++) {
                        if (scores[year][scoreId] < scores[i][scoreId]) {
                            year = i;
                        }
                    }
                    System.out.println(scoreNames[scoreId] + "历年最好成绩为第" + year + "年,分数是:" + scores[year][scoreId]);
                    break;

                default:
                    System.out.println("程序结束。");
                    count = false;
            }
        }

    }
}

执行结果如下:

"C:\Program Files\Java\jdk1.8.0_291\bin\java.exe" "-javaagent:F:\Program Files\JetBrains\IntelliJ IDEA 2020.2.4\lib\idea_rt.jar=61021:F:\Program Files\JetBrains\IntelliJ IDEA 2020.2.4\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_291\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_291\jre\lib\rt.jar;C:\Users\nieyayun\IdeaProjects\javaTest\out\production\javaTest" base.comprehensive
请输入要保存多少年的成绩:
9
第1年语文成绩为:80.60717982905096
第1年数学成绩为:92.15531179277069
第1年英语成绩为:88.88493076023923
第1年物理成绩为:88.09462137477756
第1年化学成绩为:86.06620276833559
第1年生物成绩为:83.2980564450549
第2年语文成绩为:92.77789445146885
第2年数学成绩为:81.44077871949064
第2年英语成绩为:98.31588868631087
第2年物理成绩为:82.9898920160812
第2年化学成绩为:86.27586971310751
第2年生物成绩为:82.70643669087784
第3年语文成绩为:90.93140127965997
第3年数学成绩为:80.46116877262466
第3年英语成绩为:81.70469257523361
第3年物理成绩为:80.94368191685139
第3年化学成绩为:85.28869846371849
第3年生物成绩为:86.05192924800397
第4年语文成绩为:87.89675451280685
第4年数学成绩为:89.03795297665513
第4年英语成绩为:94.69488277105182
第4年物理成绩为:92.34400381798402
第4年化学成绩为:90.98174404861915
第4年生物成绩为:84.79192481563543
第5年语文成绩为:96.70399422971622
第5年数学成绩为:89.50104558701133
第5年英语成绩为:99.32505596539434
第5年物理成绩为:85.53160859151679
第5年化学成绩为:82.1100697527657
第5年生物成绩为:85.52023371726531
第6年语文成绩为:98.06857419986038
第6年数学成绩为:93.0419000909798
第6年英语成绩为:91.9413201287421
第6年物理成绩为:89.46266411537876
第6年化学成绩为:81.87307070003746
第6年生物成绩为:85.81461985206533
第7年语文成绩为:82.23630683094024
第7年数学成绩为:93.71772631134442
第7年英语成绩为:93.23100116615672
第7年物理成绩为:96.39285652247624
第7年化学成绩为:90.46503665722143
第7年生物成绩为:99.9700440637563
第8年语文成绩为:88.11299433357375
第8年数学成绩为:93.0212030362092
第8年英语成绩为:97.1649210491503
第8年物理成绩为:92.77583977152756
第8年化学成绩为:80.73088091718098
第8年生物成绩为:86.862270947755
第9年语文成绩为:81.69357060739011
第9年数学成绩为:94.51886618435051
第9年英语成绩为:84.84462297581166
第9年物理成绩为:88.71562927226282
第9年化学成绩为:81.95744511205231
第9年生物成绩为:96.00432751997688
请输入要进行的操作编号
1:求某年最好成绩
2:求某年的平均成绩
3:求所有年份最好成绩
4:求某门课历年最好成绩
1
请输入查看哪一年的最好成绩
3
第3年,最好的成绩是语文,分数是:90.93140127965997
请输入要进行的操作编号
1:求某年最好成绩
2:求某年的平均成绩
3:求所有年份最好成绩
4:求某门课历年最好成绩
2
请输入查看哪一年的平均成绩
4
第4年的平均成绩为89.9578771571254
请输入要进行的操作编号
1:求某年最好成绩
2:求某年的平均成绩
3:求所有年份最好成绩
4:求某门课历年最好成绩
3
历年最好成绩为第7年的生物,分数为:99.9700440637563
请输入要进行的操作编号
1:求某年最好成绩
2:求某年的平均成绩
3:求所有年份最好成绩
4:求某门课历年最好成绩
4
请问要查询某门课的历年最好成绩:
2
英语历年最好成绩为第4年,分数是:99.32505596539434
请输入要进行的操作编号
1:求某年最好成绩
2:求某年的平均成绩
3:求所有年份最好成绩
4:求某门课历年最好成绩
0
程序结束。

Process finished with exit code 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值