Rodunskiy

Untitled

Sep 4th, 2026
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.85 KB | None | 0 0
  1. using System;
  2. using System.Numerics;
  3. using System.Security.Cryptography.X509Certificates;
  4. using System.Xml.Linq;
  5. using static System.Runtime.InteropServices.JavaScript.JSType;
  6.  
  7. namespace CSLight
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             StorageLibrary storageLibrary = new StorageLibrary();
  14.  
  15.             storageLibrary.Work();
  16.         }
  17.     }
  18.  
  19.     class StorageLibrary
  20.     {
  21.         private const string AddBookCommand = "1";
  22.         private const string RemoveBookCommand = "2";
  23.         private const string ShowBooksCommand = "3";
  24.         private const string SearchBookCommand = "4";
  25.         private const string ExitProgramCommand = "5";
  26.         private const string NameBookCommand = "1";
  27.         private const string AuthorBook = "2";
  28.         private const string ReleaseYearBookCommand = "3";
  29.  
  30.         List<Book> _books = new List<Book>();
  31.  
  32.         public void Work()
  33.         {
  34.             bool isInputValid = true;
  35.            
  36.             while (isInputValid)
  37.             {
  38.                 Console.Clear();
  39.                 Console.WriteLine("Хранилище библиотеки\n" +
  40.                     "Выберите действие:\n" +
  41.                     $"{AddBookCommand})Добавить книгу\n" +
  42.                     $"{RemoveBookCommand})Убрать книгу\n" +
  43.                     $"{ShowBooksCommand})Показать все книги\n" +
  44.                     $"{SearchBookCommand})Поиск книги по названию/автору/году выпуска\n" +
  45.                     $"{ExitProgramCommand})Покинуть библиотеку");
  46.  
  47.                 string userInput = Console.ReadLine();
  48.  
  49.                 switch (userInput)
  50.                 {
  51.                     case AddBookCommand:
  52.                         Console.Clear();
  53.                         AddBook();
  54.                         Console.ReadKey();
  55.                         break;
  56.  
  57.                     case RemoveBookCommand:
  58.                         Console.Clear();
  59.                         RemoveBook();
  60.                         Console.ReadKey();
  61.                         break;
  62.  
  63.                     case ShowBooksCommand:
  64.                         Console.Clear();
  65.                         ShowBooks();
  66.                         Console.ReadKey();
  67.                         break;
  68.  
  69.                     case SearchBookCommand:
  70.                         Console.Clear();
  71.                         SearchBook();
  72.                         Console.ReadKey();
  73.                         break;
  74.  
  75.                     case ExitProgramCommand:
  76.                         Console.Clear();
  77.                         isInputValid = false;
  78.                         break;
  79.  
  80.                     default:
  81.                         Console.Clear();
  82.                         Console.WriteLine("Неверный выбор. Попробуйте еще раз.");
  83.                         Console.ReadKey();
  84.                         break;
  85.                 }
  86.             }
  87.         }
  88.  
  89.         public void AddBook()
  90.         {
  91.             Console.WriteLine("Введите название книги:");
  92.             string nameBook = Console.ReadLine();
  93.  
  94.             Console.WriteLine("Введите автора книги:");
  95.             string authorBook = Console.ReadLine();
  96.  
  97.             Console.WriteLine("Введите год выпуска книги:");
  98.             int releaseYearBook = ReadInt("Год выпуска должен быть числом. Попробуйте еще раз:");
  99.  
  100.             Console.WriteLine("Введите серийный номер книги:");
  101.             int serialNumber = ReadInt("Серийный номер должен быть числом. Попробуйте еще раз:");
  102.  
  103.             Book book = new Book (nameBook, authorBook, releaseYearBook, serialNumber);
  104.             _books.Add(book);
  105.         }
  106.  
  107.         public void RemoveBook()
  108.         {
  109.             ShowBooks();
  110.             Console.WriteLine("Введите серийный номер книги которую хотите удалить");
  111.             int serialNumber = ReadInt("Серийный номер должен быть числом. Попробуйте еще раз:");
  112.  
  113.             TryGetBook(serialNumber, out Book book);
  114.  
  115.             _books.Remove(book);
  116.             Console.WriteLine($"Книга: {book.Name} | Автор: {book.Author} | Год: {book.ReleaseYear} | {book.SerialNumber} удаленa.");
  117.         }
  118.  
  119.         public void ShowBooks()
  120.         {
  121.             if (_books.Count == 0)
  122.             {
  123.                 Console.WriteLine("В базе нет книг.");
  124.             }
  125.             else
  126.             {
  127.                 Console.WriteLine("Список книг:");
  128.  
  129.                 foreach (Book book in _books)
  130.                 {
  131.                     book.ShowInfo();
  132.                 }
  133.             }
  134.         }
  135.  
  136.         public void SearchBook()
  137.         {
  138.             Console.Write("Введите параметр поиска (например это может быть Название книги, Автор, Год публикации):");
  139.             string userInput = Console.ReadLine();
  140.             bool successfulConversion = int.TryParse(userInput, out int inputNumber);
  141.  
  142.             foreach (Book book in _books)
  143.             {
  144.                 if (userInput == book.Author || userInput == book.Name || (inputNumber == book.ReleaseYear && successfulConversion))
  145.                     book.ShowInfo();
  146.             }
  147.         }
  148.  
  149.         private bool TryGetBook(int serialNumber, out Book book)
  150.         {
  151.             book = _books.FirstOrDefault(book => book.SerialNumber == serialNumber);
  152.  
  153.             if (book != null)
  154.             {
  155.                 return true;
  156.             }
  157.  
  158.             Console.WriteLine($"Книга с серийным номером {serialNumber} не найдена.");
  159.  
  160.             return false;
  161.         }
  162.  
  163.         private int ReadInt(string errorMessage)
  164.         {
  165.             int result;
  166.             while (!int.TryParse(Console.ReadLine(), out result))
  167.             {
  168.                 Console.WriteLine(errorMessage);
  169.             }
  170.  
  171.             return result;
  172.         }
  173.     }
  174.  
  175.     class Book
  176.     {
  177.         public Book(string name, string author, int releaseYear,int serialNumber)
  178.         {
  179.             Name = name;
  180.             Author = author;
  181.             ReleaseYear = releaseYear;
  182.             SerialNumber = serialNumber;
  183.         }
  184.  
  185.         public string Name { get; private set; }
  186.         public string Author { get; private set; }
  187.         public int ReleaseYear { get; private set; }
  188.         public int SerialNumber { get; private set; }
  189.  
  190.         public void ShowInfo()
  191.         {
  192.             Console.WriteLine($"Книга: {Name} | Автор: {Author} | Год: {ReleaseYear} | {SerialNumber}");
  193.         }
  194.     }
  195. }
  196.  
Advertisement
Add Comment
Please, Sign In to add comment