desislava_topuzakova

Main

May 9th, 2021
246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.63 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace demo
  5. {
  6. class Program
  7. {
  8. static void Main(string[] args)
  9. {
  10. //КАМИОНИ
  11. string trucksInput = Console.ReadLine();
  12. //"BigTruck=22;Truck=15;LitlleTruck=7;" -> ["BigTruck=22", "Truck=15", "LitlleTruck=7"]
  13. List<Truck> trucks = new List<Truck>();
  14.  
  15. //1. разделяме всички камиони
  16. string[] allTrucksData = trucksInput.Split(";"); //["BigTruck=22", "Truck=15", "LitlleTruck=7"]
  17.  
  18. foreach (string truckData in allTrucksData)
  19. { //truckData = "BigTruck=22" -> = -> ["BigTruck", "22"]
  20. //2. за всеки камион -> име и товаримостта
  21. string name = truckData.Split("=")[0];
  22. int freightness = int.Parse(truckData.Split("=")[1]);
  23. //3. създаваме обект и го слагаме в списъка
  24. Truck truck = new Truck(name, freightness);
  25. trucks.Add(truck);
  26. }
  27.  
  28.  
  29. //ТОВАРИ
  30. string freightsInput = Console.ReadLine();
  31. //"Rock=18;Silk=12;Water=3"
  32. List<Freight> freights = new List<Freight>();
  33.  
  34. //1. разделяме всички товари
  35. string[] allFreightsData = freightsInput.Split(";"); // ["Rock=18", "Silk=12", "Water=3"]
  36.  
  37. //2. за всеки товар -> име и тегло
  38. foreach(string freightData in allFreightsData)
  39. {
  40. //freightData = "Rock=18" -> = -> ["Rock", "18"]
  41. string name = freightData.Split("=")[0];
  42. int weight = int.Parse(freightData.Split("=")[1]);
  43.  
  44. //3. създаваме обект (товар) и го слагаме в списъка
  45. Freight freight = new Freight(name, weight);
  46. freights.Add(freight);
  47.  
  48. }
  49.  
  50.  
  51. //Получаваме команди докато не получим команда END
  52. string command = Console.ReadLine();
  53.  
  54. while (command != "END")
  55. {
  56. //command = "BigTruck Rock" -> split(" ") -> ["BigTruck", "Rock"]
  57. string truckName = command.Split(" ")[0];
  58. string freightName = command.Split(" ")[1];
  59.  
  60. //тегло на товара
  61. int freightWeight = 0;
  62. foreach(Freight freight in freights)
  63. {
  64. if(freight.Name == freightName)
  65. {
  66. freightWeight = freight.Weight;
  67. }
  68. }
  69.  
  70.  
  71. foreach (Truck truck in trucks)
  72. {
  73. if (truck.Name == truckName)
  74. {
  75. //да мога да добавя товар -> товаримостта >= теглото на товара
  76. if (truck.Freightness >= freightWeight)
  77. {
  78. truck.Freights.Add(new Freight(freightName, freightWeight));
  79. //намалим товаримостта
  80. truck.Freightness = truck.Freightness - freightWeight;
  81. Console.WriteLine($"{truckName} loaded {freightName}");
  82. }
  83. else //да не мога да доабвя товара
  84. {
  85. Console.WriteLine($"{truckName} can't loaded {freightName}");
  86. }
  87.  
  88. }
  89. }
  90.  
  91. command = Console.ReadLine();
  92. }
  93.  
  94.  
  95. //печатаме името на камиона -> списъка с товарите
  96. foreach(Truck truck in trucks)
  97. {
  98. //ако има товари
  99. if(truck.Freights.Count > 0)
  100. {
  101. List<string> freightNames = new List<string>();
  102. foreach (Freight freight in truck.Freights)
  103. {
  104. freightNames.Add(freight.Name);
  105. }
  106. Console.Write(truck.Name + " - " + string.Join(", ", freightNames));
  107.  
  108. }
  109. //ако няма товари
  110. else
  111. {
  112. Console.WriteLine(truck.Name + " - Nothing loaded");
  113. }
  114.  
  115. }
  116.  
  117. }
  118. }
  119. }
  120.  
Advertisement
Add Comment
Please, Sign In to add comment