java夏令營(yíng)練習(xí)----數(shù)組

作業(yè):學(xué)生成績(jī)統(tǒng)計(jì)

請(qǐng)輸入學(xué)生人數(shù) 如:5

請(qǐng)輸入第一個(gè)學(xué)生的成績(jī) 如:85.5

請(qǐng)輸入第n個(gè)同學(xué)的成績(jī)* 請(qǐng)輸入第五個(gè)學(xué)生的成績(jī) 如:60.0

輸出:平均成績(jī)??分 最高成績(jī)??分 最低分??分*

其中??人不及格

請(qǐng)輸入操作 0.退出程序 1.繼續(xù)錄入成績(jī)(擴(kuò)容)


思維流程圖

學(xué)生成績(jī)統(tǒng)計(jì)

核心代碼

計(jì)算成績(jī)的統(tǒng)計(jì)信息

public static int calculateGradeStats(ArrayList<Double> grades) {
    double sum = 0;
    double maxGrade = Double.MIN_VALUE;
    double minGrade = Double.MAX_VALUE;
    int numFail = 0;
    
    for (double grade : grades) {
        sum += grade;
        if (grade < 60) {
            numFail++;
        }
        if (grade > maxGrade) {
            maxGrade = grade;
        }
        if (grade < minGrade) {
            minGrade = grade;
        }
    }
    
    double average = sum / grades.size();
    System.out.println("平均成績(jī):" + average + "分");
    System.out.println("最高成績(jī):" + maxGrade + "分");
    System.out.println("最低成績(jī):" + minGrade + "分");
    System.out.println(numFail + "人不及格");
    
    return numFail;
    }

這段代碼定義了一個(gè)靜態(tài)方法calculateGradeStats,該方法接收一個(gè)ArrayList類型的參數(shù)grades,其中包含了學(xué)生的成績(jī)(以 double 類型表示)。方法首先初始化了一些變量,包括總成績(jī)sum、最高成績(jī)maxGrade、最低成績(jī) minGrade和不及格人數(shù)numFail
接著使用 for-each 循環(huán)遍歷傳入的成績(jī)列表,累加總成績(jī) sum,并根據(jù)成績(jī)是否小于60來(lái)增加不及格人數(shù) numFail。同時(shí),方法會(huì)更新最高成績(jī)和最低成績(jī)的值。
然后,方法計(jì)算平均成績(jī)average,并打印出平均成績(jī)、最高成績(jī)、最低成績(jī)和不及格人數(shù)的信息。最后,方法返回不及格人數(shù) numFail。

繼續(xù)操作

    while (option != 0) {
        System.out.println("請(qǐng)輸入操作:0.退出程序 1.繼續(xù)錄入成績(jī)(擴(kuò)容)");
        option = sc.nextInt();
        if (option == 1) {
            System.out.print("請(qǐng)輸入要添加的學(xué)生人數(shù):");
            int numToAdd = sc.nextInt();
            for (int i = 0; i < numToAdd; i++) {
                System.out.print("請(qǐng)輸入第" + (numStudent + i + 1) + "個(gè)學(xué)生的成績(jī):");
                double grade = sc.nextDouble();
                grades.add(grade);
            }
            numStudent += numToAdd;
            numFail = calculateGradeStats(grades);
            System.out.println(numFail + "人不及格");
        }

完整代碼

import java.util.ArrayList;
import java.util.Scanner;

public class Text5_12 {
 public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.println("請(qǐng)輸入學(xué)生人數(shù):");
    int numStudent = sc.nextInt();
    ArrayList<Double> grades = new ArrayList<>();
    
    // 循環(huán)輸入學(xué)生成績(jī)
    for (int i = 0; i < numStudent; i++) {
        System.out.print("請(qǐng)輸入第" + (i + 1) + "個(gè)學(xué)生的成績(jī):");
        double grade = sc.nextDouble();
        grades.add(grade);
    }
    
    // 計(jì)算不及格人數(shù)
    int numFail = calculateGradeStats(grades);
    int option = 1;
    
    // 循環(huán)進(jìn)行操作
    while (option != 0) {
        System.out.println("請(qǐng)輸入操作:0.退出程序 1.繼續(xù)錄入成績(jī)(擴(kuò)容)");
        option = sc.nextInt();
        if (option == 1) {
            System.out.print("請(qǐng)輸入要添加的學(xué)生人數(shù):");
            int numToAdd = sc.nextInt();
            for (int i = 0; i < numToAdd; i++) {
                System.out.print("請(qǐng)輸入第" + (numStudent + i + 1) + "個(gè)學(xué)生的成績(jī):");
                double grade = sc.nextDouble();
                grades.add(grade);
            }
            numStudent += numToAdd;
            numFail = calculateGradeStats(grades);
            System.out.println(numFail + "人不及格");
        }
    }
    sc.close();
}

// 計(jì)算成績(jī)的統(tǒng)計(jì)信息
public static int calculateGradeStats(ArrayList<Double> grades) {
    double sum = 0;
    double maxGrade = Double.MIN_VALUE;
    double minGrade = Double.MAX_VALUE;
    int numFail = 0;
    
    for (double grade : grades) {
        sum += grade;
        if (grade < 60) {
            numFail++;
        }
        if (grade > maxGrade) {
            maxGrade = grade;
        }
        if (grade < minGrade) {
            minGrade = grade;
        }
    }
    
    double average = sum / grades.size();
    System.out.println("平均成績(jī):" + average + "分");
    System.out.println("最高成績(jī):" + maxGrade + "分");
    System.out.println("最低成績(jī):" + minGrade + "分");
    System.out.println(numFail + "人不及格");
    
    return numFail;
    }
}

總結(jié):

總結(jié)就是沒(méi)有總結(jié),純自?shī)首詷?lè)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容