LeRoY_Go

Untitled

Jul 31st, 2022
1,592
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.70 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace C_Sharp_Junior
  5. {
  6.     class StorageBook
  7.     {
  8.         private static List<Book> _books;
  9.  
  10.         static StorageBook()
  11.         {
  12.             _books = new List<Book> { new Book("Пушкин А.С.", "Борис Годунов", 1825), new Book("Пушкин А.С.", "Цыганы", 1824), new Book("Толстой Л.Н.", "Война и мир", 1867), new Book("Тест", "Тест", 1824) };
  13.         }
  14.  
  15.         static void Main()
  16.         {
  17.  
  18.             // Создать хранилище книг.
  19.             // Каждая книга имеет название, автора и год выпуска(можно добавить еще параметры).
  20.             // В хранилище можно добавить книгу, убрать книгу, показать все книги и показать
  21.             // книги по указанному параметру(по названию, по автору, по году выпуска).
  22.             bool isExit = false;
  23.  
  24.             while (!isExit)
  25.             {
  26.                 Console.Clear();
  27.                 Console.WriteLine("------------------- МЕНЮ -------------------");
  28.                 Console.Write("1 - Добавить книгу\n2 - Удалить книгу\n3 - Показать все книги\n4 - Найти книгу по параметру\n5 - Завершить работу\nВвод: ");
  29.                 string userInput = Console.ReadLine();
  30.  
  31.                 switch (userInput)
  32.                 {
  33.                     case "1":
  34.                         AddBook();
  35.                         break;
  36.                     case "2":
  37.                         DeleteBook();
  38.                         break;
  39.                     case "3":
  40.                         AllShowBooks();
  41.                         break;
  42.                     case "4":
  43.                         FindBooksParameter();
  44.                         break;
  45.                     case "5":
  46.                         isExit = true;
  47.                         break;
  48.                 }
  49.                 Console.WriteLine("Нажмите любую кнопку для продолжения");
  50.                 Console.ReadKey();
  51.             }
  52.  
  53.             Console.WriteLine("ПОКА");
  54.         }
  55.  
  56.         private static void AddBook()
  57.         {
  58.             Console.Write("Введите ФИО автора книги: ");
  59.             string author = Console.ReadLine();
  60.             Console.Write("Введите название книги: ");
  61.             string title = Console.ReadLine();
  62.             Console.Write("Введите год публикации книги: ");
  63.             bool successfulConversion = int.TryParse(Console.ReadLine(), out int yearPublication);
  64.  
  65.             if (successfulConversion)
  66.             {
  67.                 _books.Add(new Book(author, title, yearPublication));
  68.                 _books[^1].ShowInfo();
  69.                 Console.WriteLine("Книга добавлена");
  70.             }
  71.         }
  72.  
  73.         private static void DeleteBook()
  74.         {
  75.             if (_books.Count == 0)
  76.             {
  77.                 Console.WriteLine("В хранилище нет книг");
  78.                 return;
  79.             }
  80.  
  81.             Console.Write("Введите ID книги которую хатите удалить: ");
  82.             bool successfulConversion = int.TryParse(Console.ReadLine(), out int inputNumber);
  83.  
  84.             if (successfulConversion && inputNumber <= _books.Count && inputNumber > 0)
  85.             {
  86.                 _books[inputNumber].ShowInfo();
  87.                 _books.RemoveAt(inputNumber);
  88.                 Console.WriteLine("Книга удалена");
  89.             }
  90.             else
  91.             {
  92.                 Console.WriteLine("Такой книги нет");
  93.             }
  94.         }
  95.  
  96.         private static void AllShowBooks()
  97.         {
  98.             if (_books.Count == 0)
  99.             {
  100.                 Console.WriteLine("В хранилище нет книг");
  101.                 return;
  102.             }
  103.  
  104.             foreach (Book book in _books)
  105.             {
  106.                 book.ShowInfo();
  107.             }
  108.         }
  109.  
  110.         private static void FindBooksParameter()
  111.         {
  112.             if (_books.Count == 0)
  113.             {
  114.                 Console.WriteLine("В хранилище нет книг");
  115.                 return;
  116.             }
  117.  
  118.             Console.Write("Введите параметр поиска (например это может быть ID, Название книги, Автор, Год публикации): ");
  119.             string userInput = Console.ReadLine();
  120.             bool successfulConversion = int.TryParse(userInput, out int inputNumber);
  121.  
  122.             foreach (Book book in _books)
  123.             {
  124.                 if (userInput == book.Author || userInput == book.Title || (inputNumber == book.Id && successfulConversion) || (inputNumber == book.YearPublication && successfulConversion))
  125.                     book.ShowInfo();
  126.             }
  127.         }
  128.     }
  129.  
  130.     class Book
  131.     {
  132.         private static int _startId = 0;
  133.         public readonly int Id;
  134.         public string Title { get; private set; }
  135.         public string Author { get; private set; }
  136.         public int YearPublication { get; private set; }
  137.  
  138.         public Book(string author, string title, int yearPublication)
  139.         {
  140.             Id = _startId++;
  141.             Author = author;
  142.             Title = title;
  143.             YearPublication = yearPublication;
  144.         }
  145.  
  146.         public void ShowInfo() => Console.WriteLine($"ID: {Id} | Название: {Title} | Автор: {Author} | Год издания: {YearPublication}");
  147.     }
  148. }
Advertisement
Add Comment
Please, Sign In to add comment