Advertisement
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 ООП
- {
- class Program
- {
- static void Main(string[] args)
- {
- bool isOpen = true;
- Station station = new Station(new List<Train>());
- while (isOpen)
- {
- Console.Clear();
- station.ShowInfo();
- station.CreatePlan();
- }
- }
- }
- class Station
- {
- private List<Train> _station;
- public Station(List<Train> station)
- {
- _station = station;
- }
- public void ShowInfo()
- {
- Console.WriteLine("Текущие рейсы:");
- foreach (var train in _station)
- {
- train.ShowTrainInfo();
- }
- }
- public void CreatePlan()
- {
- Random random = new Random();
- string way = CreateWay();
- int countPassengers = SellTickets(random);
- List<Wagon> wagons = CreateWagons(random, countPassengers);
- Train train = new Train(way, countPassengers, wagons);
- _station.Add(train);
- Console.WriteLine("Поезд отправлен!");
- Console.ReadKey();
- }
- private string CreateWay()
- {
- Console.Write("\nВведите город отправки поезда: ");
- string departureСity = Console.ReadLine();
- Console.Write("Введите город прибытия поезда: ");
- string cityOfArrival = Console.ReadLine();
- string way = departureСity + " -> " + cityOfArrival;
- return way;
- }
- private int SellTickets(Random random)
- {
- int minimumNewPassengers = 10;
- int maximumNewPassengers = 200;
- int countPassengers = random.Next(minimumNewPassengers, maximumNewPassengers);
- Console.WriteLine($"{countPassengers} билетов продано!");
- return countPassengers;
- }
- private List<Wagon> CreateWagons(Random random, int countPassengers)
- {
- int freePlase = 0;
- bool addsWagons = true;
- List<Wagon> wagons = new List<Wagon>();
- while (addsWagons)
- {
- Console.WriteLine("--------------------------------------------------------------");
- Console.Write($"Вагонов: {wagons.Count} | Свободных мест {freePlase} | Пассажиров ждёт {countPassengers}\nВведите 1 чтобы добавить вагон\nВведите 2 чтобы отправить поезд\nВвод: ");
- string userInput = Console.ReadLine();
- switch (userInput)
- {
- case "1":
- freePlase = AddWagon(random, wagons, freePlase);
- break;
- case "2":
- addsWagons = GoTrain(countPassengers, freePlase);
- break;
- default:
- Console.WriteLine("Ошибка ввода! Повторите попытку.");
- break;
- }
- }
- return wagons;
- }
- private int AddWagon(Random random, List<Wagon> wagons, int freePlase)
- {
- int minimumCapacityPassengers = 30;
- int maximumCapacityPassengers = 60;
- int capacityPassengers = random.Next(minimumCapacityPassengers, maximumCapacityPassengers);
- wagons.Add(new Wagon(capacityPassengers));
- return freePlase += capacityPassengers;
- }
- private bool GoTrain(int countPassengers, int freePlase)
- {
- if (countPassengers <= freePlase)
- return false;
- else
- Console.WriteLine("Недостаточно свободных мест! Добавьте вагонов!");
- return true;
- }
- }
- class Train
- {
- private string _way;
- private int _passengers;
- private List<Wagon> _wagons;
- public Train(string way, int countPassengers, List<Wagon> wagons)
- {
- _way = way;
- _passengers = countPassengers;
- _wagons = wagons;
- }
- public void ShowTrainInfo()
- {
- Console.WriteLine($"Путь {_way} | Пассажиров {_passengers} | Вагонов {_wagons.Count}");
- }
- }
- class Wagon
- {
- public int Seats { get; private set; }
- public Wagon(int randomCount)
- {
- Seats = randomCount;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement