petarkobakov

Need for Speed III

Aug 12th, 2020
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.34 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Dynamic;
  5. using System.Linq;
  6. using System.Security.Cryptography.X509Certificates;
  7. using System.Threading;
  8.  
  9. namespace Need_for_Speed_III
  10. {
  11. class Program
  12. {
  13. static void Main(string[] args)
  14. {
  15. int carsCount = int.Parse(Console.ReadLine());
  16. List<Car> cars = new List<Car>();
  17.  
  18. for (int i = 0; i < carsCount; i++)
  19. {
  20. var car = Console.ReadLine().Split('|');
  21. string model = car[0];
  22. int mileage = int.Parse(car[1]);
  23. int startingFuel = int.Parse(car[2]);
  24.  
  25. Car currentCar = new Car(model, mileage, startingFuel);
  26. cars.Add(currentCar);
  27. }
  28.  
  29. string command = Console.ReadLine();
  30.  
  31. while (command != "Stop")
  32. {
  33.  
  34. var commandArgs = command.Split(" : ");
  35. string operation = commandArgs[0];
  36. string model = commandArgs[1];
  37.  
  38. switch (operation)
  39. {
  40.  
  41. case "Drive":
  42.  
  43. int distance = int.Parse(commandArgs[2]);
  44. int fuel = int.Parse(commandArgs[3]);
  45.  
  46. foreach ( var car in cars)
  47. {
  48. if (car.Model == model)
  49. {
  50. if (car.StartingFuel < fuel)
  51. {
  52. Console.WriteLine("Not enough fuel to make that ride");
  53. break;
  54. }
  55.  
  56. else
  57. {
  58. car.Mileage += distance;
  59. car.StartingFuel -= fuel;
  60.  
  61. Console.WriteLine($"{model} driven for {distance} kilometers. {fuel} liters of fuel consumed.");
  62.  
  63. if (car.Mileage>=100000)
  64. {
  65. Console.WriteLine($"Time to sell the {model}!");
  66. cars.Remove(car);
  67. break;
  68. }
  69.  
  70. }
  71.  
  72. }
  73. }
  74.  
  75. break;
  76.  
  77. case "Refuel":
  78. model = commandArgs[1];
  79. fuel = int.Parse(commandArgs[2]);
  80.  
  81. foreach (var car in cars)
  82. {
  83. if (car.Model == model)
  84. {
  85.  
  86.  
  87. if (car.StartingFuel + fuel > 75)
  88. {
  89. int filled = 75 - ((car.StartingFuel+fuel) - fuel);
  90. car.StartingFuel += filled;
  91.  
  92. Console.WriteLine($"{model} refueled with {filled} liters");
  93. continue;
  94. }
  95.  
  96. else
  97. {
  98. car.StartingFuel += fuel;
  99.  
  100. Console.WriteLine($"{model} refueled with {fuel} liters");
  101. }
  102. }
  103. }
  104.  
  105.  
  106. break;
  107.  
  108. case "Revert":
  109. model = commandArgs[1];
  110. int mileage = int.Parse(commandArgs[2]);
  111.  
  112. foreach (var car in cars)
  113. {
  114. if (car.Model == model)
  115. {
  116. car.Mileage -= mileage;
  117.  
  118. if (car.Mileage>=10000)
  119. {
  120. Console.WriteLine($"{model} mileage decreased by {mileage} kilometers");
  121. continue;
  122. }
  123.  
  124. else
  125. {
  126. car.Mileage = 10000;
  127.  
  128. }
  129. }
  130.  
  131. }
  132.  
  133. break;
  134. }
  135.  
  136. command = Console.ReadLine();
  137. }
  138.  
  139. foreach (var car in cars.OrderByDescending(x=>x.Mileage).ThenBy(x=>x.Model))
  140. {
  141. Console.WriteLine($"{car.Model} -> Mileage: {car.Mileage} kms, Fuel in the tank: {car.StartingFuel} lt.");
  142. }
  143. }
  144. }
  145.  
  146. public class Car
  147. {
  148. public string Model { get; set; }
  149. public int Mileage { get; set; }
  150. public int StartingFuel { get; set; }
  151.  
  152. public Car(string model, int mileage, int fuel)
  153. {
  154. Model = model;
  155. Mileage = mileage;
  156. StartingFuel = fuel ;
  157. }
  158. }
  159. }
  160.  
Advertisement
Add Comment
Please, Sign In to add comment