gpt4 book ai didi

java - 无法获取输出年薪总额的代码

转载 作者:行者123 更新时间:2023-12-02 03:46:33 24 4
gpt4 key购买 nike

我创建了两个从基本“Employee”类扩展而来的类。我在下面展示了 Employee 和 Salesman 类。我需要配置 Salesman 类来显示年薪总额。员工类打印没有问题,但是,我无法让推销员类打印年薪。我确信这很简单,但我被困住了。如有任何帮助,我们将不胜感激!

这是我当前得到的输出:

2014 年员工:

员工姓名:Smuck,Jenna,月薪=$3,000.00,年薪=$36,000.00

销售员姓名:Joans,Barbara,月薪=$3,200.00,年销售额=$100,000.00

销售员姓名:McMains,Ashley,月薪=$2,900.00,年销售额=$400,000.00

高管姓名:Seibert,Greg,月薪=$5,000.00,股票价格=$49.00

2014 年所有员工的平均工资 = $25,891.00

2015年员工:

员工姓名:Kallinen,Brion,月薪=$3,100.00,年薪=$37,200.00

销售员姓名:Mentzer,Dickey,月薪=$4,100.00,年销售额=$75,000.00

销售员姓名:Thomas,Carol,月薪=$3,800.00,年销售额=$90,000.00

高管姓名:Tofte,Abby,月薪=$4,800.00,股票价格=$190.00

高管姓名:Kuehn,Jennifer,月薪=$6,000.00,股票价格=$79.00

高管姓名:Brown,Eric,月薪=$6,500.00,股票价格=$51.00

2015 年所有员工的平均工资 = $57,432.67

构建成功(总时间:0秒)

我需要它来打印销售员和高管的年薪。

    package AverageSalary;

public class Employee {

private String employeeName;
private double monthlySalary;

// Constructor that initiailizes name and monthly salary
public Employee(String EmployeeName, double mnthSalary) {
employeeName = EmployeeName;
monthlySalary = mnthSalary;
}

//set Employee Name function
public void setEmployeeName(String employeeName) {
this.employeeName = employeeName;
}

//get Employee Name Function
public String getEmployeeName() {
return employeeName;
}

//monthlySalary
public void setMonthlySalary(double monthlySalary) {
this.monthlySalary = monthlySalary;
}

public double getMonthlySalary() {
return monthlySalary;
}

// Method named annualSalary returns the salary for a whole year.
public double annualSalary() {
return getMonthlySalary() * 12;
}

// toString method returns string containing name and monthly salary
public String toString() {
return String.format("\nEmployee Name: %s, Monthly Salary=$%,.2f,"
+ "Annual Salary=$%,.2f", getEmployeeName(), getMonthlySalary(),
annualSalary());
}
}

________________________________________________________________________


package AverageSalary;

import java.util.HashSet;

public class Salesman extends Employee{
private double annualSales;

public double getAnnualSales() {
return annualSales;
}

// Constructor that initializes name, monthly salary and annual sales
Salesman(String Name, double mnthSalary, double dblAnnualSales)
{
super(Name, mnthSalary);
this.annualSales=dblAnnualSales;
}

//An overridden method annualSalary that returns the salary for year
//Salary of salesman consists of base salary computed from the monthly
salary plus a commission.
//The commission is computed as 2% of that salesman's annual sales.
//The maximum commission a salesman can earn is $20,000.

@Override
public double annualSalary()
{
double dblSalesCommission=0;
dblSalesCommission=(getMonthlySalary()*12)*0.02;

if ( dblSalesCommission > 20000)
dblSalesCommission=20000;

return getMonthlySalary()+dblSalesCommission;
}
@Override
public String toString()
{
return String.format("\nSalesman Name: %s, Monthly
Salary=$%,.2f,Annual
Sales=$%,.2f",
getEmployeeName(), getMonthlySalary(),
getAnnualSales() );
}
}

最佳答案

我可以找到你的两个问题。

你的推销员toString()实际上并没有打印出年薪。我将其更改为:

@Override
public String toString() {
return String
.format("\nSalesman Name: %s, Monthly Salary=$%,.2f,Annual Sales=$%,.2f,Annual Salary=$%,.2f",
getEmployeeName(), getMonthlySalary(), getAnnualSales(), annualSalary());
}

此外,您的annualSalary()计算不正确,您需要将月薪乘以12,然后加上佣金。

@Override
public double annualSalary() {
double dblSalesCommission = 0;
dblSalesCommission = getAnnualSales() * 0.02;

if (dblSalesCommission > 20000)
dblSalesCommission = 20000;

return (12.0 * getMonthlySalary()) + dblSalesCommission;
}

进行这些更改为我产生了正确的输出:

Employee Name: Test Guy, Monthly Salary=$5,000.00,Annual Salary=$60,000.00
Salesman Name: Sales Guy, Monthly Salary=$5,000.00,Annual Sales=$100,000.00,Annual Salary=$61,200.00

关于java - 无法获取输出年薪总额的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36248144/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com