JAVA題目

我做不出來QQ

麻煩大大幫忙想想

謝謝

以下是題目

由外部讀入一組成績

計算此組成績的平均數、中位數、最高成績及最低成績。

(整數部分的個位數對齊)

在DOS裡面顯示的樣子大概長這樣

平均成績為 65.98

中位數為__ 58.0

最高成績為 88

最低成績為 23

( __ 這個只是為惹在知識+可以使數字對齊)

已更新項目:

外部讀入成績的方式為 檔案讀入喔!!!

麻煩惹

2 個已更新項目:

#小綱 大大

請問一下

private static double sum = 0.0

(這一大串是什麼)

import java.io.BufferedReader; 加上import java.io.FileReader; 等於 import java.io.*;這個嗎?

str2 += "," + str1; 是等於 str2=","+1; str2=str2+1;嗎??

(對不起> <因為是初學者 會的指令不多 謝謝您回答)

3 個已更新項目:

str2 = str2.substring(1);

scoreArrayString = str2.split(",");

scoreArrayDouble = new double[scoreArrayString.length];

import java.util.Arrays;-->這個目前還沒有學到

這些都不懂..

4 個已更新項目:

目前有學:if-else while for Arrary

但是陣列不怎麼會用(剛剛才發現學過,不好意思..)

要麻煩您簡易的解釋惹...

另外剛剛發現的問題

sum += d; 是等於 sum=sum+1; 嗎?

br.close(); 這個是什麼?

真的不好意思問這麼多,麻煩您惹>

2 個解答

評分
  • 7 年前
    最佳解答

    import java.io.BufferedReader;

    import java.io.FileReader;

    import java.util.Arrays;

    public class ReadFile {

    private static double sum = 0.0;// 總合

    private static double max = 0;// 最大數

    private static double min = 0;// 最小數

    private static double avg = 0;// 平均值

    private static double middle = 0;// 中位數

    private static String str1 = "";

    private static String str2 = "";

    private static String[] scoreArrayString;

    private static double[] scoreArrayDouble;

    public static void main(String[] args) throws Exception {

    BufferedReader br = new BufferedReader(new FileReader("d:\\Score.csv"));

    while ((str1 = br.readLine()) != null) {

    str2 += "," + str1;

    }

    str2 = str2.substring(1);

    scoreArrayString = str2.split(",");

    scoreArrayDouble = new double[scoreArrayString.length];

    for (int i = 0; i < scoreArrayString.length; i++) {

    scoreArrayDouble[i] = Double.parseDouble(scoreArrayString[i]);

    }

    Arrays.sort(scoreArrayDouble);

    for (double d : scoreArrayDouble) {

    sum += d;

    }

    max = scoreArrayDouble[scoreArrayDouble.length - 1];

    min = scoreArrayDouble[0];

    avg = sum / scoreArrayDouble.length;

    if (scoreArrayDouble.length % 2 == 0) {

    middle = (scoreArrayDouble[scoreArrayDouble.length / 2 - 1] + scoreArrayDouble[scoreArrayDouble.length / 2 - 1 + 1]) / 2;

    } else {

    middle = scoreArrayDouble[(int) scoreArrayDouble.length / 2 - 1 + 1];

    }

    System.out.println("最大數:" + max);

    System.out.println("最小數:" + min);

    System.out.println("平均值:" + avg);

    System.out.println("中位數:" + middle);

    br.close();

    }

    }

    2014-06-07 16:18:08 補充:

    請在d槽用Excel建一個檔名為Score的檔案,存成csv(逗號分隔數值檔)檔案類型,在儲存格內輸入數值型態的資料,切記數值間勿隔空,會有編譯問題

    參考資料: 自己, 自己
  • 匿名使用者
    7 年前

    到下面的網址看看吧

    ▶▶http://candy5660601.pixnet.net/blog

還有問題?馬上發問,尋求解答。