W1thr

ООП-5

Mar 13th, 2021 (edited)
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.91 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace Homework5
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             List<Carriage> carriages = new List<Carriage> { new Carriage(10, "маленький"), new Carriage(25, "средний"), new Carriage(50, "большой") };
  11.  
  12.             bool isActive = true;
  13.  
  14.             Train train = null;
  15.  
  16.             while (isActive)
  17.             {
  18.  
  19.                 if (train != null)
  20.                 {
  21.                     Console.WriteLine("--Текущий рейс--\n");
  22.                     Console.WriteLine($"Людей       | {train.PeopleAmount} \nНаправление | {train.Destination}");
  23.                     Console.WriteLine();
  24.                 }
  25.                 else
  26.                 {
  27.                     Console.WriteLine("Информация о рейсе недоступна!");
  28.                 }
  29.  
  30.                 Console.Write("Укажите направление: ");
  31.                 string destination = Console.ReadLine();
  32.  
  33.                 train = new Train(destination, carriages);
  34.  
  35.                 train.SellTickets();
  36.                 train.Form();
  37.                 train.Depart();
  38.             }
  39.         }
  40.     }
  41.     class Train
  42.     {
  43.         private List<Carriage> _carriages;
  44.  
  45.         public string Destination { get; private set; }
  46.         public int PeopleAmount { get; private set; }
  47.  
  48.         public Train(string destination, List<Carriage> carriages)
  49.         {
  50.             Destination = destination;
  51.             _carriages = carriages;
  52.         }
  53.  
  54.         public void SellTickets()
  55.         {
  56.             Random random = new Random();
  57.             PeopleAmount = random.Next(0, 121);
  58.             Console.WriteLine("\n" + PeopleAmount + " людей хотят на этот рейс\n");
  59.         }
  60.  
  61.         public void Form()
  62.         {
  63.             int tempCapacity = 0;
  64.             while (tempCapacity < PeopleAmount)
  65.             {
  66.                 Console.WriteLine("-Выберите вагон-");
  67.  
  68.                 for (int i = 0; i < _carriages.Count; i++)
  69.                 {
  70.                     Console.Write(i + " ");
  71.                     _carriages[i].ShowStats();
  72.                 }
  73.  
  74.                 int index = 0;
  75.                 Console.Write("Вагон номер:");
  76.                 TryConvert(ref index);
  77.  
  78.                 int amount = 0;
  79.                 Console.Write("Сколько таких вагонов? ");
  80.                 TryConvert(ref amount);
  81.  
  82.                 tempCapacity += _carriages[index].Capacity * amount;
  83.             }
  84.         }
  85.  
  86.         public void Depart()
  87.         {
  88.             Console.WriteLine("Нажмите любую клавишу, чтобы отправить поезд...");
  89.             Console.ReadKey();
  90.             Console.Clear();
  91.         }
  92.  
  93.         public void TryConvert(ref int value)
  94.         {
  95.             string userInput = Console.ReadLine();
  96.             if (int.TryParse(userInput, out int result) == true)
  97.             {
  98.                 if (result >= 0 && result <= _carriages.Count)
  99.                 {
  100.                     value = result;
  101.                 }
  102.                 else
  103.                 {
  104.                     Console.WriteLine("Неверное число!\n");
  105.                 }
  106.             }
  107.             else
  108.             {
  109.                 Console.WriteLine("Это не число!\n");
  110.             }
  111.         }
  112.     }
  113.  
  114.     class Carriage
  115.     {
  116.         public int Capacity { get; private set; }
  117.         public string Name { get; private set; }
  118.  
  119.         public Carriage(int capacity, string name)
  120.         {
  121.             Capacity = capacity;
  122.             Name = name;
  123.         }
  124.  
  125.         public void ShowStats()
  126.         {
  127.             Console.WriteLine(Name);
  128.             Console.WriteLine("Вместимость - " + Capacity);
  129.             Console.WriteLine("----------------");
  130.         }
  131.     }
  132. }
  133.  
Advertisement
Add Comment
Please, Sign In to add comment