Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Collections.ObjectModel;
- 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 string _pointA;
- private string _pointB;
- private int _numberTickets;
- public Depo()
- {
- _trains = new List<Train>();
- }
- public void Work()
- {
- ShowInfo();
- _numberTickets = AddNewTickets();
- if (CreateNewDirection())
- {
- Console.WriteLine($"Кол-во купленных билетов:{_numberTickets}");
- CreateNewTrain();
- }
- }
- private int AddNewTickets()
- {
- int minIndexRandom = 5;
- int maxIndexRandom = 16;
- int temporarynumberTickets = random.Next(minIndexRandom, maxIndexRandom);
- return temporarynumberTickets;
- }
- private bool CreateNewDirection()
- {
- string pointA;
- string pointB;
- Console.WriteLine("Создание нового направления.\nВведите пункт отправления и пункт отбытия.");
- pointA = Console.ReadLine();
- pointB = Console.ReadLine();
- if (pointA == null || pointB == null)
- {
- Console.WriteLine("Ошибка. Введены не коректные данные");
- return false;
- }
- else
- {
- _pointA = pointA;
- _pointB = pointB;
- Console.WriteLine($"Направление {_pointA}-{_pointB} создано.");
- return true;
- }
- }
- private void CreateNewTrain()
- {
- int numberTrain = 1000;
- _trains.Add(new Train(numberTrain, new Direction(_pointA, _pointB), _numberTickets));
- numberTrain++;
- }
- private void ShowInfo()
- {
- foreach (var train in _trains)
- {
- Console.WriteLine($"Направление {_pointA}-{_pointB} |Номер поезда {train.Number}| Кол-во вагонов {train.QuantityVans}");
- }
- }
- }
- class Train
- {
- private List<Van> _vans;
- private List<Van> _vansInTrain;
- private Direction _direction;
- public Train(int number, Direction direction, int numberTickets)
- {
- _direction = direction;
- _vans = new List<Van>() { new SmallVan(), new MediumVan(),new LargeVan() };
- _vansInTrain = new List<Van>();
- QuantityVans = AddNewVans(numberTickets);
- }
- public int Number { get; private set; }
- public int QuantityVans { get; private set; }
- public int AddNewVans(int numberTickets)
- {
- string vanName;
- int quantityVans = 0;
- Console.WriteLine("Какой вагон вы хотите добавить?");
- foreach (Van van in _vans)
- {
- van.ShowStats();
- }
- vanName = Console.ReadLine();
- foreach (Van van in _vans)
- {
- while (van.Name == vanName && numberTickets > 0)
- {
- _vansInTrain.Add(van);
- numberTickets -= van.NumberSeats;
- quantityVans++;
- }
- break;
- }
- return 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 ShowStats()
- {
- 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; }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement