Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.*;
- import java.util.*;
- public abstract class Worker implements Comparable<Worker> {
- private String name;
- private String id;
- private float salary;
- public Worker(String id, String name, float salary) {
- this.id = id;
- this.name = name;
- this.salary = salary;
- }
- public static void writeToFile(String filename, List<Worker> workers)
- throws IOException {
- BufferedWriter bw = new BufferedWriter(new FileWriter(filename));
- for (Worker ww : workers) {
- bw.append(ww.toString());
- bw.newLine();
- }
- bw.close();
- }
- public static String readFromFile(String filename) throws IOException,
- InvalidFileFormatException {
- if (!filename.endsWith("txt"))
- throw new InvalidFileFormatException("Некорректный формат файла");
- BufferedReader br = new BufferedReader(new FileReader(filename));
- String text = "";
- while (br.ready())
- text += br.readLine() + "\r\n";
- br.close();
- return text;
- }
- @Override
- public String toString() {
- return "ID=" + id + ". Name=" + name + " - salary="
- + calculateSalary();
- }
- @Override
- public int compareTo(Worker w) {
- if (this.calculateSalary() > w.calculateSalary())
- return -1;
- if (this.calculateSalary() < w.calculateSalary())
- return 1;
- return this.getName().compareTo(w.getName());
- }
- public abstract float calculateSalary();
- public static void main(String[] args) throws IOException {
- List<Worker> workers = new ArrayList<Worker>();
- workers.add(new HourWorker("01", "Vasya", 5));
- workers.add(new HourWorker("02", "Petya", 4));
- workers.add(new HourWorker("03", "Kolya", 5));
- workers.add(new FixedWorker("04", "Manya", 800));
- workers.add(new FixedWorker("05", "Olya", 800));
- workers.add(new FixedWorker("06", "Lena", 800));
- Collections.sort(workers);
- for (Worker realWorker: workers)
- System.out.println(realWorker);
- System.out.println(" ");
- for (int i = 0; i < 5; i++)
- System.out.println(workers.get(i).getName());
- System.out.println(" ");
- for (int i = workers.size() - 3; i < workers.size(); i++)
- System.out.println(workers.get(i).getId());
- writeToFile("C:\\filename.txt", workers);
- try {
- System.out.println(readFromFile("C:\\filename.txt"));
- } catch (Exception e) {
- System.out.println(e.getMessage());
- }
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getId() {
- return id;
- }
- public void setId(String id) {
- this.id = id;
- }
- public float getSalary() {
- return salary;
- }
- public void setSalary(float salary) {
- this.salary = salary;
- }
- }
- __________________________________________________________
- public class HourWorker extends Worker {
- public HourWorker(String id, String name, float hourSalary) {
- super(id, name, hourSalary);
- }
- @Override
- public float calculateSalary() {
- return 20.8f * 8 * this.getSalary();
- }
- }
- __________________________________________________________
- public class FixedWorker extends Worker {
- public FixedWorker(String id, String name, float fixedSalary) {
- super(id, name, fixedSalary);
- }
- @Override
- public float calculateSalary() {
- return this.getSalary();
- }
- }
- __________________________________________________________
- import org.omg.PortableInterceptor.INACTIVE;
- public class InvalidFileFormatException extends Exception {
- public InvalidFileFormatException(String message) {
- super(message);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment