Advertisement
Dr_Max_Experience

Task 7

Apr 2nd, 2022 (edited)
657
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.85 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace ООП
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             bool isOpen = true;
  14.  
  15.             Station station = new Station(new List<Train>());
  16.  
  17.             while (isOpen)
  18.             {
  19.                 Console.Clear();
  20.                 station.ShowInfo();
  21.                 station.CreatePlan();
  22.             }
  23.         }
  24.     }
  25.  
  26.     class Station
  27.     {
  28.         private List<Train> _station;
  29.  
  30.         public Station(List<Train> station)
  31.         {
  32.             _station = station;
  33.         }
  34.  
  35.         public void ShowInfo()
  36.         {
  37.             Console.WriteLine("Текущие рейсы:");
  38.  
  39.             foreach (var train in _station)
  40.             {
  41.                 train.ShowTrainInfo();
  42.             }
  43.         }
  44.  
  45.         public void CreatePlan()
  46.         {
  47.             Random random = new Random();
  48.  
  49.             string way = CreateWay();
  50.  
  51.             int countPassengers = SellTickets(random);
  52.  
  53.             List<Wagon> wagons = CreateWagons(random, countPassengers);
  54.  
  55.             Train train = new Train(way, countPassengers, wagons);
  56.             _station.Add(train);
  57.             Console.WriteLine("Поезд отправлен!");
  58.             Console.ReadKey();
  59.         }
  60.  
  61.         private string CreateWay()
  62.         {
  63.             Console.Write("\nВведите город отправки поезда: ");
  64.             string departureСity = Console.ReadLine();
  65.  
  66.             Console.Write("Введите город прибытия поезда: ");
  67.             string cityOfArrival = Console.ReadLine();
  68.  
  69.             string way = departureСity + " -> " + cityOfArrival;
  70.  
  71.             return way;
  72.         }
  73.  
  74.         private int SellTickets(Random random)
  75.         {
  76.             int minimumNewPassengers = 10;
  77.             int maximumNewPassengers = 200;
  78.  
  79.             int countPassengers = random.Next(minimumNewPassengers, maximumNewPassengers);
  80.             Console.WriteLine($"{countPassengers} билетов продано!");
  81.  
  82.             return countPassengers;
  83.         }
  84.  
  85.         private List<Wagon> CreateWagons(Random random, int countPassengers)
  86.         {
  87.             int freePlase = 0;
  88.             bool addsWagons = true;
  89.  
  90.             List<Wagon> wagons = new List<Wagon>();
  91.  
  92.             while (addsWagons)
  93.             {
  94.                 Console.WriteLine("--------------------------------------------------------------");
  95.                 Console.Write($"Вагонов: {wagons.Count} | Свободных мест {freePlase} | Пассажиров ждёт {countPassengers}\nВведите 1 чтобы добавить вагон\nВведите 2 чтобы отправить поезд\nВвод: ");
  96.                 string userInput = Console.ReadLine();
  97.  
  98.                 switch (userInput)
  99.                 {
  100.                     case "1":
  101.                         freePlase = AddWagon(random, wagons, freePlase);
  102.                         break;
  103.  
  104.                     case "2":
  105.                         addsWagons = GoTrain(countPassengers, freePlase);
  106.                         break;
  107.  
  108.                     default:
  109.                         Console.WriteLine("Ошибка ввода! Повторите попытку.");
  110.                         break;
  111.                 }
  112.             }
  113.  
  114.             return wagons;
  115.         }
  116.  
  117.         private int AddWagon(Random random, List<Wagon> wagons, int freePlase)
  118.         {
  119.             int minimumCapacityPassengers = 30;
  120.             int maximumCapacityPassengers = 60;
  121.  
  122.             int capacityPassengers = random.Next(minimumCapacityPassengers, maximumCapacityPassengers);
  123.             wagons.Add(new Wagon(capacityPassengers));
  124.             return freePlase += capacityPassengers;
  125.         }
  126.  
  127.         private bool GoTrain(int countPassengers, int freePlase)
  128.         {
  129.             if (countPassengers <= freePlase)
  130.                 return false;
  131.             else
  132.                 Console.WriteLine("Недостаточно свободных мест! Добавьте вагонов!");
  133.  
  134.             return true;
  135.         }
  136.     }
  137.  
  138.     class Train
  139.     {
  140.         private string _way;
  141.         private int _passengers;
  142.         private List<Wagon> _wagons;
  143.  
  144.         public Train(string way, int countPassengers, List<Wagon> wagons)
  145.         {
  146.             _way = way;
  147.             _passengers = countPassengers;
  148.             _wagons = wagons;
  149.         }
  150.  
  151.         public void ShowTrainInfo()
  152.         {
  153.             Console.WriteLine($"Путь {_way} | Пассажиров {_passengers} | Вагонов {_wagons.Count}");
  154.         }
  155.     }
  156.  
  157.     class Wagon
  158.     {
  159.         public int Seats { get; private set; }
  160.  
  161.         public Wagon(int randomCount)
  162.         {
  163.             Seats = randomCount;
  164.         }
  165.     }
  166. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement