Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
namespace ConsoleApp { class Program { static void Main(string[] args) { ConsoleMenu menu = new(); menu.IsWork(); } } class ConsoleMenu { private readonly Dispatcher _dispatcher = new(); private enum Menu { CreateTrain = 1, Exit } public void IsWork() { Console.WriteLine("Вас приветствует создатель поездов."); bool isWork = true; while (isWork) { Console.WriteLine("\nЧтобы Вам хотелось:\n" + $"{(int)Menu.CreateTrain} - Отправить поезд\n" + $"{(int)Menu.Exit} - Выход"); Console.WriteLine("\nВведите пункт меню"); if (Enum.TryParse(Console.ReadLine(), out Menu menu)) { switch (menu) { case Menu.CreateTrain: _dispatcher.FormTrain(); break; case Menu.Exit: isWork = false; Console.WriteLine("До свидания!"); break; default: ShowWarningMassage(); break; } } else { ShowWarningMassage(); } } } private void ShowWarningMassage() { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Будьте внимательнее!"); Console.ResetColor(); } } class Dispatcher { private Dictionary
_allTrains = []; public void FormTrain() { SellTicket(); ShowInfo(); } private Train CreateTrain(string text) { Train train = new(); _allTrains.Add(train, text); return train; } private void SellTicket() { int passengersCount = CreatePassengers(); Console.WriteLine("Идет продажа билетов.\n"); for (int i = 0; i <= passengersCount; i++) { PaintOverSoldPlace(); } } private void PaintOverSoldPlace() { char soldTicketPaintOverSign = '\u2588'; char space = '\u0020'; Console.Write($"{soldTicketPaintOverSign}{space}"); Thread.Sleep(500); } private int CreatePassengers() { Train train = CreateTrain(CreateDestination()); Random random = new(); int passengersCount = random.Next(1, train.TotalSeatsCarriage); return passengersCount; } private string CreateDestination() { List
cities = [ new("Санкт-Петербург"), new("Норильск"), new("Адлер"), new("Екатеринбург"), new("Красноярск"), new("Москва"), new("Владивосток"), new("Псков") ]; int indexStartCity = GetIndex(cities); int indexFinalCity = GetIndex(cities); if (indexStartCity == indexFinalCity) indexFinalCity = GetIndex(cities); string cityFirst = GetCity(indexStartCity, cities); string cityLast = GetCity(indexFinalCity, cities); string citiesOfRoute = $"{cityFirst} - {cityLast}"; return citiesOfRoute; } private string GetCity(int index, List
cities) { Destination city = cities[index]; return city.CityOfTravel; } private int GetIndex(List
cities) { Random random = new(); return random.Next(cities.Count); } private void ShowInfo() { foreach (var train in _allTrains) { Console.WriteLine($"\nПоезд номер {train.Key.NumberTrain} отправляется по маршруту {train.Value}," + $" всего свободных мест {train.Key.TotalSeatsCarriage}."); } } } class Destination(string cityOfTravel) { public string CityOfTravel { get; private set; } = cityOfTravel; } class Train { private readonly int _minNumberOfTrain = 1; private readonly int _maxNumberOfTrain = 100; private readonly int _maxNumberSeats = 10; public Train() { TotalSeatsCarriage = _random.Next(1, _maxNumberSeats); NumberTrain = _random.Next(_minNumberOfTrain, _maxNumberOfTrain); } public int TotalSeatsCarriage { get; private set; } public int NumberTrain { get; private set; } private readonly Random _random = new(); } }
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)