Java 受薪雇员

Java 受薪雇员,java,Java,嘿,伙计们,第一次来这里。我开始学习Java,我们的第一个任务之一是: 假设我们想在全职、领薪水的公司员工档案中确定薪酬最高的员工。对于受薪员工,文件中的每一行包括姓名、工资和可选奖金。总工资为工资加奖金(如果发放奖金);0表示没有奖金。例如,假设文件“salaried.txt”包含以下内容: Agrawal,Harsh 450.00 0 Chiger,Steve 420.00 60.00 Cromer,Jason 460.00 0 Petkov,Yuli 430.00 40.

嘿,伙计们,第一次来这里。我开始学习Java,我们的第一个任务之一是:

假设我们想在全职、领薪水的公司员工档案中确定薪酬最高的员工。对于受薪员工,文件中的每一行包括姓名、工资和可选奖金。总工资为工资加奖金(如果发放奖金);0表示没有奖金。例如,假设文件“salaried.txt”包含以下内容:

Agrawal,Harsh 450.00  0

Chiger,Steve  420.00 60.00

Cromer,Jason  460.00  0

Petkov,Yuli   430.00 40.00

Siddiqi,Amena 460.00 15.00
然后工资最高的员工是奇格,史蒂夫,总工资480.00美元

每次我尝试运行该程序时,它都不会读取文件名。我不知道我是否在受薪员工或受薪公司中遗漏了一些东西,但我的代码如下。我基本上被卡住了

import java.text.DecimalFormat;
public class SalariedEmployee extends FullTimeEmployee 
{
     protected double grossPay,    
                 bonus,
                 salary;

public SalariedEmployee()
{
    grossPay=0.00;
    bonus=0.00;  
    salary=0.00;
}
public SalariedEmployee (String name, double salary, double bonus) 
{        
    this.name = name;
    this.salary=salary;
    this.bonus=bonus;
    if (bonus==0)
    {
        grossPay+=salary;
    }
    else 
    {
        grossPay=salary+bonus;
    }
}
public boolean setSalaryPay(double income)
{
    if(income<0)
    {
        return false;
    }
    this.salary=income;
    return true;
}
public double getSalary()
{
         return salary;
         }
public double getBonus()
{
    return bonus;
}
public String toString()
{       
    final String FULL_TIME_STATUS = "FULL TIME SALARIED";
    return super.toString() + FULL_TIME_STATUS;
} // meth

}


import java.util.*;
import java.io.*;

 public class SalariedCompany extends Company
 {
public static void main (String[ ] args) throws FileNotFoundException 
{
    new SalariedCompany().run();
} 
protected SalariedEmployee getNextEmployee (Scanner sc)
{
    Scanner lineScanner = new Scanner (sc.nextLine());

    String name = lineScanner.next();       

    double salary = lineScanner.nextDouble();        

    double bonus = lineScanner.nextDouble();  

    return new SalariedEmployee (name, salary, bonus);
} // method getNextEmployee     

} // class HourlyCompany 
再次提前感谢各位。

这里:

fileName = new Scanner (System.in).nextLine();
Scanner sc = new Scanner (new File (fileName));
。。。您正在从用户处获取文件名。错误的基本可能性是以何种形式给出文件路径。尝试修改代码:

fileName = new Scanner (System.in).nextLine();
File file = new File (fileName);
// print actual file absolute path
System.out.printf("File absolute path: %s", file.getAbsolutePath());

Scanner sc = new Scanner (file);
像往常一样运行应用程序,并查看实际绝对文件路径的输出。如果它不符合您的期望(例如,您键入
salaries.txt
,它会给您
C:\Users\user\…\folder with app\dist\salaries.txt
),那么这意味着您将您的应用程序指向不同的
salaries.txt
文件


如果是这种情况,请尝试将绝对路径输入real
salaries.txt
文件,或将其移动到文件夹中,该文件夹在
文件绝对路径:
-s输出中指定。

代码太多了。您是否已经缩小了可能发生错误的范围?我推荐。
fileName = new Scanner (System.in).nextLine();
File file = new File (fileName);
// print actual file absolute path
System.out.printf("File absolute path: %s", file.getAbsolutePath());

Scanner sc = new Scanner (file);