Advertisement
desislava_topuzakova

Untitled

Mar 23rd, 2023
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.20 KB | None | 0 0
  1. package ExamPreparation1;
  2.  
  3. import java.util.*;
  4.  
  5. public class ThirdTask_03 {
  6. public static void main(String[] args) {
  7. Scanner scanner = new Scanner(System.in);
  8.  
  9. //запис: кола -> {км, гориво}
  10. Map<String, List<Integer>> carsMap = new LinkedHashMap<>();
  11.  
  12. int countCars = Integer.parseInt(scanner.nextLine());
  13. for (int car = 1; car <= countCars; car++) {
  14. String [] data = scanner.nextLine().split("\\|");
  15. //"Skoda|12000|34".split("|")
  16. //data = ["Skoda", "13", "34"]
  17. String carModel = data[0]; //модел на колата
  18. int mileage = Integer.parseInt(data[1]); //изминати км
  19. int fuel = Integer.parseInt(data[2]); //налично гориво
  20.  
  21. carsMap.putIfAbsent(carModel, new ArrayList<>());
  22. carsMap.get(carModel).add(0, mileage);
  23. carsMap.get(carModel).add(1, fuel);
  24. }
  25.  
  26.  
  27. String input = scanner.nextLine();
  28.  
  29. while (!input.equals("Stop")) {
  30. if (input.contains("Drive")) {
  31. //ШОФИРАНЕ
  32. //input = "Drive : {car} : {distance} : {fuel}".split(" : ") -> ["Drive", "AudiA6", "230" , "6"]
  33. String car = input.split(" : ")[1]; //коя кола искаме да караме
  34. int distance = Integer.parseInt(input.split(" : ")[2]); //колко км искаме да я караме
  35. int consumedFuel = Integer.parseInt(input.split(" : ")[3]); //колко гориво ще изразходим
  36.  
  37. //1. имаме достатъчно гориво за каране
  38. int currentFuel = carsMap.get(car).get(1); //текущо количество на гориво в колата
  39. int currentKm = carsMap.get(car).get(0); //текущи км на колата
  40.  
  41. if (currentFuel >= consumedFuel) {
  42. //отиваме на пътешествие
  43. carsMap.get(car).set(1, currentFuel - consumedFuel);
  44. carsMap.get(car).set(0, currentKm + distance);
  45. System.out.printf("%s driven for %d kilometers. %d liters of fuel consumed.%n", car, distance, consumedFuel);
  46. } else {
  47. //нямаме достатъчно количество за каране currentFuel < consumedFuel
  48. System.out.println("Not enough fuel to make that ride");
  49. }
  50.  
  51. //проверка дали я премахваме
  52. if (carsMap.get(car).get(0) >= 100000) {
  53. //колата е стара -> продаваме
  54. System.out.println("Time to sell the " + car + "!");
  55. carsMap.remove(car);
  56. }
  57.  
  58. } else if (input.contains("Refuel")) {
  59. //ЗАРЕЖДАНЕ
  60. //input = "Refuel : AudiA6 : 35".split(" : ") -> ["Refuel", "AudiA6", "35"]
  61. String carToRefill = input.split(" : ")[1]; //кола за зареждане
  62. int fuelToRefill = Integer.parseInt(input.split(" : ")[2]); //колко литра зареждаме
  63.  
  64. int currentFuel = carsMap.get(carToRefill).get(1);//текущо количество гориво
  65. if (currentFuel + fuelToRefill > 75) {
  66. //max = 75 и го слагаме в колата
  67. carsMap.get(carToRefill).set(1, 75);
  68. System.out.printf("%s refueled with %d liters%n", carToRefill, 75 - currentFuel);
  69. } else {
  70. //не достигаме 75 литра
  71. carsMap.get(carToRefill).set(1, currentFuel + fuelToRefill);
  72. System.out.printf("%s refueled with %d liters%n", carToRefill, fuelToRefill);
  73. }
  74. } else if (input.contains("Revert")) {
  75. //ВРЪЩАМЕ КИЛОМЕТРАЖА
  76. //input = "Revert : Audi A6 : 120000".split(" : ") -> ["Revert", "Audi A6", "120000"]
  77. String carToRevert = input.split(" : ")[1]; //кола, която ще модифицираме
  78. int kmRevert = Integer.parseInt(input.split(" : ")[2]); //км за модификация
  79. int currentKm = carsMap.get(carToRevert).get(0); //текущи км на колата
  80.  
  81. int kmAfterRevert = currentKm - kmRevert; //км след връщането
  82.  
  83. if (kmAfterRevert < 10000) {
  84. kmAfterRevert = 10000;
  85. } else {
  86. System.out.printf("%s mileage decreased by %d kilometers%n", carToRevert, kmRevert);
  87. }
  88.  
  89. carsMap.get(carToRevert).set(0, kmAfterRevert);
  90.  
  91.  
  92. }
  93. input = scanner.nextLine();
  94. }
  95.  
  96. //entry
  97. //key: кола
  98. //value: {км, гориво}
  99. carsMap.entrySet().forEach(entry -> {
  100. System.out.printf("%s -> Mileage: %d kms, Fuel in the tank: %d lt.%n", entry.getKey(), entry.getValue().get(0), entry.getValue().get(1));
  101. });
  102. }
  103. }
  104.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement