Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- class Program
- {
- static void Main(string[] args)
- {
- Depo depo = new Depo();
- while (true)
- {
- depo.Work();
- }
- }
- }
- class Depo
- {
- private static Random random = new Random();
- private List<Train> _trains;
- private int _numberTrain = 1000;
- public Depo()
- {
- _trains = new List<Train>();
- }
- public void Work()
- {
- ShowInfo();
- CreateNewTrain();
- }
- private int CreateNewTickets()
- {
- int minIndexRandom = 5;
- int maxIndexRandom = 16;
- int temporarynumberTickets = random.Next(minIndexRandom, maxIndexRandom);
- return temporarynumberTickets;
- }
- private Direction CreateNewDirection()
- {
- string pointA;
- string pointB;
- Console.WriteLine("Создание нового направления.\nВведите пункт отправления и пункт отбытия.");
- pointA = Console.ReadLine();
- pointB = Console.ReadLine();
- while (String.IsNullOrWhiteSpace(pointA) || String.IsNullOrWhiteSpace(pointB) || pointA.ToLower() == pointB.ToLower())
- {
- Console.WriteLine("Ошибка. Введены не коректные данные");
- }
- Console.WriteLine($"Направление {pointA}-{pointB} создано.");
- return new Direction(pointA, pointB);
- }
- private void CreateNewTrain()
- {
- Direction direction = CreateNewDirection();
- _trains.Add(new Train(_numberTrain, direction, CreateNewTickets()));
- _numberTrain++;
- }
- private void ShowInfo()
- {
- foreach (var train in _trains)
- {
- train.ShowStatsTrain();
- }
- }
- }
- class Train
- {
- private List<Van> _vans;
- private List<Van> _vansInTrain;
- private Direction _direction;
- public Train(int number, Direction direction, int numberTickets)
- {
- Number = number;
- _direction = direction;
- _vans = new List<Van>() { new SmallVan(), new MediumVan(),new LargeVan() };
- _vansInTrain = new List<Van>();
- QuantityVans = AddVans(numberTickets);
- }
- public int Number { get; private set; }
- public int QuantityVans { get; private set; }
- public int AddVans(int numberTickets)
- {
- Console.WriteLine($"Кол-во купленных билетов:{numberTickets}");
- string vanName;
- int quantityVans = 0;
- Console.WriteLine("Какой вагон вы хотите добавить?");
- foreach (Van van in _vans)
- {
- van.ShowStatsVan();
- }
- vanName = Console.ReadLine();
- foreach (Van van in _vans)
- {
- while (van.Name == vanName && numberTickets > 0)
- {
- _vansInTrain.Add(van);
- numberTickets -= van.NumberSeats;
- quantityVans++;
- }
- break;
- }
- return quantityVans;
- }
- public void ShowStatsTrain()
- {
- Console.WriteLine($"Направление {_direction} |Номер поезда {Number}| Кол-во вагонов {QuantityVans}");
- }
- }
- class Van
- {
- public Van(string name, int numberSeats)
- {
- Name = name;
- NumberSeats = numberSeats;
- }
- public string Name { get; private set; }
- public int NumberSeats { get; private set; }
- public void ShowStatsVan()
- {
- Console.WriteLine($"{Name}|Кол-во мест:{NumberSeats}");
- }
- }
- class SmallVan : Van
- {
- public SmallVan() : base ("Small", 5) { }
- }
- class MediumVan : Van
- {
- public MediumVan() : base("Medium", 10) { }
- }
- class LargeVan : Van
- {
- public LargeVan() : base("Large", 15) { }
- }
- class Direction
- {
- public Direction(string pointA, string pointB)
- {
- PointA = pointA;
- PointB = pointB;
- }
- public string PointA { get; private set; }
- public string PointB { get; private set; }
- }
Add Comment
Please, Sign In to add comment