Advertisement
viktarb

Зоопарк

Oct 30th, 2023
932
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 8.31 KB | Gaming | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. internal class Program
  5. {
  6.     static void Main(string[] args)
  7.     {
  8.         string zooName = "Зоопарк города Н.";
  9.         Zoo zoo = new Zoo(zooName);
  10.         zoo.Opens();
  11.     }
  12. }
  13.  
  14. class Zoo
  15. {
  16.     private string _name;
  17.     private List<Enclosure> _enclosures = new List<Enclosure>();
  18.  
  19.     public Zoo(string name)
  20.     {
  21.         _name = name;
  22.         Fill();
  23.     }
  24.  
  25.     public void Opens()
  26.     {
  27.         bool isWork = true;
  28.  
  29.         Console.WriteLine($"Добро пожаловать в зоопарк {_name}.");
  30.         Console.WriteLine($"Самый лучший зоопарк всех времён и народов");
  31.  
  32.         while (isWork)
  33.         {
  34.             isWork = Menu();
  35.         }
  36.  
  37.         Console.WriteLine($"Посещение зоопарка {_name} завершено.");
  38.         Console.WriteLine("\nНажмите любую клавишу для продолжения.");
  39.         Console.ReadKey();
  40.         Console.Clear();
  41.     }
  42.  
  43.     private bool Menu()
  44.     {
  45.         const int ShowEncloseresLions = 1;
  46.         const int ShowEncloseresTigers = 2;
  47.         const int ShowEncloseresWolfs = 3;
  48.         const int ShowEncloseresDogs = 4;
  49.         const int ShowEncloseresBears = 5;
  50.         const int Exit = 9;
  51.  
  52.         bool isWork = true;
  53.  
  54.         Console.WriteLine("\nЕсть следующие вольеры: ");
  55.  
  56.         foreach (var encloser in _enclosures)
  57.         {
  58.             encloser.ShowInfoBasic();
  59.         }
  60.  
  61.         Console.Write("\nВыберите, к какому вольеру нужно подойти? ");
  62.         Console.WriteLine($"Введите одну из команд: \n{ShowEncloseresLions} - Показать вольер с {AnimalsName.Лев}," +
  63.             $"\n{ShowEncloseresTigers} - Показать вольер с {AnimalsName.Тигр}, " +
  64.             $"\n{ShowEncloseresWolfs} - Показать вольер с {AnimalsName.Волк}," +
  65.             $"\n{ShowEncloseresDogs} - Показать вольер с {AnimalsName.Собака}," +
  66.             $"\n{ShowEncloseresBears} - Показать вольер с {AnimalsName.Медведь}" +
  67.             $"\n{Exit} - Выход из {_name}.");
  68.  
  69.         switch (ReadInt())
  70.         {
  71.             case ShowEncloseresLions:
  72.                 _enclosures[Convert.ToInt32(AnimalsName.Лев)].ShowInfoDetailed();
  73.                 break;
  74.  
  75.             case ShowEncloseresTigers:
  76.                 _enclosures[Convert.ToInt32(AnimalsName.Тигр)].ShowInfoDetailed();
  77.                 break;
  78.  
  79.             case ShowEncloseresWolfs:
  80.                 _enclosures[Convert.ToInt32(AnimalsName.Волк)].ShowInfoDetailed();
  81.                 break;
  82.  
  83.             case ShowEncloseresDogs:
  84.                 _enclosures[Convert.ToInt32(AnimalsName.Собака)].ShowInfoDetailed();
  85.                 break;
  86.  
  87.             case ShowEncloseresBears:
  88.                 _enclosures[Convert.ToInt32(AnimalsName.Медведь)].ShowInfoDetailed();
  89.                 break;
  90.  
  91.             case Exit:
  92.                 isWork = false;
  93.                 break;
  94.  
  95.             default:
  96.                 Console.WriteLine("\aТак команды нет.");
  97.                 break;
  98.         }
  99.  
  100.         Console.WriteLine("\nНажмите любую клавишу для продолжения.");
  101.         Console.ReadKey();
  102.         Console.Clear();
  103.  
  104.         return isWork;
  105.     }
  106.  
  107.     private void Fill()
  108.     {
  109.         _enclosures.Add(new Enclosure("Львы", FillLions()));
  110.         _enclosures.Add(new Enclosure("Тигры", FillTigers()));
  111.         _enclosures.Add(new Enclosure("Волки", FillWolfs()));
  112.         _enclosures.Add(new Enclosure("Собаки", FillDogs()));
  113.         _enclosures.Add(new Enclosure("Медведи", FillBears()));
  114.     }
  115.  
  116.     private List<Animal> FillLions()
  117.     {
  118.         List<Animal> lions = new List<Animal>();
  119.  
  120.         lions.Add(new Animal(AnimalsName.Лев, AnimalsSound.Рычит, AnimalsGender.Самец, 3));
  121.         lions.Add(new Animal(AnimalsName.Лев, AnimalsSound.Рычит, AnimalsGender.Самец, 2));
  122.         lions.Add(new Animal(AnimalsName.Лев, AnimalsSound.Рычит, AnimalsGender.Самка, 4));
  123.         lions.Add(new Animal(AnimalsName.Лев, AnimalsSound.Рычит, AnimalsGender.Самка, 7));
  124.  
  125.         return lions;
  126.     }
  127.  
  128.     private List<Animal> FillTigers()
  129.     {
  130.         List<Animal> lions = new List<Animal>();
  131.  
  132.         lions.Add(new Animal(AnimalsName.Тигр, AnimalsSound.Рычит, AnimalsGender.Самец, 2));
  133.         lions.Add(new Animal(AnimalsName.Тигр, AnimalsSound.Рычит, AnimalsGender.Самец, 5));
  134.         lions.Add(new Animal(AnimalsName.Тигр, AnimalsSound.Рычит, AnimalsGender.Самка, 2));
  135.         lions.Add(new Animal(AnimalsName.Тигр, AnimalsSound.Рычит, AnimalsGender.Самка, 5));
  136.  
  137.         return lions;
  138.     }
  139.  
  140.     private List<Animal> FillWolfs()
  141.     {
  142.         List<Animal> wolfs = new List<Animal>();
  143.  
  144.         wolfs.Add(new Animal(AnimalsName.Волк, AnimalsSound.Рычит, AnimalsGender.Самка, 1));
  145.         wolfs.Add(new Animal(AnimalsName.Волк, AnimalsSound.Рычит, AnimalsGender.Самец, 2));
  146.  
  147.         return wolfs;
  148.     }
  149.  
  150.     private List<Animal> FillDogs()
  151.     {
  152.         List<Animal> dogs = new List<Animal>();
  153.  
  154.         dogs.Add(new Animal(AnimalsName.Собака, AnimalsSound.Рычит, AnimalsGender.Самка, 1));
  155.         dogs.Add(new Animal(AnimalsName.Собака, AnimalsSound.Рычит, AnimalsGender.Самка, 2));
  156.  
  157.         return dogs;
  158.     }
  159.  
  160.     private List<Animal> FillBears()
  161.     {
  162.         List<Animal> bears = new List<Animal>();
  163.  
  164.         bears.Add(new Animal(AnimalsName.Медведь, AnimalsSound.Рычит, AnimalsGender.Самец, 10));
  165.         bears.Add(new Animal(AnimalsName.Медведь, AnimalsSound.Рычит, AnimalsGender.Самка, 9));
  166.         bears.Add(new Animal(AnimalsName.Медведь, AnimalsSound.Рычит, AnimalsGender.Самец, 2));
  167.  
  168.         return bears;
  169.     }
  170.  
  171.     private int ReadInt()
  172.     {
  173.         bool isCorrectInput = false;
  174.         int result = 0;
  175.  
  176.         while (isCorrectInput == false)
  177.         {
  178.             isCorrectInput = int.TryParse(Console.ReadLine(), out result);
  179.  
  180.             if (result <= 0)
  181.             {
  182.                 isCorrectInput = false;
  183.                 Console.WriteLine($"\aДопустимо только положительное число!");
  184.             }
  185.         }
  186.  
  187.         return result;
  188.     }
  189. }
  190.  
  191. class Enclosure
  192. {
  193.     private string _name;
  194.     private List<Animal> _animals = new List<Animal>();
  195.  
  196.     public Enclosure(string name, List<Animal> animals)
  197.     {
  198.         _name = name;
  199.  
  200.         foreach (var animal in animals)
  201.         {
  202.             _animals.Add(new Animal(animal.Name, animal.Sound, animal.Gender, animal.Age));
  203.         }
  204.     }
  205.  
  206.     public string GetName()
  207.     {
  208.         return _name;
  209.     }
  210.  
  211.     public void AddNewAnimal(AnimalsName name, AnimalsSound sound, AnimalsGender gender, int age)
  212.     {
  213.         _animals.Add(new Animal(name, sound, gender, age));
  214.     }
  215.  
  216.     public void RemoveAnimal(Animal animal)
  217.     {
  218.         _animals.Remove(animal);
  219.     }
  220.  
  221.     public void ShowInfoBasic()
  222.     {
  223.         Console.WriteLine($"Имя вольера - {_name}, количество животных - {_animals.Count}");
  224.     }
  225.  
  226.     public void ShowInfoDetailed()
  227.     {
  228.         foreach (var animal in _animals)
  229.             animal.ShowInfo();
  230.     }
  231. }
  232.  
  233. class Animal
  234. {
  235.     public Animal(AnimalsName name, AnimalsSound sound, AnimalsGender gender, int age)
  236.     {
  237.         Name = name;
  238.         Sound = sound;
  239.         Gender = gender;
  240.         Age = age;
  241.     }
  242.  
  243.     public AnimalsName Name { get; private set; }
  244.     public AnimalsSound Sound { get; private set; }
  245.     public AnimalsGender Gender { get; private set; }
  246.     public int Age { get; private set; }
  247.  
  248.     public void ShowInfo()
  249.     {
  250.         Console.WriteLine($"Имя животного - {Name}, издаёт звук - {Sound}, пол - {Gender}, возраст - {Age}");
  251.     }
  252. }
  253.  
  254. enum AnimalsGender
  255. {
  256.     Самец,
  257.     Самка
  258. }
  259.  
  260. enum AnimalsName
  261. {
  262.     Лев,
  263.     Тигр,
  264.     Волк,
  265.     Собака,
  266.     Медведь
  267. }
  268.  
  269. enum AnimalsSound
  270. {
  271.     Рычит,
  272.     Вой
  273. }
Tags: ijunior
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement