Java 受薪雇员
嘿,伙计们,第一次来这里。我开始学习Java,我们的第一个任务之一是: 假设我们想在全职、领薪水的公司员工档案中确定薪酬最高的员工。对于受薪员工,文件中的每一行包括姓名、工资和可选奖金。总工资为工资加奖金(如果发放奖金);0表示没有奖金。例如,假设文件“salaried.txt”包含以下内容: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.
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);