簡體   English   中英

添加從文本文件中讀取的雙打

[英]Add the doubles read from a text file

我差不多完成了我的項目,但我需要一些幫助。 我需要添加工作時間和工作小時數(例如,加班時間的輸出為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                   162        7              2584.50

這是現在的情況,因為我不知道如何添加小時數:

 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 ,所以你可以做同樣的事情來計算加班時間。 由於您已經有條件,因此將加班時間添加到“新”變量(例如hoursOvertime )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM