Guest User

Untitled

a guest
Jul 21st, 2019
320
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.92 KB | None | 0 0
  1. package OOP.Polymorphism.Vehicles;
  2.  
  3. import java.util.LinkedHashMap;
  4. import java.util.Map;
  5. import java.util.Scanner;
  6.  
  7. public class Main {
  8. public static void main(String[] args) {
  9. Scanner scanner = new Scanner(System.in);
  10.  
  11. Vehicle car = null;
  12. Vehicle truck = null;
  13. Vehicle bus = null;
  14. try {
  15.  
  16. car = produceVehicle(scanner.nextLine().split("\\s+"));
  17. } catch (IllegalArgumentException ex) {
  18. System.out.println(ex.getMessage());
  19. }
  20. try {
  21.  
  22. truck = produceVehicle(scanner.nextLine().split("\\s+"));
  23. } catch (IllegalArgumentException ex) {
  24. System.out.println(ex.getMessage());
  25. }
  26. try {
  27.  
  28. bus = produceVehicle(scanner.nextLine().split("\\s+"));
  29. } catch (IllegalArgumentException ex) {
  30. System.out.println(ex.getMessage());
  31. }
  32.  
  33. // Vehicle truck = produceVehicle(scanner.nextLine().split("\\s+"));
  34. //
  35. // Vehicle bus = produceVehicle(scanner.nextLine().split("\\s+"));
  36.  
  37. Map<String, Vehicle> vehicles = new LinkedHashMap<>();
  38.  
  39. vehicles.put("Car", car);
  40. vehicles.put("Truck", truck);
  41. vehicles.put("Bus", bus);
  42.  
  43. int commandCount = Integer.parseInt(scanner.nextLine());
  44.  
  45. while (commandCount-- > 0) {
  46. String[] tokens = scanner.nextLine().split("\\s+");
  47.  
  48. String output;
  49. if (tokens[0].equals("Drive")) {
  50. output = vehicles.get(tokens[1]).drive(Double.parseDouble(tokens[2]));
  51. System.out.println(output);
  52. } else if (tokens[0].equals("DriveEmpty")) {
  53. if (bus instanceof Bus) {
  54. ((Bus) bus).reduceConsumption();
  55. }
  56. output = vehicles.get(tokens[1]).drive(Double.parseDouble(tokens[2]));
  57. System.out.println(output);
  58. } else {
  59. try {
  60. vehicles.get(tokens[1]).refuel(Double.parseDouble(tokens[2]));
  61. } catch (IllegalArgumentException ex) {
  62. System.out.println(ex.getMessage());
  63. }
  64. }
  65.  
  66.  
  67. }
  68.  
  69. vehicles.forEach((k, v) -> System.out.println(v.toString()));
  70. }
  71.  
  72. private static Vehicle produceVehicle(String[] data) {
  73. Vehicle vehicle = null;
  74.  
  75. if (data[0].equals("Car")) {
  76. vehicle = new Car(Double.parseDouble(data[1]),
  77. Double.parseDouble(data[2]),
  78. Double.parseDouble(data[3]));
  79. } else if (data[0].equals("Truck")) {
  80. vehicle = new Truck(Double.parseDouble(data[1]),
  81. Double.parseDouble(data[2]),
  82. Double.parseDouble(data[3]));
  83. } else if (data[0].equals("Bus")) {
  84. vehicle = new Bus(Double.parseDouble(data[1]),
  85. Double.parseDouble(data[2]),
  86. Double.parseDouble(data[3]));
  87. }
  88.  
  89. return vehicle;
  90. }
  91. }
Add Comment
Please, Sign In to add comment