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;
- namespace HW_40_OOP_TrainStation
- {
- internal class Program
- {
- static void Main(string[] args)
- {
- bool isOpen = true;
- City[] cities = { new City("Москва"), new City("Ростов"), new City("Сочи"), new City("Краснодар"), new City("Новосибирск") };
- TrainStation trainStation = new TrainStation();
- while (isOpen)
- {
- trainStation.ShowTrainsInfo();
- Console.WriteLine("1 - Создать направление поезда\n2 - Отправить поезд\n");
- int userInput = Convert.ToInt32(Console.ReadLine());
- switch (userInput)
- {
- case 1:
- trainStation.CreateRoute(cities);
- break;
- case 2:
- Console.Write("Введите номер поезда для отпавления :");
- int number = Convert.ToInt32(Console.ReadLine());
- trainStation.SendTrain(number);
- break;
- default:
- break;
- }
- }
- }
- class TrainStation
- {
- private List<Train> _trains = new List<Train>();
- public List<Train> Trains { get { return _trains; } set { _trains = value; } }
- public void CreateRoute(City[] cities)
- {
- Console.WriteLine("Создается направление");
- Thread.Sleep(2000);
- Random random = new Random();
- Train train = new Train();
- Passanger passangers = new Passanger(random.Next(150, 400));
- string[] route = train.CreateRoute(cities);
- train.StartPoint = route[0];
- train.DestinationPoint = route[1];
- train.Route = route[0] + " " + route[1];
- train.TrainNumber = random.Next(1,500);
- train.AddTrainCars(passangers, train);
- _trains.Add(train);
- Console.Clear();
- }
- public void SendTrain(int trainNumber)
- {
- var train = Trains.Find(x => x.TrainNumber == trainNumber);
- Console.WriteLine("Поезд " + trainNumber + " отправляется по маршруту " + train.Route + " Приятной поездки !");
- _trains.RemoveAll(x => x.TrainNumber == trainNumber);
- Thread.Sleep(2000);
- Console.Clear();
- }
- public void ShowTrainsInfo()
- {
- if (_trains.Count == 0)
- {
- Console.WriteLine("Нет новых направлений");
- }
- else
- {
- foreach (var train in _trains)
- {
- Console.WriteLine("Поезд: " + train.TrainNumber);
- train.ShowTrainInfo();
- Console.WriteLine();
- }
- }
- }
- }
- class Train
- {
- Random rand = new Random();
- public string StartPoint;
- public string DestinationPoint;
- public string Route;
- public int TrainNumber;
- private List<TrainCar> _trainCars = new List<TrainCar>();
- public List<TrainCar> TrainCars { get { return _trainCars; } set { _trainCars = value; } }
- public void AddTrainCars(Passanger passanger, Train train)
- {
- Random rand = new Random();
- int trainCarNumber = 1;
- int totalPassangerCount = passanger.Count;
- int passengersLeft = totalPassangerCount;
- // берем общее кол-во пассажиров и создаем новые вагоны в лист вагонов поезда
- // вместимость вагона рандомная и после создания эта вместимость отнимает общее кол-во пассажиров
- // и так создаются вагоны пока пассажиров больше 0
- while (passengersLeft >= 0)
- {
- int newTrainCapacity = rand.Next(20,40);
- train.TrainCars.Add(new TrainCar(trainCarNumber++, newTrainCapacity));
- passengersLeft -= newTrainCapacity;
- }
- }
- public string[] CreateRoute(City[] cities)
- {
- string[] route = new string[2];
- string startPoint = cities[rand.Next(0, cities.Length)].Name;
- string destinationPoint = cities[rand.Next(0, cities.Length)].Name;
- route[0] = startPoint;
- route[1] = destinationPoint;
- return route;
- }
- public void ShowTrainInfo()
- {
- Console.WriteLine("Создан поезд идущий по машруту " + Route);
- Console.WriteLine("Станиция отправления - " + StartPoint + " конечная станция " + DestinationPoint);
- ShowTrainCarsInfo();
- }
- public void ShowTrainCarsInfo()
- {
- Console.WriteLine("Состав поезда состоит из " + _trainCars.Count + " вагонов");
- //foreach (var trainCar in _trainCars)
- //{
- // Console.WriteLine("Номер вагона - " + trainCar.Number + " Количество мест " + trainCar.Capacity);
- //}
- }
- public void SendTrain()
- {
- Console.WriteLine("Поезд отправляется !");
- Thread.Sleep(1000);
- }
- }
- class TrainCar
- {
- public int Number;
- public int Capacity;
- public TrainCar(int number, int capacity)
- {
- Number = number;
- Capacity = capacity;
- }
- }
- class City
- {
- public string Name;
- public City(string name)
- {
- Name = name;
- }
- }
- class Passanger
- {
- Random random = new Random();
- private int _count;
- public Passanger (int count)
- {
- _count = count;
- }
- public int Count { get { return _count; } }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement