ArthurDn

SoftServe

Aug 24th, 2012
36
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.48 KB | None | 0 0
  1. import java.io.*;
  2. import java.util.*;
  3.  
  4. public abstract class Worker implements Comparable<Worker> {
  5.     private String name;
  6.     private String id;
  7.     private float salary;
  8.  
  9.     public Worker(String id, String name, float salary) {
  10.         this.id = id;
  11.         this.name = name;
  12.         this.salary = salary;
  13.     }
  14.  
  15.     public static void writeToFile(String filename, List<Worker> workers)
  16.             throws IOException {
  17.         BufferedWriter bw = new BufferedWriter(new FileWriter(filename));
  18.         for (Worker ww : workers) {
  19.             bw.append(ww.toString());
  20.             bw.newLine();
  21.         }
  22.         bw.close();
  23.     }
  24.  
  25.     public static String readFromFile(String filename) throws IOException,
  26.             InvalidFileFormatException {
  27.         if (!filename.endsWith("txt"))
  28.             throw new InvalidFileFormatException("Некорректный формат файла");
  29.         BufferedReader br = new BufferedReader(new FileReader(filename));
  30.         String text = "";
  31.         while (br.ready())
  32.             text += br.readLine() + "\r\n";
  33.  
  34.         br.close();
  35.         return text;
  36.     }
  37.  
  38.     @Override
  39.     public String toString() {
  40.         return "ID=" + id + ". Name=" + name + " - salary="
  41.                 + calculateSalary();
  42.     }
  43.  
  44.     @Override
  45.     public int compareTo(Worker w) {
  46.         if (this.calculateSalary() > w.calculateSalary())
  47.             return -1;
  48.         if (this.calculateSalary() < w.calculateSalary())
  49.             return 1;
  50.  
  51.         return this.getName().compareTo(w.getName());
  52.     }
  53.  
  54.     public abstract float calculateSalary();
  55.  
  56.     public static void main(String[] args) throws IOException {
  57.         List<Worker> workers = new ArrayList<Worker>();
  58.         workers.add(new HourWorker("01", "Vasya", 5));
  59.         workers.add(new HourWorker("02", "Petya", 4));
  60.         workers.add(new HourWorker("03", "Kolya", 5));
  61.         workers.add(new FixedWorker("04", "Manya", 800));
  62.         workers.add(new FixedWorker("05", "Olya", 800));
  63.         workers.add(new FixedWorker("06", "Lena", 800));
  64.         Collections.sort(workers);
  65.  
  66.         for (Worker realWorker: workers)
  67.             System.out.println(realWorker);
  68.         System.out.println(" ");
  69.        
  70.         for (int i = 0; i < 5; i++)
  71.             System.out.println(workers.get(i).getName());
  72.         System.out.println(" ");
  73.        
  74.        
  75. for (int i = workers.size() - 3; i < workers.size(); i++)
  76.             System.out.println(workers.get(i).getId());
  77.         writeToFile("C:\\filename.txt", workers);
  78.  
  79.         try {
  80.             System.out.println(readFromFile("C:\\filename.txt"));
  81.         } catch (Exception e) {
  82.             System.out.println(e.getMessage());
  83.  
  84.         }
  85.  
  86.     }
  87.  
  88.     public String getName() {
  89.         return name;
  90.     }
  91.  
  92.     public void setName(String name) {
  93.         this.name = name;
  94.     }
  95.  
  96.     public String getId() {
  97.         return id;
  98.     }
  99.  
  100.     public void setId(String id) {
  101.         this.id = id;
  102.     }
  103.  
  104.     public float getSalary() {
  105.         return salary;
  106.     }
  107.  
  108.     public void setSalary(float salary) {
  109.         this.salary = salary;
  110.     }
  111.  
  112. }
  113. __________________________________________________________
  114. public class HourWorker extends Worker {
  115.     public HourWorker(String id, String name, float hourSalary) {
  116.         super(id, name, hourSalary);
  117.     }
  118.  
  119.     @Override
  120.     public float calculateSalary() {
  121.         return 20.8f * 8 * this.getSalary();
  122.     }
  123. }
  124. __________________________________________________________
  125. public class FixedWorker extends Worker {
  126.  
  127.     public FixedWorker(String id, String name, float fixedSalary) {
  128.         super(id, name, fixedSalary);
  129.     }
  130.  
  131.     @Override
  132.     public float calculateSalary() {
  133.         return this.getSalary();
  134.     }
  135. }
  136. __________________________________________________________
  137. import org.omg.PortableInterceptor.INACTIVE;
  138.  
  139. public class InvalidFileFormatException extends Exception {
  140.  
  141.     public InvalidFileFormatException(String message) {
  142.         super(message);
  143.     }
  144. }
Advertisement
Add Comment
Please, Sign In to add comment