Advertisement
Dr_Max_Experience

Task 12

May 14th, 2022
823
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace ООП
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             Zoo zoo = new Zoo();
  14.             zoo.Work();
  15.         }
  16.     }
  17.  
  18.     class Zoo
  19.     {
  20.         private List<Aviary> _aviaries = new List<Aviary>();
  21.  
  22.         public Zoo()
  23.         {
  24.             _aviaries = new List<Aviary>();
  25.         }
  26.  
  27.         public void Work()
  28.         {
  29.             bool isOpen = true;
  30.  
  31.             AddAnimals();
  32.  
  33.             while (isOpen)
  34.             {
  35.                 Console.Clear();
  36.                 ShowAviaries();
  37.  
  38.                 Console.Write("\nВведите номер вальера, чтобы к нему подойти:");
  39.                 string userInput = Console.ReadLine();
  40.  
  41.                 bool correctImput = int.TryParse(userInput, out int index);
  42.  
  43.                 --index;
  44.  
  45.                 if (correctImput && index >= 0 && index < _aviaries.Count())
  46.                 {
  47.                     Console.Clear();
  48.                     ShowAviary(index);
  49.                     Console.ReadKey();
  50.                 }
  51.             }
  52.         }
  53.  
  54.         private void ShowAviary(int index)
  55.         {
  56.             _aviaries[index].ShowInfo();
  57.         }
  58.  
  59.         private void ShowAviaries()
  60.         {
  61.             foreach (var aviary in _aviaries)
  62.             {
  63.                 Console.WriteLine($"Вальер №{_aviaries.IndexOf(aviary) + 1}, в котором находятся {aviary.Type}");
  64.             }
  65.         }
  66.  
  67.         private void AddAnimals()
  68.         {
  69.             _aviaries.Add(new Aviary("Львы", new Animal[] { new("Лев", "*звуки льва*", true), new("Львица", "*звуки львицы*", false)}));
  70.             _aviaries.Add(new Aviary("Лоси", new Animal[] { new("Лось", "*звуки лося*", true), new("Лосиха", "*звуки лосихи*", false) }));
  71.             _aviaries.Add(new Aviary("Утки", new Animal[] { new("Селезень", "*звуки селезня*", true), new("Кряква", "*звуки кряквы*", false) }));
  72.             _aviaries.Add(new Aviary("Попугаи", new Animal[] { new("Попугай", "*звуки попугая*", true), new("Попугай", "*звуки попугая*", false) }));
  73.             _aviaries.Add(new Aviary("Крокодилы", new Animal[] { new("Крокодил", "*звуки крокодила*", true), new("Крокодил", "*звуки крокодила*", false) }));
  74.         }
  75.     }
  76.  
  77.     class Aviary
  78.     {
  79.         private List<Animal> _animals = new List<Animal>();
  80.         public string Type { get; private set; }
  81.  
  82.         public Aviary(string type, Animal[] animals)
  83.         {
  84.             Type = type;
  85.             _animals.AddRange(animals);
  86.         }
  87.  
  88.         public void ShowInfo()
  89.         {
  90.             Console.WriteLine($"Вальер в котором {Type}. Список животных: \n");
  91.  
  92.             foreach (var animal in _animals)
  93.             {
  94.                 animal.ShowInfo();
  95.             }
  96.         }
  97.     }
  98.  
  99.     class Animal
  100.     {
  101.         private string _name;
  102.         private string _gender;
  103.         private string _voice;
  104.  
  105.         public Animal(string name, string voice, bool beMale)
  106.         {
  107.             _name = name;
  108.  
  109.             if (beMale)
  110.                 _gender = "♂";
  111.             else
  112.                 _gender = "♀";
  113.  
  114.             _voice = voice;
  115.         }
  116.  
  117.         public void ShowInfo()
  118.         {
  119.             Console.WriteLine($"Вид: {_name} | Пол: {_gender} | Издаёт звук: {_voice}");
  120.         }
  121.     }
  122. }
Advertisement
Advertisement
Advertisement
RAW Paste Data Copied
Advertisement