Advertisement
NikaBang

Зоопарк

Aug 23rd, 2022 (edited)
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.56 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. internal class Program
  5. {
  6.     //     Пользователь запускает приложение и перед ним находится меню, в котором он может выбрать, к какому вольеру подойти.
  7.     //     При приближении к вольеру, пользователю выводится информация о том, что это за вольер, сколько животных там обитает, их пол и какой звук издает животное.
  8.     //     Вольеров в зоопарке может быть много, в решении нужно создать минимум 4 вольера.
  9.     static void Main(string[] args)
  10.     {
  11.         new Zoo().ViewAviary();
  12.     }
  13.  
  14.     class Aviary
  15.     {
  16.         public string Animal { get; }
  17.         public string Voice { get; }
  18.         public int CountFemale { get; }
  19.         public int CountMale { get; }
  20.  
  21.         public Aviary(string animal, string voice, int countFemale, int countMale)
  22.         {
  23.             Animal = animal;
  24.             Voice = voice;
  25.             CountFemale = countFemale;
  26.             CountMale = countMale;
  27.         }
  28.  
  29.         public void ShowInfo()
  30.         {
  31.             Console.WriteLine($"В вольере живут {Animal}: Самок - {CountFemale}, Самцов - {CountMale}. Они {Voice}.");
  32.         }
  33.     }
  34.  
  35.     class Zoo
  36.     {
  37.         private List<Aviary> _aviaries;
  38.  
  39.         public Zoo()
  40.         {
  41.             _aviaries = new List<Aviary>();
  42.  
  43.             FillAviarys();
  44.         }
  45.  
  46.         public void ViewAviary()
  47.         {
  48.             bool inZoo = true;
  49.  
  50.             while (inZoo)
  51.             {
  52.                 Console.Write($"В зоопарке {_aviaries.Count} вольеров.\n" +
  53.                 $"Введи номер, к какому вольеру хочешь подойти или 0 что бы выйти: ");
  54.                 int userInput = ReadInt(Console.ReadLine());
  55.  
  56.                 if (userInput == 0)
  57.                 {
  58.                     inZoo = false;
  59.                 }
  60.                 else if (userInput <= _aviaries.Count)
  61.                 {
  62.                     _aviaries[userInput - 1].ShowInfo();
  63.                     Console.ReadKey();
  64.                 }
  65.                 else
  66.                 {
  67.                     Console.WriteLine($"Всего {_aviaries.Count} вольеров.");
  68.                     Console.ReadKey();
  69.                 }
  70.  
  71.                 Console.Clear();
  72.             }
  73.  
  74.             Console.WriteLine("До новых встреч.");
  75.         }
  76.  
  77.         private int ReadInt(string convert)
  78.         {
  79.             bool success = int.TryParse(convert, out int number);
  80.  
  81.             while (success == false)
  82.             {
  83.                 Console.Write("Ошибка конвертации, повторите ввод: ");
  84.                 success = int.TryParse(Console.ReadLine(), out number);
  85.             }
  86.             return number;
  87.         }
  88.  
  89.         private void FillAviarys()
  90.         {
  91.             Aviary[] aviaries =
  92.             {
  93.                 new Aviary("Львы", "Громкое рычание", 3, 1),
  94.                 new Aviary("Обезьяны", "У-У-у и-и-У", 5, 3),
  95.                 new Aviary("Слоны", "Дудят", 1, 1),
  96.                 new Aviary("Сурикаты", "Свистят", 11, 14),
  97.                 new Aviary("Зебры", "Фыркают", 2, 2)
  98.             };
  99.  
  100.             _aviaries.AddRange(aviaries);
  101.         }
  102.     }
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement