Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace TrainDispatcher_01
- {
- class Program
- {
- static void Main(string[] args)
- {
- Yardmaster yardmaster = new Yardmaster();
- yardmaster.Work();
- }
- }
- class Yardmaster
- {
- private List<Station> _stations = new List<Station>();
- Train train;
- public void Work()
- {
- while (true)
- {
- Console.WriteLine($"Автоматический помощник формирования поездов железной дороги Белоруссии\n");
- if (train == null)
- {
- Console.WriteLine($"Текущий рейс отсутствует");
- Console.Write($"Для формирования направления нажмите любую клавишу ...");
- Console.ReadKey();
- GetStation();
- train = new Train(CreateTrainDirection());
- Console.WriteLine($"\n\nСформировано направление {train.Direction}\nОткрыта продажа билетов.\n");
- Console.WriteLine($"Нажмите любую для продолжения");
- Console.ReadKey();
- Console.Clear();
- }
- else
- {
- Console.WriteLine($"Информация о текущем рейсе:\n");
- Console.WriteLine($"поезд {train.Direction}");
- int[] soldedTickets = train.SellTickets();
- Console.WriteLine($"\nНа текущий рейс продано билетов:");
- train.ShowSoldedTickets();
- Console.Write($"\nНажмите любую для расчета необходимого количества вагонов: ");
- Console.ReadKey();
- train.CalculateWagons();
- Console.WriteLine($"\n\nНеобходимое количество вагонов добавлено к поезду");
- train.ShowRightNumberOfWagons();
- Console.WriteLine($"\nНажмите для отправки поезда по маршруту {train.Direction}");
- Console.ReadKey();
- train = null;
- Console.WriteLine($"поезд отправлен");
- Console.ReadKey();
- Console.Clear();
- }
- }
- }
- private void GetStation()
- {
- _stations.Add(new Station("Барановичи"));
- _stations.Add(new Station("Бобруйск"));
- _stations.Add(new Station("Брест"));
- _stations.Add(new Station("Витебск"));
- _stations.Add(new Station("Гомель"));
- _stations.Add(new Station("Гродно"));
- _stations.Add(new Station("Минск"));
- _stations.Add(new Station("Могилев"));
- _stations.Add(new Station("Мозырь"));
- _stations.Add(new Station("Пинск"));
- _stations.Add(new Station("Полоцк"));
- _stations.Add(new Station("на Берлин"));
- }
- private string CreateTrainDirection()
- {
- string departurePoint = "";
- string arrivePoint = "";
- bool isSame = true;
- Random rand = new Random();
- while (isSame)
- {
- departurePoint = _stations[rand.Next(0, _stations.Count)].Name;
- arrivePoint = _stations[rand.Next(0, _stations.Count)].Name;
- if (departurePoint != arrivePoint)
- {
- isSame = false;
- }
- }
- return departurePoint + " - " + arrivePoint;
- }
- }
- class Train
- {
- public string Direction { get; private set; }
- private List<Wagon> _wagons = new List<Wagon>();
- private int[] _soldedTickets;
- private int[] _rightNumberOfWagons;
- public Train(string direction)
- {
- Direction = direction;
- _wagons.Add(new Wagon("спальны", 18));
- _wagons.Add(new Wagon("купейны", 36));
- _wagons.Add(new Wagon("плацкартны", 54));
- }
- public void ShowTrain()
- {
- for (int i = 0; i < _wagons.Count; i++)
- {
- _wagons[i].ShowWagon();
- }
- }
- public int[] SellTickets()
- {
- Random rand = new Random();
- _soldedTickets = new int[_wagons.Count];
- for (int i = 0; i < _soldedTickets.Length; i++)
- {
- _soldedTickets[i] = rand.Next(0, 271);
- }
- return _soldedTickets;
- }
- public void ShowSoldedTickets()
- {
- for (int i = 0; i < _soldedTickets.Length; i++)
- {
- Console.WriteLine($"{_wagons[i].WagonType}х:\t {_soldedTickets[i]}");
- }
- }
- public void CalculateWagons()
- {
- _rightNumberOfWagons = new int[_wagons.Count];
- for (int i = 0; i < _wagons.Count; i++)
- {
- _rightNumberOfWagons[i] = _soldedTickets[i] / _wagons[i].Seats + 1;
- if (_soldedTickets[i] % _wagons[i].Seats == 0)
- {
- _rightNumberOfWagons[i] = _soldedTickets[i] / _wagons[i].Seats;
- }
- }
- }
- public void ShowRightNumberOfWagons()
- {
- for (int i = 0; i < _rightNumberOfWagons.Length; i++)
- {
- Console.WriteLine($"{_wagons[i].WagonType}x вагонов: {_rightNumberOfWagons[i]}");
- }
- }
- }
- class Wagon
- {
- public string WagonType { get; private set; }
- public int Seats { get; private set; }
- public Wagon(string wagonType, int seats)
- {
- WagonType = wagonType;
- Seats = seats;
- }
- public void ShowWagon()
- {
- Console.WriteLine($"{WagonType}х вагонов по {Seats} мест");
- }
- }
- class Station
- {
- public string Name { get; private set; }
- public Station(string name)
- {
- Name = name;
- }
- public void ShowStation()
- {
- Console.WriteLine($"{Name}");
- }
- }
- }
Add Comment
Please, Sign In to add comment