Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- namespace Homework5
- {
- class Program
- {
- static void Main(string[] args)
- {
- List<Carriage> carriages = new List<Carriage> { new Carriage(10, "маленький"), new Carriage(25, "средний"), new Carriage(50, "большой") };
- bool isActive = true;
- Train train = null;
- while (isActive)
- {
- if (train != null)
- {
- Console.WriteLine("--Текущий рейс--\n");
- Console.WriteLine($"Людей | {train.PeopleAmount} \nНаправление | {train.Destination}");
- Console.WriteLine();
- }
- else
- {
- Console.WriteLine("Информация о рейсе недоступна!");
- }
- Console.Write("Укажите направление: ");
- string destination = Console.ReadLine();
- train = new Train(destination, carriages);
- train.SellTickets();
- train.Form();
- train.Depart();
- }
- }
- }
- class Train
- {
- private List<Carriage> _carriages;
- public string Destination { get; private set; }
- public int PeopleAmount { get; private set; }
- public Train(string destination, List<Carriage> carriages)
- {
- Destination = destination;
- _carriages = carriages;
- }
- public void SellTickets()
- {
- Random random = new Random();
- PeopleAmount = random.Next(0, 121);
- Console.WriteLine("\n" + PeopleAmount + " людей хотят на этот рейс\n");
- }
- public void Form()
- {
- int tempCapacity = 0;
- while (tempCapacity < PeopleAmount)
- {
- Console.WriteLine("-Выберите вагон-");
- for (int i = 0; i < _carriages.Count; i++)
- {
- Console.Write(i + " ");
- _carriages[i].ShowStats();
- }
- int index = 0;
- Console.Write("Вагон номер:");
- TryConvert(ref index);
- int amount = 0;
- Console.Write("Сколько таких вагонов? ");
- TryConvert(ref amount);
- tempCapacity += _carriages[index].Capacity * amount;
- }
- }
- public void Depart()
- {
- Console.WriteLine("Нажмите любую клавишу, чтобы отправить поезд...");
- Console.ReadKey();
- Console.Clear();
- }
- public void TryConvert(ref int value)
- {
- string userInput = Console.ReadLine();
- if (int.TryParse(userInput, out int result) == true)
- {
- if (result >= 0 && result <= _carriages.Count)
- {
- value = result;
- }
- else
- {
- Console.WriteLine("Неверное число!\n");
- }
- }
- else
- {
- Console.WriteLine("Это не число!\n");
- }
- }
- }
- class Carriage
- {
- public int Capacity { get; private set; }
- public string Name { get; private set; }
- public Carriage(int capacity, string name)
- {
- Capacity = capacity;
- Name = name;
- }
- public void ShowStats()
- {
- Console.WriteLine(Name);
- Console.WriteLine("Вместимость - " + Capacity);
- Console.WriteLine("----------------");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment