0

• 创建工资单文件
• 工资单文件包含人力资源和警察部门两个部门的 20 名员工的小时工资信息。该文件将有两列浮点数。第一栏是人力资源,第二栏是警察部门。所以每一行都有两个浮点数。
• 您需要使用[0, 100) 中的随机数作为双精度类型来创建工资单文件。
• 阅读工资单文件。
• 您需要使用 Scanner 对象的 nextLine() 来读取工资单文件中的每一行。
• 使用我们在课堂上讨论过的 splitString() 函数解析每一行以获得两个小时工资的数组。该函数将返回 String [] 类型。String 和 Character 类的功能将有助于解决 splitString。
• 计算每个部门的总工资和平均工资
• 您需要使用 Double.parseDouble() 将字符串类型的工资转换为双精度类型
• 编写一个包含总工资和平均工资的输出文件。
• 输入文件名使用“pay.txt”,输出文件名使用“summary.txt”。

现在我明白了如何在没有数组的情况下做到这一点,因为我已经完成了。但是一旦我应该将 txt 文件解析成多个数组,我就完全迷失了。我的教授禁止我们使用 in.hasNextDouble(),这就是我解决最后一个程序的方法。如果没有它,如何将程序中txt文件中同一行的两个数字分成两个不同的数组?

这是上一个程序的代码,也是我目前使用当前程序的代码。

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