• 給与ファイルの作成
• 給与ファイルには、人事部門と警察部門の 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]);
}
}
}
私は道に迷っており、私の先生はほとんど役に立ちません。