0

• 給与ファイルの作成
• 給与ファイルには、人事部門と警察部門の 2 つの部門の 20 人の従業員の時給情報が含まれています。ファイルには、浮動小数点数の 2 つの列が含まれます。最初の列は人事部門、2 番目の列は警察部門です。したがって、各行には 2 つの浮動小数点数があります。
• double 型として [0, 100) の乱数を使用して、給与ファイルを作成する必要があります。
• 給与ファイルの読み取り。
• 給与計算ファイルから各行を読み取るには、Scanner オブジェクトの nextLine() を使用する必要があります。
• クラスで説明した splitString() 関数を使用して、各行を解析して 2 つの時給の配列を取得します。関数は String [] 型を返します。String および Character クラスの関数は、splitString を解決するのに役立ちます。
• 各部門の合計給与と平均給与を計算します
。 • Double.parseDouble() を使用して、String 型の給与を double 型に変換する必要があります。 • 合計給与と平均給与を
出力ファイルに書き込みます。
• 入力ファイル名には「pay.txt」、出力ファイル名には「summary.txt」を使用します。

完成したので、配列なしでこれを行う方法を理解しました。しかし、txtファイルを複数の配列に解析することになったら、完全に失われます。私の教授は、in.hasNextDouble() の使用を禁止しています。これは、前回のプログラムを解決した方法です。プログラムのtxtファイルの同じ行にある2つの数値を、それなしで2つの異なる配列に分割するにはどうすればよいですか?

これが最後のプログラムのコードで、現在のプログラムのコードです。

public class FileHandling {
public static void main(String [] args) throws FileNotFoundException{
    File inputFileName = new File("input.txt");
    Scanner in = new Scanner(inputFileName);


    double averageWorker = 0;
    double averageHr = 0;

    double totalWorkerPay = 0;
    System.out.println("    HR\t\tWorkers");
    double totalHrPay = 0;
    while (in.hasNextDouble()) {
        double humanResourcesPay = in.nextDouble();
        System.out.printf("%8.3f\t", humanResourcesPay);
        totalHrPay += humanResourcesPay;



        double workerPay = in.nextDouble();
        System.out.printf("%.3f\n", workerPay);
        totalWorkerPay += workerPay;


        averageWorker = totalWorkerPay/3;
        averageHr = totalHrPay/3;


    }
    System.out.printf("Total pay for HR is %.1f", totalHrPay);
    System.out.printf("\nAverage pay for HR is %.1f", averageHr);
    System.out.printf("\nThe total pay for Workers is %.1f", totalWorkerPay);
    System.out.printf("\nAverage pay for Workers is %.1f", averageWorker);


    System.out.print("\nEnter the file name:");
    Scanner console = new Scanner(System.in);
    String outputFileName = console.nextLine();
    PrintWriter out = new PrintWriter(outputFileName);
    System.out.println("total is " + totalHrPay);

    in.close();
    out.close();

}






}

さて、これが私がこの宿題でこれまでに持っているものです。

public class FileHandlingNextLine {


public static void main(String [] args) throws FileNotFoundException{
    File inputFileName = new File("pay.txt");
    Scanner in = new Scanner(inputFileName);
    int i = 0;
    int j = 0;

    double total[] = new double[2];
    while (in.hasNextLine()) {
        String line = in.nextLine();
        System.out.println("Line : " + line);
        String pays[] = splitString(line);
        for(i = 0; i < pays.length; i++) {
        System.out.printf(pays[i]);     

        total[i] += Double.parseDouble(pays[i]);

    }
    }

}

私は道に迷っており、私の先生はほとんど役に立ちません。

4

0 に答える 0