【发布时间】:2014-10-29 23:28:00
【问题描述】:
我有一个困扰我的学校问题。问题是总工资一直是 0.0。
问题来了:
设计一个包含以下字段的 Payroll 类:
• name : 包含员工姓名的字符串 • idNumber:一个表示员工 ID 号的 int • rate:包含员工小时工资率的双精度值 • hours:一个int,表示该员工工作的小时数
该类还应具有以下方法:
• 构造函数:将员工姓名和身份证号作为参数 • 访问器:允许访问薪资类的所有字段 • Mutators:让用户为 Payroll 类的字段赋值 • GrossPay:返回员工的工资总额,计算方式为: 工作时间乘以小时工资率。
编写另一个程序,通过创建 Payroll 对象来演示该类,然后 要求用户按顺序输入员工的数据:姓名、身份证号、费率、小时数。 然后程序应该打印出以下格式的语句(例如,如果 您有一位名叫 Chris Jacobsen 的员工,其 ID 号为 11111,他在 10 美元/小时):
员工编号 11111 的 Chris Jacobsen 的总工资为 50.00 美元。
使用文本格式将总工资四舍五入到小数点后两位。
这是我目前所拥有的:
import java.util.Scanner;
public class Payroll
{
private String EmployeeName;
private int IDnumber;
private double HourlyPayRate;
private double TotalHoursWorked;
private double TotalGrossPay;
public Payroll(String Name, int ID, double HourlyRate, double HoursWorked)
{
EmployeeName = Name;
IDnumber = ID;
}
public String getEmployeeName()
{
return EmployeeName;
}
public int getIDnumber()
{
return IDnumber;
}
public void setHourlyPayRate(double HourlyRate)
{
HourlyPayRate = HourlyRate;
}
public double getHourlyPayRate()
{
return HourlyPayRate;
}
public void setTotalHoursWorked(double HoursWorked)
{
TotalHoursWorked = HoursWorked;
}
public double getTotalHoursWorked()
{
return TotalHoursWorked;
}
public void setTotalGrossPay(double GrossPay)
{
TotalGrossPay = GrossPay;
}
public double getTotalGrossPay(double HourlyRate, double HoursWorked)
{
TotalGrossPay = HourlyRate * HoursWorked;
return TotalGrossPay;
}
public static void main(String[] args)
{
String EmployeeName;
int IDnumber;
double TotalHoursWorked;
double HourlyPayRate;
double TotalGrossPay;
Scanner keyboard = new Scanner(System.in);
System.out.print("Enter employee's name:");
EmployeeName = keyboard.nextLine();
System.out.print("Enter employee's ID number:" );
IDnumber = keyboard.nextInt();
System.out.print("Enter hourly rate:");
HourlyPayRate = keyboard.nextDouble();
System.out.print("Enter number of hours worked:");
TotalHoursWorked = keyboard.nextDouble();
Payroll pay = new Payroll(EmployeeName, IDnumber, HourlyPayRate, TotalHoursWorked);
System.out.print(EmployeeName + ", " + "employee number " + IDnumber + ", made $" +
pay.TotalGrossPay + " in gross pay.");
}
}
感谢您的帮助...
【问题讨论】:
-
你提供什么作为输入?
-
您错过了对方法 getTotalGrossPay 的调用。不要使用 pay.TotalGrossPay (因为这将返回默认设置为 0 的当前值)而不是执行此支付。 getTotalGrossPay()
-
你必须调用你的方法而不是付费。 getTotalGrossPay 并且您的方法必须是静态的,或者在您的主要方法中为 pay 类定义实例...
标签: java