Grade Assessment


Submit solution

Points: 10 (partial)
Time limit: 1.0s
Memory limit: 64M

Author:
Problem type

題目說明

撰寫一個程式,允許使用者輸入一個整數(代表學生的期中考分數)和一個浮點數(代表學生的期末考分數)。程式需要計算這兩個分數的加權平均,其中期中考佔總成績的40%,期末考佔總成績的60%。

計算加權平均後,需將結果四捨五入至最接近的整數,再根據四捨五入後的分數判定學生的成績等級:

  • 如果四捨五入後的加權平均分數大於或等於90分,輸出"A"
  • 如果四捨五入後的加權平均分數大於或等於80分但小於90分,輸出"B"
  • 如果四捨五入後的加權平均分數大於或等於70分但小於80分,輸出"C"
  • 如果四捨五入後的加權平均分數大於或等於60分但小於70分,輸出"D"
  • 如果四捨五入後的加權平均分數小於60分,輸出"F"

請完成程式中缺少的calculateGrade函數,該函數接收一個整數和一個浮點數作為參數,計算加權平均分數並四捨五入,然後根據上述標準返回適當的等級字串。

四捨五入的函數可以使用Math.round()

請注意:除了實作calculateGrade函數外,請勿修改其他已經提供的程式碼。違反此規則者,無論自動評測結果為何,均不計分。允許輕微的排版差異。

程式模板

import java.util.Scanner;

public class GradeCalculator {
    public static void main(String[] args) {
        // 讀取整數和浮點數
        Scanner scanner = new Scanner(System.in);
        int midterm = scanner.nextInt();
        double finalExam = scanner.nextDouble();

        // 計算成績等級,第一個參數是期中考分數(整數),第二個參數是期末考分數(浮點數)
        // 回傳值是代表成績等級的字串 ("A", "B", "C", "D" 或 "F")
        String grade = calculateGrade(midterm, finalExam);

        System.out.println(grade);

        scanner.close();
    }

    // 計算加權平均分數並返回對應的成績等級
    // 期中考佔40%,期末考佔60%
    // 參數是期中考分數(整數)和期末考分數(浮點數)
    public static ... calculateGrade(...) {
        // 請在此實作函數
    }
}

輸入值的格式

輸入包含兩個數字,以空格分隔:

  • 第一個數字是一個整數,代表期中考分數(範圍:0 到 100)
  • 第二個數字是一個浮點數,代表期末考分數(範圍:0.0 到 100.0)

輸出值的格式

輸出為一個單獨的字串,代表學生的成績等級:
"A":加權平均分數大於或等於90分
"B":加權平均分數大於或等於80分但小於90分
"C":加權平均分數大於或等於70分但小於80分
"D":加權平均分數大於或等於60分但小於70分
"F":加權平均分數小於60分

邊界條件提示

  • 考慮各類成績邊界值的情況,如恰好處於等級分界線上的分數
  • 確保處理輸入分數的各種可能範圍(最低0分,最高100分)
  • 注意浮點數計算可能出現的精度問題
  • ## 範例輸入 #1

    85 93.33

範例輸出 #1

A

說明:加權平均分數 = 85 × 0.4 + 93.33 × 0.6 = 90(四捨五入),所以輸出A。


Comments

There are no comments at the moment.