It程序员工资都很高吗:员工工资计算(emp pfp)

任务说明

我有这样的问题陈述:创建一个类员工与以下私有成员变量。

int employeeId
String employeeName
double salary
double netSalary

在 Employee 类中包括适当的 getter 和 setters 方法。在 Employee 类中编写以下方法:public void calculateNetSalary (int pfpercentage)-此方法应将 PF 百分比作为参数。从薪金中减去 PF 金额并设置 netSalary。

创建一个 Main 类,它具有调用该方法以获取输入并打印详细信息的 main 方法,如示例所示。

也写一个方法:

公共静态 Employee getEmployeeDetails()-获取员工详细信息-id,姓名和薪水,并返回员工对象。

public static int getPFPercentage ()-获取 PF 百分比并返回相同的

在 main 方法中调用上述两个方法,然后调用 Employee 类中的 calculateNetSalary 方法,并打印如下所示的输出。

示例输入1:

输入 ID:101 输入名称:Vivek 输入薪水:20000 输入 PF 百分比:7

示例输出1:

Id:101

名称:Vivek

工资:20000.0

工资净额:18600.0

我做了什么

我在 Employee.java 中编写了 getter & amp;setters 方法和 calculateNetSalary()方法。我被困在 Main.java 中应该写什么以及如何写

Employee.java

public cl Employee{
    private int employeeId;
    private String employeeName;
    private double salary;
    private double netSalary;
    //setters
    public void setEmployeeId(int employeeId){
        this.employeeId=employeeId;
    }
    public void setEmployeeName(String employeeName){
        this.employeeName=employeeName;
    }
    public void setSalary(double salary){
        this.salary=salary;
    }
    public void netSalary(double netSalary){
        this.netSalary=netSalary;
    }
    //getters
    public int getEmployeeId(){
        return employeeId;
    }
    public String getEmployeeName(){
        return employeeName;
    }
    public double getSalary(){
        return salary;
    }
    public double getNetSalary(){
        return netSalary;
    }
    public void calculateNetSalary(int pfpercentage){
        pfamount=salary*pfpercentage;
        netSalary=salary-pfamount;
    }
}

Main.java

import java.util.Scanner;
public cl Main{
    public staic void main(String[] args){
        Scanner sc = new Scanner(System.in);
        Employee emp = new Employee();
        System.out.println("Enter Id:"+setEmployeeId(sc.nextInt()))
        System.out.println("Enter Name:"+setEmployeeName(sc.next()));
        System.out.println("Enter salary:"+setSalary(sc.nextDouble()));
        System.out.println("Enter PF percentage:");
        double pfpercentage = sc.nextDouble();
        public static Employee getEmployeeDetails(){
        }
        public static int getPFPercentage(){
        }
    }
}

我无法完成 Main.java,因为我不知道什么和如何写。

1

这应该是你的代码:

 public void main(String[] args){
        Scanner sc = new Scanner(System.in);
        Employee emp = new Employee();
        emp.setEmployeeId(sc.nextInt());
        emp.setEmployeeName(sc.next()) ;
        emp.setSalary(sc.nextDouble());
        System.out.println("Enter PF percentage:");
        double pfpercentage = sc.nextDouble();
        emp.calculateNetSalary(pfpercentage);
        System.out.println("Salay is " + emp.getNetSalary());
    }

另外请注意,您还没有定义 pfamount 的类型:

 public void calculateNetSalary(double pfpercentage){
        double pfamount=salary*pfpercentage;
        netSalary=salary-pfamount;
    }

您不能在 main () 方法中定义其他方法。您可以在其中调用其他方法(根据需要)。

0

您的代码中有几个问题。首先看Employee.java,有几个问题:

设置netSalary的方法被声明为public void netSalary(double netSalary),它应该是public void SetNetSalary(double netSalary)

public void calculateNetSalary(int pfpercentage)中的计算看起来不正确。如果您要传递一个双精度(即 2 表示 2 %),那么您需要将其除以 100 以将数字转换为百分比。

如果要使用变量,则需要声明变量(nameltypfamount需要声明为double,然后才能为其分配某些内容)。

您可能需要一个public String toString()方法来打印您的员工对象。

所以你最终会得到这样的东西:

public cl Employee{
  private int employeeId;
  private String employeeName;
  private double salary;
  private double netSalary;
//setters
  public void setEmployeeId(int employeeId){
      this.employeeId=employeeId;
  }
  public void setEmployeeName(String employeeName){
      this.employeeName=employeeName;
  }
  public void setSalary(double salary){
      this.salary=salary;
  }
  public void setNetSalary(double netSalary){
      this.netSalary=netSalary;
  }
  //getters
  public int getEmployeeId(){
      return employeeId;
  }
  public String getEmployeeName(){
      return employeeName;
  }
  public double getSalary(){
      return salary;
  }
  public double getNetSalary(){
      return netSalary;
  }
  public void calculateNetSalary(double pfpercentage) {
      double pfamount = salary * (pfpercentage / 100);
      netSalary = salary - pfamount;
  }
  @Override
  public String toString() {
      String output = new StringBuffer()
              .append("Id: ").append(employeeId)
              .append(System.lineSeparator()).append("Name: ").append(employeeName)
              .append(System.lineSeparator()).append("Salary: ").append(salary)
              .append(System.lineSeparator()).append("Net Salary: ").append(netSalary).toString();
      return output;
  }
}

