Again_89

5та задача

May 28th, 2019
789
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.92 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4.  
  5. namespace CarManufacturer
  6. {
  7. public class Car
  8. {
  9. public string Make { get; set; }
  10.  
  11. public string Model { get; set; }
  12.  
  13. public int Year { get; set; }
  14.  
  15. public double FuelQuantity { get; set; }
  16.  
  17. public double FuelConsumption { get; set; }
  18.  
  19. public Engine Engine { get; set; }
  20.  
  21. public Tire[] Tires { get; set; }
  22.  
  23. public void Drive(double distance)
  24.  
  25. {
  26. bool canContinue = this.FuelQuantity - (distance * (this.FuelConsumption / 100)) >= 0;
  27.  
  28. if (canContinue)
  29. {
  30. this.FuelQuantity -= distance * (this.FuelConsumption / 100);
  31. }
  32. else
  33. {
  34. throw new Exception("Not enough fuel to perform this trip!");
  35. }
  36. }
  37.  
  38. public string WhoAmI()
  39.  
  40. {
  41.  
  42. StringBuilder sb = new StringBuilder();
  43.  
  44. sb.AppendLine($"Make: {this.Make}");
  45.  
  46. sb.AppendLine($"Model: {this.Model}");
  47.  
  48. sb.AppendLine($"Year: {this.Year}");
  49.  
  50. sb.Append($"Fuel: {this.FuelQuantity:F2}L");
  51.  
  52. return sb.ToString();
  53.  
  54. }
  55.  
  56. public Car()
  57. {
  58. Make = "VW";
  59. Model = "Golf";
  60. Year = 2025;
  61. FuelQuantity = 200;
  62. FuelConsumption = 10;
  63. }
  64.  
  65. public Car(string make, string model, int year) : this()
  66. {
  67. Make = make;
  68. Model = model;
  69. Year = year;
  70. }
  71.  
  72. public Car(string make, string model, int year, double fuelQuantity, double fuelConsumption) : this(make, model, year)
  73. {
  74. FuelQuantity = fuelQuantity;
  75. FuelConsumption = fuelConsumption;
  76. }
  77.  
  78. public Car(string make, string model, int year, double fuelQuantity, double fuelConsumption, Engine engine, Tire[] tires)
  79. : this(make, model, year, fuelQuantity, fuelConsumption)
  80. {
  81. Engine = engine;
  82. Tires = tires;
  83. }
  84. }
  85.  
  86. public class Engine
  87. {
  88. public int HorsePower { get; set; }
  89.  
  90. public double CubicCapacity { get; set; }
  91.  
  92. public Engine(int horsePower, double cubicCapacity)
  93. {
  94. HorsePower = horsePower;
  95. CubicCapacity = cubicCapacity;
  96. }
  97. }
  98.  
  99. public class Tire
  100. {
  101. public int Year { get; set; }
  102.  
  103. public double Pressure { get; set; }
  104.  
  105. public Tire(int year, double pressure)
  106. {
  107. this.Year = year;
  108. this.Pressure = pressure;
  109. }
  110. }
  111.  
  112. public class StartUp
  113. {
  114. public static void Main()
  115. {
  116. var tires = new List<Tire[]>();
  117.  
  118. while (true)
  119. {
  120. var input = Console.ReadLine();
  121. if (input == "No more tires")
  122. {
  123. break;
  124. }
  125.  
  126. var tiresData = input.Split();
  127.  
  128. var currCarTires = new Tire[4];
  129.  
  130. var year = 0;
  131. var index = 0;
  132. for (int i = 0; i < tiresData.Length; i++)
  133. {
  134. if (i % 2 == 0)
  135. {
  136. year = int.Parse(tiresData[i]);
  137. }
  138. else
  139. {
  140. var pressure = double.Parse(tiresData[i]);
  141. var currCarTire = new Tire(year, pressure);
  142. currCarTires[index++] = currCarTire;
  143. }
  144. }
  145.  
  146.  
  147.  
  148.  
  149. tires.Add(currCarTires);
  150. }
  151.  
  152. var tiresInArr = tires.ToArray();
  153.  
  154. var engines = new List<Engine>();
  155.  
  156. while (true)
  157. {
  158. var input = Console.ReadLine();
  159. if (input == "Engines done")
  160. {
  161. break;
  162. }
  163.  
  164. var engineData = input.Split();
  165.  
  166. var horsePower = int.Parse(engineData[0]);
  167. var cubicCapacity = double.Parse(engineData[1]);
  168.  
  169. var newEngine = new Engine(horsePower, cubicCapacity);
  170. engines.Add(newEngine);
  171. }
  172.  
  173. var specialCars = new List<Car>();
  174.  
  175. while (true)
  176. {
  177. var input = Console.ReadLine();
  178. if (input == "Show special")
  179. {
  180. break;
  181. }
  182.  
  183. var data = input.Split();
  184.  
  185. var make = data[0];
  186. var model = data[1];
  187. var year = int.Parse(data[2]);
  188. var fuelQuantity = double.Parse(data[3]);
  189. var fuelConsumption = double.Parse(data[4]);
  190. var engineIndex = int.Parse(data[5]);
  191. var tireIndex = int.Parse(data[6]);
  192.  
  193. var newCar = new Car(make, model, year, fuelQuantity, fuelConsumption, engines[engineIndex], tires[tireIndex]);
  194.  
  195. var pressureSum = 0d;
  196. for (int i = 0; i < tires[tireIndex].Length; i++)
  197. {
  198. pressureSum += tires[tireIndex][i].Pressure;
  199. }
  200.  
  201. if (newCar.Year >= 2017 && newCar.Engine.HorsePower > 330 && pressureSum > 9 && pressureSum < 10)
  202. {
  203. specialCars.Add(newCar);
  204. }
  205. }
  206.  
  207. for (int i = 0; i < specialCars.Count; i++)
  208. {
  209. specialCars[i].Drive(20);
  210. Console.WriteLine($"Make: {specialCars[i].Make} \nModel: {specialCars[i].Model} \nYear: {specialCars[i].Year} \nHorsePowers: {specialCars[i].Engine.HorsePower} \nFuelQuantity: {specialCars[i].FuelQuantity}");
  211. }
  212. }
  213. }
  214. }
Advertisement
Add Comment
Please, Sign In to add comment