import java.util.ArrayList;
import java.util.Scanner;
abstract class Employee {
this.name = name;
this.id = id;
}
public abstract int getSalary();
}
class FixedSalaryEmployee extends Employee {
// Write your code here
protected int Salary;
public FixedSalaryEmployee
(String name,
String id,
int Salary
){ super(name,id);
this.Salary =Salary;
}
public int getSalary(){
return this.Salary;
}
}
class HourlySalaryEmployee extends Employee {
// Write your code here
protected int Salary;
protected int hour;
public HourlySalaryEmployee
(String name,
String id,
int Salary,
int Hour
){
super(name,id);
this.Salary =Salary;
this.hour=hour;
}
public int getSalary(){
return this.Salary*this.hour;
}
}
public class Main {
public static void main
(String[] args
) { Scanner scanner
= new Scanner
(System.
in);
// 讀取員工人數n
int n = scanner.nextInt();
// 創建一個員工列表
ArrayList<Employee> employees = new ArrayList<>();
// 讀取n個員工的資料
for (int i = 0; i < n; i++) {
// 讀取員工類型、姓名和ID
// 根據員工類型建立對應的員工物件,並加入到employees ArrayList中
switch (type) {
case "F":
// 讀取固定薪資員工的薪資
int fixedSalary = scanner.nextInt();
employees.add(new FixedSalaryEmployee(name, id, fixedSalary));
break;
case "H":
// 讀取計時薪資員工的時薪和工作時數
int hourlyRate = scanner.nextInt();
int hoursWorked = scanner.nextInt();
employees.add(new HourlySalaryEmployee(name, id, hourlyRate, hoursWorked));
break;
}
}
// 逐一輸出每個員工的姓名、ID和薪資
for (Employee employee : employees) {
System.
out.
printf("%s %s %d\n", employee.
name, employee.
id, employee.
getSalary()); }
}
}
aW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CmltcG9ydCBqYXZhLnV0aWwuU2Nhbm5lcjsKCmFic3RyYWN0IGNsYXNzIEVtcGxveWVlIHsKICAgIHByb3RlY3RlZCBTdHJpbmcgbmFtZTsKICAgIHByb3RlY3RlZCBTdHJpbmcgaWQ7CgogICAgcHVibGljIEVtcGxveWVlKFN0cmluZyBuYW1lLCBTdHJpbmcgaWQpIHsKICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOwogICAgICAgIHRoaXMuaWQgPSBpZDsKICAgIH0KCiAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGdldFNhbGFyeSgpOwp9CgpjbGFzcyBGaXhlZFNhbGFyeUVtcGxveWVlIGV4dGVuZHMgRW1wbG95ZWUgewogICAgLy8gV3JpdGUgeW91ciBjb2RlIGhlcmUKICAKICBwcm90ZWN0ZWQgaW50IFNhbGFyeTsKICAKICAgcHVibGljIEZpeGVkU2FsYXJ5RW1wbG95ZWUgKFN0cmluZyBuYW1lLCBTdHJpbmcgaWQsaW50IFNhbGFyeSl7CiAgICBzdXBlcihuYW1lLGlkKTsKICAgICB0aGlzLlNhbGFyeSA9U2FsYXJ5Owp9CiAgcHVibGljIGludCBnZXRTYWxhcnkoKXsKcmV0dXJuIHRoaXMuU2FsYXJ5Owp9CiAgICAgCn0KCmNsYXNzIEhvdXJseVNhbGFyeUVtcGxveWVlIGV4dGVuZHMgRW1wbG95ZWUgewogICAgLy8gV3JpdGUgeW91ciBjb2RlIGhlcmUKIAogIHByb3RlY3RlZCBpbnQgU2FsYXJ5OwogIHByb3RlY3RlZCBpbnQgaG91cjsKIApwdWJsaWMgSG91cmx5U2FsYXJ5RW1wbG95ZWUgKFN0cmluZyBuYW1lLCBTdHJpbmcgaWQsaW50IFNhbGFyeSxpbnQgSG91cil7CiAgICAKICAgIHN1cGVyKG5hbWUsaWQpOwogICAgIHRoaXMuU2FsYXJ5ID1TYWxhcnk7CiAgdGhpcy5ob3VyPWhvdXI7Cn0gIAogIHB1YmxpYyBpbnQgZ2V0U2FsYXJ5KCl7CnJldHVybiB0aGlzLlNhbGFyeSp0aGlzLmhvdXI7Cn0KfQoKcHVibGljIGNsYXNzIE1haW4gewogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgIFNjYW5uZXIgc2Nhbm5lciA9IG5ldyBTY2FubmVyKFN5c3RlbS5pbik7CgogICAgICAgIC8vIOiugOWPluWToeW3peS6uuaVuG4KICAgICAgICBpbnQgbiA9IHNjYW5uZXIubmV4dEludCgpOwoKICAgICAgICAvLyDlibXlu7rkuIDlgIvlk6Hlt6XliJfooagKICAgICAgICBBcnJheUxpc3Q8RW1wbG95ZWU+IGVtcGxveWVlcyA9IG5ldyBBcnJheUxpc3Q8PigpOwoKICAgICAgICAvLyDoroDlj5Zu5YCL5ZOh5bel55qE6LOH5paZCiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAgICAgLy8g6K6A5Y+W5ZOh5bel6aGe5Z6L44CB5aeT5ZCN5ZKMSUQKICAgICAgICAgICAgU3RyaW5nIHR5cGUgPSBzY2FubmVyLm5leHQoKTsKICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBzY2FubmVyLm5leHQoKTsKICAgICAgICAgICAgU3RyaW5nIGlkID0gc2Nhbm5lci5uZXh0KCk7CgogICAgICAgICAgICAvLyDmoLnmk5rlk6Hlt6XpoZ7lnovlu7rnq4vlsI3mh4nnmoTlk6Hlt6Xnianku7bvvIzkuKbliqDlhaXliLBlbXBsb3llZXMgQXJyYXlMaXN05LitCiAgICAgICAgICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgICAgICAgICAgY2FzZSAiRiI6CiAgICAgICAgICAgICAgICAgICAgLy8g6K6A5Y+W5Zu65a6a6Jaq6LOH5ZOh5bel55qE6Jaq6LOHCiAgICAgICAgICAgICAgICAgICAgaW50IGZpeGVkU2FsYXJ5ID0gc2Nhbm5lci5uZXh0SW50KCk7CiAgICAgICAgICAgICAgICAgICAgZW1wbG95ZWVzLmFkZChuZXcgRml4ZWRTYWxhcnlFbXBsb3llZShuYW1lLCBpZCwgZml4ZWRTYWxhcnkpKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIkgiOgogICAgICAgICAgICAgICAgICAgIC8vIOiugOWPluioiOaZguiWquizh+WToeW3peeahOaZguiWquWSjOW3peS9nOaZguaVuAogICAgICAgICAgICAgICAgICAgIGludCBob3VybHlSYXRlID0gc2Nhbm5lci5uZXh0SW50KCk7CiAgICAgICAgICAgICAgICAgICAgaW50IGhvdXJzV29ya2VkID0gc2Nhbm5lci5uZXh0SW50KCk7CiAgICAgICAgICAgICAgICAgICAgZW1wbG95ZWVzLmFkZChuZXcgSG91cmx5U2FsYXJ5RW1wbG95ZWUobmFtZSwgaWQsIGhvdXJseVJhdGUsIGhvdXJzV29ya2VkKSk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIOmAkOS4gOi8uOWHuuavj+WAi+WToeW3peeahOWnk+WQjeOAgUlE5ZKM6Jaq6LOHCiAgICAgICAgZm9yIChFbXBsb3llZSBlbXBsb3llZSA6IGVtcGxveWVlcykgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50ZigiJXMgJXMgJWRcbiIsIGVtcGxveWVlLm5hbWUsIGVtcGxveWVlLmlkLCBlbXBsb3llZS5nZXRTYWxhcnkoKSk7CiAgICAgICAgfQogICAgfQp9Cg==