Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 添加从文本文件读取的双精度值_Java_File Io_Text Files - Fatal编程技术网

Java 添加从文本文件读取的双精度值

Java 添加从文本文件读取的双精度值,java,file-io,text-files,Java,File Io,Text Files,我的项目快完成了,但我需要一些帮助。我需要将加班小时数和工作小时数相加(例如,加班小时数的输出为7,因为一段时间只有两个人工作),但我不知道如何继续。代码如下: static final double OVERTIME_RATE = 1.5; static final double FULL_TIME = 40.0; static double totalGrossAmount; static double grossAmount; static double hourlyRate; st

我的项目快完成了,但我需要一些帮助。我需要将加班小时数和工作小时数相加(例如,加班小时数的输出为7,因为一段时间只有两个人工作),但我不知道如何继续。代码如下:

static final double OVERTIME_RATE = 1.5; 
static final double FULL_TIME = 40.0; 
static double totalGrossAmount;
static double grossAmount;
static double hourlyRate; 
static double hoursWorked;
static double hoursOT;
static double totalHoursOT;
static StringBuffer employeeName;


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

    reportOverlay(); 
    makeFile();

    Scanner scan = new Scanner(new FileReader("Employee.dat")); 

    while(scan.hasNextLine()) { 

        employeeName = new StringBuffer(scan.nextLine()); 
        hoursWorked = new Double(scan.nextDouble());
        hoursOT = new Double(scan.nextDouble());
        hourlyRate = new Double(scan.nextDouble()); 

        scan.nextLine(); 

        double[] pay = processPay(hoursWorked, hoursOT, hourlyRate);

        printEmployeeInfo(employeeName, hoursWorked, hoursOT, hourlyRate,
                          pay[0]); 
    } 

    scan.close(); 
    totalAmounts(); 
} 

static void reportOverlay() { 

    String reportStr = "Employee             Hours    Hours     Pay      Amount     \n" 
                     + "Name                 Worked   Overtime  Rate     Earned    \n" 
        + "-------------------- -------- --------- -------- --------\n"; 

    System.out.print(reportStr); 
} 

static double[] processPay(double hoursWorked, double hoursOT, double payRate ) { 


    grossAmount = 0;                   // <*********
    if(hoursWorked > FULL_TIME)
    {
        grossAmount = (payRate * FULL_TIME) +
                      (payRate * OVERTIME_RATE * (hoursWorked - FULL_TIME));
    }   
    else 
        grossAmount = payRate * hoursWorked; 

    totalGrossAmount = totalGrossAmount + grossAmount;  
    return new double[] {grossAmount};
} 

static void printEmployeeInfo(StringBuffer employeeName, double hoursWorked,
                              double hoursOT, double payRate,
                              double gross) 
{            // <*********
    System.out.printf("%-20s %8.2f %9.2f %8.2f %8.2f%n", employeeName,
                      hoursWorked, hoursOT, payRate, gross); // <*********
} 

static void totalAmounts() { 

    System.out.printf("Total %51.2f%n", totalGrossAmount); 
    System.out.println(); 
} 

static void makeFile() throws FileNotFoundException { 

    PrintWriter printF = new PrintWriter("Employee.dat"); 

    printF.write("Bugs Bunny\n40 0 15.25\nRoad Runner\n35 0 15.35\n"
                +"Wild E. Coyote\n45 5 16.00\nDaffy Duck\n42 2 15.75\n"); 
    printF.close(); 
} 

/*static void totalHours() {

    totalHoursOT = hoursWorked - FULL_TIME;
        if (totalHoursOT < 0)
        {


}
这就是现在的情况,因为我不知道如何添加小时数:

 Employee             Hours    Hours     Pay      Amount      
Name                 Worked   Overtime  Rate     Earned     
-------------------- -------- --------- -------- --------
Bugs Bunny              40.00      0.00    15.25   610.00
Road Runner             35.00      0.00    15.35   537.25
Wild E. Coyote          45.00      5.00    16.00   760.00
Daffy Duck              42.00      2.00    15.75   677.25
Total                                             2584.50

您已经有了
grossAmount=0
,因此您可以在计算加班时数时执行相同的操作。由于您已经有了一个条件,只需将加班时间添加到“新”变量(例如
hours加班
)。

计算工作时间和加班时间的方法与计算收入的方法相同。你的思路是对的。为了与产出相匹配,你可能需要将加班总时间和工作总小时数转换为整数。@MikeKoch我该怎么做?我已经为此工作了6个小时了,所以我有点累了。。。你能再详细一点吗?谢谢。@user3606035:您已经有了
grossAmount=0
。为
小时加班时间
创建另一个变量。然后,看看你的一个条件,那就是
hourswerworked>FULL\u TIME
。由于这是加班,请计算出他们全职工作的小时数,并将其添加到变量
hours加班时间
@user3606035中。没问题。我继续把它作为一个社区维基发布,因为答案已经在这里的评论中解决了。
 Employee             Hours    Hours     Pay      Amount      
Name                 Worked   Overtime  Rate     Earned     
-------------------- -------- --------- -------- --------
Bugs Bunny              40.00      0.00    15.25   610.00
Road Runner             35.00      0.00    15.35   537.25
Wild E. Coyote          45.00      5.00    16.00   760.00
Daffy Duck              42.00      2.00    15.75   677.25
Total                                             2584.50