Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Text.RegularExpressions;
- namespace PassengerTrainConfigurator
- {
- internal class Program
- {
- static void Main(string[] args)
- {
- Dispatcher dispatcher = new Dispatcher();
- Train train = new Train();
- Direction direction = new Direction();
- const string CreateTrainCommand = "1";
- const string ExitCommand = "2";
- bool isWorking = true;
- string userInput;
- while (isWorking)
- {
- Console.ForegroundColor = ConsoleColor.Cyan;
- Console.WriteLine("Конфигуратор пасажирских поездов.\n");
- Console.ResetColor();
- Console.WriteLine($"Чтобы создать новый поезд нажмите - {CreateTrainCommand}.\n" +
- $"Для выхода из программы нажмите {ExitCommand}.\n\n" +
- $"Ввод:");
- userInput = Console.ReadLine();
- switch(userInput)
- {
- case "1":
- dispatcher.CreateTrain(train, direction);
- break;
- case "2":
- isWorking = false;
- break;
- default:
- Console.WriteLine("Неизвестная комманда.");
- break;
- }
- Console.ForegroundColor= ConsoleColor.DarkCyan;
- Console.WriteLine("\n\nДанные по каждому поезду:");
- Console.ResetColor();
- dispatcher.ShowTrainInfo();
- Console.ReadKey();
- Console.Clear();
- }
- }
- }
- class Train
- {
- public Dictionary<int, int> CreateTrain(int numbersOfPlace)
- {
- Van van = new Van();
- Dictionary<int, int> train = new Dictionary<int, int>();
- int vansCount = RoundUpDividing(numbersOfPlace, van.CountSeats);
- train.Add(vansCount, numbersOfPlace);
- return train;
- }
- private int RoundUpDividing(int numerator, int denominator)
- {
- decimal numeratorInDec = Convert.ToDecimal(numerator);
- decimal denominatorInDec = Convert.ToDecimal(denominator);
- decimal resultInDec = Math.Ceiling(numeratorInDec / denominatorInDec);
- int result = Convert.ToInt32(resultInDec);
- return result;
- }
- }
- class Direction
- {
- private List<string> _cities = new List<string>();
- public Direction()
- {
- _cities.Add("Москва");
- _cities.Add("Санкт-Петербург");
- _cities.Add("Тверь");
- _cities.Add("Краснодар");
- _cities.Add("Саратов");
- _cities.Add("Нижний Новгород");
- _cities.Add("Тверь");
- _cities.Add("Ростов-на-Дону");
- _cities.Add("Анапа");
- _cities.Add("Сочи");
- _cities.Add("Петрозаводск");
- }
- public Dictionary<string, string> MakeDirection()
- {
- Random random = new Random();
- Dictionary<string,string> direction = new Dictionary<string, string>();
- string departyreCity = _cities[random.Next(0, _cities.Count)];
- string arrivalCity = _cities[random.Next(0, _cities.Count)];
- while (departyreCity == arrivalCity)
- {
- arrivalCity = _cities[random.Next(0, _cities.Count)];
- }
- direction.Add(departyreCity, arrivalCity);
- return direction;
- }
- }
- class Van
- {
- public int CountSeats { get; private set; } = 36;
- }
- class Dispatcher
- {
- private Dictionary<Dictionary<string, string>, Dictionary<int, int>> _trainReadyDepart = new Dictionary<Dictionary<string, string>, Dictionary<int, int>>();
- public void CreateTrain(Train train, Direction direction)
- {
- _trainReadyDepart.Add(direction.MakeDirection(), train.CreateTrain(SellTickets()));
- }
- public void ShowTrainInfo()
- {
- foreach (var item in _trainReadyDepart)
- {
- for (int i = 0; i < item.Key.Count; i++)
- {
- Console.WriteLine($"Поезд отправляется из города {item.Key.Keys.ElementAt(i)} в город {item.Key.Values.ElementAt(i)}.\n" +
- $"Билетов продано - {item.Value.Values.ElementAt(i)}.\n" +
- $"Поезд состоит из {item.Value.Keys.ElementAt(i)} вагонов.\n\n");
- }
- }
- }
- private int SellTickets()
- {
- Random random = new Random();
- int minNumbersOfTickets = 1;
- int maxNumbersOfTickets = 1800;
- int numbersOfTickets = random.Next(minNumbersOfTickets, maxNumbersOfTickets);
- return numbersOfTickets;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment