Advertisement
ranee

Untitled

Mar 20th, 2023
697
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 8.33 KB | None | 0 0
  1. using System;
  2. using System.Numerics;
  3.  
  4. namespace DeckOfCards
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             const string AddBookCommand = "1";
  11.             const string ShowAllBookCommand = "2";
  12.             const string RemovePlayerByIdCommand = "3";
  13.             const string SearchBookByAuthorCommand = "4";
  14.             const string SearchBookByNameCommand = "5";
  15.             const string SearchBookByYearCommand = "6";
  16.             const string ExitCommand = "7";
  17.  
  18.             bool isWork = true;
  19.             BookStorage bookStorage = new BookStorage();
  20.  
  21.             while (isWork)
  22.             {
  23.                 Console.WriteLine($"{AddBookCommand}. Добавить книгу" +
  24.                     $"\n{ShowAllBookCommand}. Посмотреть все книги" +
  25.                     $"\n{RemovePlayerByIdCommand}. Удалить книгу по ID" +
  26.                     $"\n{SearchBookByAuthorCommand}. Поиск книги по автору" +
  27.                     $"\n{SearchBookByNameCommand}. Поиск книги по названию" +
  28.                     $"\n{SearchBookByYearCommand}. Поиск книги по году" +
  29.                     $"\n{ExitCommand}. Выйти");
  30.                 string userSelection = Console.ReadLine();
  31.  
  32.                 switch (userSelection)
  33.                 {
  34.                     case AddBookCommand:
  35.                         bookStorage.AddBook();
  36.                         break;
  37.  
  38.                     case ShowAllBookCommand:
  39.                         bookStorage.ShowAllBook();
  40.                         break;
  41.  
  42.                     case RemovePlayerByIdCommand:
  43.                         bookStorage.RemovePlayerById();
  44.                         break;
  45.  
  46.                     case SearchBookByAuthorCommand:
  47.                         bookStorage.SearchBookByAuthor();
  48.                         break;
  49.  
  50.                     case SearchBookByNameCommand:
  51.                         bookStorage.SearchBookByName();
  52.                         break;
  53.  
  54.                     case SearchBookByYearCommand:
  55.                         bookStorage.SearchBookByYear();
  56.                         break;
  57.  
  58.                     case ExitCommand:
  59.                         isWork = false;
  60.                         break;
  61.  
  62.                     default:
  63.                         Console.WriteLine("Ошибка, такого пункта меню нет");
  64.                         break;
  65.                 }
  66.  
  67.                 Console.ReadKey();
  68.                 Console.Clear();
  69.             }
  70.         }
  71.     }
  72.  
  73.     class Book
  74.     {
  75.         private static int _idCounter = 1;
  76.  
  77.         public Book(string autor, string title, string yearOfRelease)
  78.         {
  79.             Autor = autor;
  80.             Title = title;
  81.             YearOfRelease = yearOfRelease;
  82.             UniqueNumber = _idCounter++;
  83.         }
  84.  
  85.         public int UniqueNumber { get; private set; }
  86.         public string Autor { get; private set; }
  87.         public string Title { get; private set; }
  88.         public string YearOfRelease { get; private set; }
  89.  
  90.         public void ShowBook()
  91.         {
  92.             Console.WriteLine($"Id книги: {UniqueNumber}, Автор книги: {Autor}, Название книги: {Title}, Год выпуска книги: {YearOfRelease}.");
  93.         }
  94.     }
  95.  
  96.     class BookStorage
  97.     {
  98.         private List<Book> _books;
  99.  
  100.         public BookStorage()
  101.         {
  102.             _books = new List<Book>();
  103.         }
  104.  
  105.         private string TakeAuthor()
  106.         {
  107.             Console.Write("Введите ФИО автора книги:");
  108.             return Console.ReadLine();
  109.         }
  110.  
  111.         private string TakeTitle()
  112.         {
  113.             Console.Write("Введите название книги:");
  114.             return Console.ReadLine();
  115.         }
  116.  
  117.         private string TakeYearOfRelease()
  118.         {
  119.             Console.Write("Введите год выпуска");
  120.             return Console.ReadLine();
  121.         }
  122.  
  123.         public void AddBook()
  124.         {
  125.             Console.Clear();
  126.  
  127.             Book book = new Book(TakeAuthor(), TakeTitle(), TakeYearOfRelease());
  128.  
  129.             _books.Add(book);
  130.  
  131.             Console.WriteLine($"Книга {book.Title} успешно добавлена c Id {book.UniqueNumber}.");
  132.         }
  133.  
  134.         public void ShowAllBook()
  135.         {
  136.             Console.Clear();
  137.  
  138.             if(_books.Count > 0)
  139.             {
  140.                 foreach (var book in _books)
  141.                 {
  142.                     book.ShowBook();
  143.                 }
  144.             }
  145.             else
  146.             {
  147.                 Console.WriteLine("В хранинилище нет книг.");
  148.             }
  149.         }
  150.  
  151.         public void RemovePlayerById()
  152.         {
  153.             Book book;
  154.             Console.WriteLine("Введите ID книги:");
  155.  
  156.             if (int.TryParse(Console.ReadLine(), out int id))
  157.             {
  158.                 if (TryGetBook(id, out book))
  159.                 {
  160.                     _books.Remove(book);
  161.                     Console.WriteLine($"Книга с ID {id} успешно удалена.");
  162.                 }
  163.                 else
  164.                 {
  165.                     Console.WriteLine($"Книга с ID {id} не найдена.");
  166.                 }
  167.             }
  168.             else
  169.             {
  170.                 Console.WriteLine("Неверный ввод.");
  171.             }
  172.         }
  173.  
  174.         private bool TryGetBook(int id, out Book book)
  175.         {
  176.             foreach (Book bookLocal in _books)
  177.             {
  178.                 if (bookLocal.UniqueNumber == id)
  179.                 {
  180.                     book = bookLocal;
  181.                     return true;
  182.                 }
  183.             }
  184.             book = null;
  185.             return false;
  186.         }
  187.  
  188.         public void SearchBookByAuthor()
  189.         {
  190.             Console.Clear();
  191.  
  192.             if(_books.Count>0)
  193.             {
  194.                 Console.Write("Введите имя автора: ");
  195.                 string author = Console.ReadLine();
  196.                 int counter = 0;
  197.                
  198.                 foreach (var book in _books)
  199.                 {
  200.                     if (book.Autor == author)
  201.                     {
  202.                         book.ShowBook();
  203.                         counter++;
  204.                     }
  205.                 }
  206.                 if (counter == 0)
  207.                 {
  208.                     Console.WriteLine("Совпадений нет");
  209.                 }
  210.             }
  211.             else
  212.             {
  213.                 Console.WriteLine("В хранилище нет книг.");
  214.             }
  215.         }
  216.  
  217.         public void SearchBookByName()
  218.         {
  219.             Console.Clear();
  220.            
  221.             if (_books.Count > 0)
  222.             {
  223.                 int counter = 0;
  224.                 Console.Write("Введите название книги: ");
  225.                 string title = Console.ReadLine();
  226.  
  227.                 foreach (var book in _books)
  228.                 {
  229.                     if (book.Title == title)
  230.                     {
  231.                         book.ShowBook();
  232.                         counter++;
  233.                     }
  234.                 }
  235.                 if (counter == 0)
  236.                 {
  237.                     Console.WriteLine("Совпадений нет");
  238.                 }
  239.             }
  240.             else
  241.             {
  242.                 Console.WriteLine("В хранилище нет книг.");
  243.             }
  244.  
  245.         }
  246.  
  247.         public void SearchBookByYear()
  248.         {
  249.             Console.Clear();
  250.            
  251.             if (_books.Count > 0)
  252.             {
  253.                 Console.Write("Введите год выпуска книги: ");
  254.                 string year = Console.ReadLine();
  255.                 int counter = 0;
  256.  
  257.                 foreach (var book in _books)
  258.                 {
  259.                     if (book.YearOfRelease == year)
  260.                     {
  261.                         book.ShowBook();
  262.                         counter++;
  263.                     }
  264.                 }
  265.                 if (counter == 0)
  266.                 {
  267.                     Console.WriteLine("Совпадений нет");
  268.                 }
  269.             }
  270.             else
  271.             {
  272.                 Console.WriteLine("В хранилище нет книг.");
  273.             }
  274.         }
  275.     }
  276. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement