問題:最後に、mainメソッドを含む第4のクラスが存在するはずです。従業員情報をテキストファイルから読み込む必要があります。テキストファイルの各行は、1人の従業員の情報を1年間表示します。テキストファイルの表示例を以下に示します。コードにエラーがありますか?
すべての従業員データが読み込まれると、レポートはコンソールに2年ごとに表示されます。レポートの各行には、各従業員に提供された元のデータとその年の従業員の年間給与がすべて含まれている必要があります。 2年間ごとに、その年の全従業員の全給与の平均を計算して表示する必要があります。
質問:コードにエラーがありますか?あるいは私が修正できるものは?
スーパークラス
public class Employee {
//Instance variables of super
private String name;
private double monthlySal;
private double annualSalary;
//Super constructor
public Employee(String name, double monthlySal) {
this.name = name;//Initialization
this.monthlySal = monthlySal;//Initialization
}//End of Constructor
//Method for annualSalary
public void annualSalary(double annualSalary){
this.annualSalary = monthlySal * 12;
System.out.println("Annual Salary: " +annualSalary);
}//End of Method
//toString Method
public String toString() {
return "Employee Name: " + name + "\n" + "monthly Salary: " +monthlySal;
}//End of toString Method
}//End of Employee Method
第一サブクラス
public class Salesman extends Employee {
private String name;
private double monthlySal;
private double annualSales;
private double commission;
private double annualSalary;//Annual Salary
//subclass Constructor
public Salesman(String name, double monthlySal, double annualSalary, double commission) {
super(name, monthlySal);
this.annualSales = annualSales;
this.commission = 0.2 * annualSales;
}//End of Constructor
//Overridden Method
@Override
public void annualSalary(double annualSalary){
this.annualSalary = commission + super.annualSalary;
}//End of Override Method
//Overriden toString Method
@Override
public String toString(){
return "Employee Name: " + name + "\n" + "Monthly Salary: " + monthlySal + "\n" + "Annual Sales: " +annualSales;
}
}
第二サブクラス
public class Executive extends Employee {
private double stockPrice;
private String name;
private double monthlySal;
private double annualSalary;
private double bonus = 0;
//Constructor
public Executive(String name, double monthlySal, double annualSalary, double stockPrice) {
super(name, monthlySal);
this.stockPrice = stockPrice;
this.annualSalary = annualSalary;
if(stockPrice >= 50) {
bonus = 30000;
} else {
bonus = 0;
}//End of If Me
}//End of Constructor
//Override Method for annualSalary
@Override
public void annualSalary(double annualSalary){
this.annualSalary = super.annualSalary + bonus;
}//End of Override Method
//toString Override Method
@Override
public String toString() {
return "Employee Name: " + name + "\n" + "Monthly Salary: " + monthlySal + "\n" + "Current Stock Price: " +stockPrice;
}
}
テキストファイル -
2014 Employee Clark, Sam 3000
2014 Salesman Samson, Jones 4000 40000
2014 Executive Brandon, Thurman 10000 70
2015 Executive Brandon, Thurman 11000 70
2015 Salesman Samson, Jones 4500 30000
2015 Employee Clark, Sam 3500
//4th Class
import java.io.File;
import java.FileNotFoundException;
public class TestEmployee {
//Start Main
public static void main(String[] args) {
private double yearOneAverSalary = 55000;
private double yearTwoAverSalary = 45000;
System.out.println("The average combined yearly salary for year 2014 employees is: " + yearOneAverSalary);
System.out.println("The average combined yearly salary for 2015 employees is: " +yearTwoAverSalary);
} //終了メイン
public static void readFile(File "src/employee.txt") throws IOException {
String line;
try(BufferedReader) br = Files.newBufferedReader(file.toPath()) {
while((line = br.readLine())1=null) {
System.out.println(line)//prints every line in file
}//End of While
}//End of Try
}//End of ReadFile
コードの問題点は何ですか? –
セールスマンの手数料が20,000ドルに達していない可能性があります。 – Spidey