0

理由がわからないという問題があります。いくつかの入力を取り、給与、税金、および最終的な支払いを計算するプログラムを作成しています。最終的な支払い以外はすべて機能しています。

これにより、最終的な支払いが計算されます

import java.util.*;
public class Payroll extends  Pay
{

public double calc_payroll()
  {
    super.calc_payroll();
    super.tax();

    netPay = grossPay - (grossPay * (tax/100));

    return netPay;

  }
}

これは給与と税金を計算します

import java.util.*;
public class Pay
{
private float hoursWrkd;
private float rate;
private int hoursStr;

float grossPay;
int tax;
float netPay;


public double calc_payroll()
{
    grossPay = getHoursWrkd()*getRate();
    return grossPay;

}

public double tax()
{
    if (grossPay <= 399.99)
    {
        tax = 7;
    }
    else if (grossPay >= 400.00 && grossPay <= 899.99)
    {
        tax = 11;
    }
    else if (grossPay <= 900.00)
    {
        tax = 15;
    }

    return tax;
}


//Get & Set for hours worked
public float getHoursWrkd()
{
    return hoursWrkd;
}
public void setHoursWrkd(float hoursWrkd)
{
    this.hoursWrkd = hoursWrkd;
}
//Get & Set for Rate
public float getRate()
{
    return rate;
}
public void setRate(float rate) {
    this.rate = rate;
}
//Get & Set for hours straight
public int getHoursStr()
{
    return hoursStr;
}
public void setHoursStr(int hoursStr)
{
    this.hoursStr = hoursStr;
}
}

これにより、すべてが表示されます

public class CalPayroll extends Pay
{
public void displayInfo()
{
   super.calc_payroll();
   super.tax();

    Payroll colio = new Payroll();
    colio.calc_payroll();

    NumberFormat dollars = NumberFormat.getCurrencyInstance();

    System.out.println("Gross Pay is : " + dollars.format(grossPay));
    System.out.println("Tax is : " + tax + "%");
    System.out.println("Net Pay is : " + dollars.format(netPay));
}

他にもファイルがありますが、それらは入力を受け取り、他のファイルを呼び出すだけのものです。

計算は正しいのですが、netPay 変数を呼び出してフォーマットしようとすると、金額が表示されません。グロスペイではそれが機能します。しかし、私の先生は、それを使用できるようにグロスペイを税金に変換することになっていると言いましたが、それで問題が解決するかどうかはわかりません。

助けてください。

4

1 に答える 1

0

netPayfromを表示しようとしましたCalPayrollが、このクラスはこの値を計算しません。あなたがするとき

Payroll colio = new Payroll();
colio.calc_payroll();

おそらく、netPayが で計算されることを期待してCalPayroolいますが、実際には別のオブジェクトで別の値を計算しているため、現在のオブジェクトには影響しません。

于 2016-02-25T10:56:54.033 に答える