-1
私は、有料スタブを作成するという目標に問題を作りました。このプログラムは、 "$ 0.00"というだけでなく、通常の賃金の出力を生成しません。問題を理解することはできません。期待Java出力のエラー
: "正規営業時間:40レッグレート:$ 15.50レッグペイ: $ 620.00一室"
私のコード: "正規営業時間:40レッグレート:$ 15.50レッグ ペイ:$ 0.00"
Iそれを再フォーマットしようとしましたが、まだこのエラーが発生しています。
public class Activity2PayStub {
public static final double OVERTIME_FACTOR = 1.5;
public static final double FEDERAL_FACTOR = 0.2;
public static final double SOCIAL_FACTOR = 0.1;
private String employeeName;
private String employeeSSN;
private int regularH;
private int overtimeH;
private double payrateH;
private double regularPay = (regularH * payrateH);
private double overtimePR = payrateH * (OVERTIME_FACTOR);
private double overtimePay = overtimePR * overtimeH;
private double grossPay = regularPay + overtimePay;
private double ssTax = grossPay * (SOCIAL_FACTOR);
private double federalTax = (grossPay - ssTax) * (FEDERAL_FACTOR);
private double netPay = grossPay - (federalTax + ssTax);
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
Activity2PayStub a2ps = new Activity2PayStub();
a2ps.getInput(keyboard);
a2ps.calculate();
a2ps.printPayStub();
}
/** @param keyboard command-line arguments. */
public void getInput(Scanner keyboard) {
System.out.print("Enter employee name: ");
employeeName = keyboard.nextLine();
System.out.print("Enter employee SNN (incl. hyphens: ");
employeeSSN = keyboard.nextLine();
System.out.print("Enter number of regular hours worked: ");
regularH = keyboard.nextInt();
System.out.print("Enter number of overtime hours worked: ");
overtimeH = keyboard.nextInt();
System.out.print("Enter hourly pay rate : ");
payrateH = keyboard.nextDouble();
}
public void calculate() {
}
/** simply prints. */
public void printPayStub() {
Scanner input = new Scanner(System.in);
System.out.println("_______________________"
+ "_____________________________________________");
String format = "Name: %-37s SSN: %-11s\n";
System.out.printf(format, employeeName, employeeSSN);
format = "Regular Hours: %-8d Reg Rate: $%-8.2f Reg Pay: $%-8.2f\n";
System.out.printf(format, regularH, payrateH, regularPay);
format = "Overtime Hours: %-8dOT Rate: $%-8.2f OT Pay: $%-8.2f\n";
System.out.printf(format, overtimeH, overtimePR, overtimePay);
format = "Gross Pay: $%-8.2f\n";
System.out.printf(format, grossPay);
format = "SS Withholding: $%-8.2f\n";
System.out.printf(format, ssTax);
format = "Federal Tax: $%-8.2f\n";
System.out.printf(format, federalTax);
format = "Net Pay: $%-8.2f\n";
System.out.printf(format, netPay);
System.out.println("________________________"
+ "__________________________________________");
}
}
ありがとう!私はそれを試して、私はまだ同じエラーが表示されます。 – Lynn
@Lynn次に、質問を更新して、実装の正確性を示してください。 –
あなたがしたことは、インスタンス変数と同じ名前のローカル変数を宣言することでした。インスタンス変数を参照する必要があります。ステートメントのデータ型部分を削除すると、それが機能します。基本のいくつかを忘れているように見えるので、[クラスとオブジェクト](https://docs.oracle.com/javase/tutorial/java/javaOO/index.html)を読むことをお勧めします。 –