您的Main.java也有几个问题:

你不能在方法中声明方法。

这不是实现java.util.Scanner...System.out.println("Enter Id:"+setEmployeeId(sc.nextInt()))的正确方法。本质上,扫描仪部分需要与System.out分开(请记住,System.out所做的唯一事情是打印出文本,它不等待来自扫描仪的输入)。

如果我正确理解你的问题,你需要将你的一些逻辑移出你的主要方法,并进入getEmployeeDetails()getPFPercentage()

所以你最终会得到这样的东西:

import java.util.Scanner;
public cl EmployeeSalaryCalculation {
private Scanner scanner;
  public EmployeeSalaryCalculation() {
    scanner = new Scanner(System.in);
  }
  public Employee getEmployeeDetails() {
      Employee employee = new Employee();
      System.out.println("Enter Id:");
      employee.setEmployeeId(scanner.nextInt());
      System.out.println("Enter Name:");
      employee.setEmployeeName(scanner.next());
      System.out.println("Enter salary:");
      employee.setSalary(scanner.nextDouble());
      return employee;
  }
  public double getPFPercentage(){
      System.out.println("Enter PF percentage:");
      return scanner.nextDouble();
  }
  public static void main(String[] args) {
      EmployeeSalaryCalculation employeeSalaryCalculation = new EmployeeSalaryCalculation();
      Employee employee = employeeSalaryCalculation.getEmployeeDetails();
      employee.calculateNetSalary(employeeSalaryCalculation.getPFPercentage());
      System.out.println(employee.toString());
  }
}
0

你已经有了一个好的开始。但是,有几个语法错误,比如忘记用分号结束一些语句。另外,据我所知,Java 不支持嵌套方法,所以你不应该在你的main方法中有getEmployeeDetails()getPFPercentage()方法。我已经重新安排了代码来纠正这一点。

我所做的其他更改是对您的Employee类,特别是calculateNetSalary方法。pfPercentage在乘以salary之前除以 100。此外,实例变量netSalary在使用适当的 setter 方法计算后被设置为局部变量netSalary。自netSalary

除了根据规范完成Main类之外,我没有对您的代码进行任何其他更改。

Main.java
import java.util.Scanner;
public cl Main {
    private static Scanner scanner = new Scanner(System.in);
    public static void main(String[] args){
        Employee newEmployee = getEmployeeDetails();
        double pfPercentage = getPFPercentage();
        System.out.println();
        System.out.println("Confirm employee details: ");
        System.out.println("Id : " + newEmployee.getEmployeeId());
        System.out.println("Name : " + newEmployee.getEmployeeName());
        System.out.println("Salary : " + newEmployee.getSalary());
        newEmployee.calculateNetSalary(pfPercentage);
        System.out.println("Net Salary : " + newEmployee.getNetSalary());
    }
    /**
     * Gets the details of a new employee from user input
     * @return the new {@link Employee}
     */
    public static Employee getEmployeeDetails() {
        Employee employee = new Employee();
        System.out.println("Enter Id: ");
        employee.setEmployeeId(scanner.nextInt());
        System.out.println("Enter Name: ");
        employee.setEmployeeName(scanner.next());
        System.out.println("Enter salary: ");
        employee.setSalary(scanner.nextDouble());
        return employee;
    }
    /**
     * Gets the PF percentage from user input
     * @return the PF percentage
     */
    public static double getPFPercentage(){
        System.out.println("Enter PF percentage:");
        double pfPercentage = scanner.nextDouble();
        return pfPercentage;
    }
}

Employee.java

public cl Employee{
    private int employeeId;
    private String employeeName;
    private double salary;
    private double netSalary;
    // Setters
    public void setEmployeeId(int employeeId){
        this.employeeId = employeeId;
    }
    public void setEmployeeName(String employeeName){
        this.employeeName = employeeName;
    }
    public void setSalary(double salary){
        this.salary = salary;
    }
    private void setNetSalary(double netSalary){
        this.netSalary = netSalary;
    }
    // Getters
    public int getEmployeeId(){
        return employeeId;
    }
    public String getEmployeeName(){
        return employeeName;
    }
    public double getSalary(){
        return salary;
    }
    public double getNetSalary(){
        return netSalary;
    }
    public void calculateNetSalary (double pfPercentage){
        double pfAmount = salary * (pfPercentage / 100);
        double netSalary = salary - pfAmount;
        this.setNetSalary(netSalary);
    }
}
0

编写一个类,Manager,它扩展了 MonthlyEmployee,并具有另一个实例变量,奖金和一个实例方法 setBonus。重写 pay 方法并相应地更新 TestEmployee。3.编写一个类 TestShapes,它创建每个形状类的实例并打印出来。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(545)
N sga 2:Oracle数据库配置中的SGA和PGA
上一篇
懂码小程序:我不知道怎么打开这个 我不太懂技术
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(12条)