Advertisement
voldmaks

Хранилище книг

May 30th, 2023 (edited)
863
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.91 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace Хранилище_книг
  5. {
  6.     internal class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             Librarian librarian = new Librarian();
  11.             librarian.LaunchProgram();
  12.         }
  13.     }
  14.  
  15.     class Librarian
  16.     {
  17.         private Library _library = new Library();
  18.  
  19.         public void LaunchProgram()
  20.         {
  21.             const string CommandAddBook = "1";
  22.             const string CommandRemoveBook = "2";
  23.             const string CommandShowOneBook = "3";
  24.             const string CommandShowAllBook = "4";
  25.             const string CommandExit = "5";
  26.  
  27.             bool isWorks = true;
  28.  
  29.             Console.WriteLine("Вы приступили к работе библиотекаря\n");
  30.  
  31.             while (isWorks)
  32.             {
  33.                 Console.WriteLine($"Введите необходимое действие:\n{CommandAddBook} - Добавить книгу\n{CommandRemoveBook} - Удалить книгу\n{CommandShowOneBook} - Показать одну книгу\n{CommandShowAllBook} - Показать все книги\n{CommandExit} - Завершить рабочий день");
  34.  
  35.                 switch (Console.ReadLine())
  36.                 {
  37.                     case CommandAddBook:
  38.                         _library.AddBook();
  39.                         break;
  40.  
  41.                     case CommandRemoveBook:
  42.                         _library.RemoveBook();
  43.                         break;
  44.  
  45.                     case CommandShowOneBook:
  46.                         _library.ShowOneBook();
  47.                         break;
  48.  
  49.                     case CommandShowAllBook:
  50.                         _library.ShowAllBook();
  51.                         break;
  52.  
  53.                     case CommandExit:
  54.                         isWorks = false;
  55.                         break;
  56.  
  57.                     default:
  58.                         Console.WriteLine("Команды под этим номером не существует");
  59.                         break;
  60.                 }
  61.  
  62.                 Console.WriteLine("Нажмите любую клавишу для продолжения...");
  63.                 Console.ReadKey();
  64.                 Console.Clear();
  65.             }
  66.         }
  67.     }
  68.  
  69.     class Library
  70.     {
  71.         private List<Book> _books = new List<Book>();
  72.  
  73.         public void AddBook()
  74.         {
  75.             Console.WriteLine("Введите вначале название книги, затем автора книги, а далее год выпуска книги:");
  76.  
  77.             string titleBook = Console.ReadLine();
  78.             string autorBook = Console.ReadLine();
  79.             int yearBook = CheckEnteredValue();
  80.  
  81.             if (yearBook > 0)
  82.             {
  83.                 _books.Add(new Book(titleBook, autorBook, yearBook));
  84.             }
  85.             else
  86.             {
  87.                 Console.WriteLine("Книга не добавлена. Повторите попытку");
  88.             }
  89.         }
  90.  
  91.         public void RemoveBook()
  92.         {
  93.             Console.WriteLine("Укажите id книги для удаления:");
  94.  
  95.             int idBook = CheckEnteredValue() - 1;
  96.  
  97.             if (idBook >= 0 && idBook < _books.Count)
  98.             {
  99.                 _books.Remove(_books[idBook]);
  100.             }
  101.             else
  102.             {
  103.                 Console.WriteLine("Удаление не выполнено. Повторите попытку");
  104.             }
  105.         }
  106.  
  107.         public void ShowOneBook()
  108.         {
  109.             const string CommandFindBookByTitle = "1";
  110.             const string CommandFindBookByAuthor = "2";
  111.             const string CommandFindBookByYear = "3";
  112.  
  113.             Console.WriteLine($"Выберите необходимый вариант поиска: \n{CommandFindBookByTitle} - Поиск по названию;\n{CommandFindBookByAuthor} - Поиск по автору;\n{CommandFindBookByYear} - Поиск по году выпуска");
  114.  
  115.             switch (Console.ReadLine())
  116.             {
  117.                 case CommandFindBookByTitle:
  118.                     FindBookByTitle();
  119.                     break;
  120.  
  121.                 case CommandFindBookByAuthor:
  122.                     FindBookByAuthor();
  123.                     break;
  124.  
  125.                 case CommandFindBookByYear:
  126.                     FindBookByYear();
  127.                     break;
  128.  
  129.                 default:
  130.                     Console.WriteLine("Команды под этим номером не существует");
  131.                     break;
  132.             }
  133.         }
  134.  
  135.         public void ShowAllBook()
  136.         {
  137.             for (int i = 0; i < _books.Count; i++)
  138.             {
  139.                 Console.Write($"{i + 1}: ");
  140.                 _books[i].ShowInfo();
  141.             }
  142.         }
  143.  
  144.         private void FindBookByTitle()
  145.         {
  146.             Console.WriteLine("Введите название книги для поиска");
  147.             string enteredValue = Console.ReadLine().ToLower();
  148.  
  149.             foreach (Book book in _books)
  150.             {
  151.                 if (book.Title.ToLower() == enteredValue)
  152.                 {
  153.                     book.ShowInfo();
  154.                 }
  155.             }
  156.         }
  157.  
  158.         private void FindBookByAuthor()
  159.         {
  160.             Console.WriteLine("Введите автора книги для поиска");
  161.             string enteredValue = Console.ReadLine().ToLower();
  162.  
  163.             foreach (Book book in _books)
  164.             {
  165.                 if (book.Author.ToLower() == enteredValue)
  166.                 {
  167.                     book.ShowInfo();
  168.                 }
  169.             }
  170.         }
  171.  
  172.         private void FindBookByYear()
  173.         {
  174.             Console.WriteLine("Введите год выпуска книги для поиска");
  175.             int enteredValue = CheckEnteredValue();
  176.  
  177.             if (enteredValue > 0)
  178.             {
  179.                 foreach (Book book in _books)
  180.                 {
  181.                     if (book.Year == enteredValue)
  182.                     {
  183.                         book.ShowInfo();
  184.                     }
  185.                 }
  186.             }
  187.         }
  188.  
  189.         private int CheckEnteredValue()
  190.         {
  191.             if (int.TryParse(Console.ReadLine(), out int parsingValue))
  192.             {
  193.                 return parsingValue;
  194.             }
  195.             else
  196.             {
  197.                 return -1;
  198.             }
  199.         }
  200.     }
  201.  
  202.     class Book
  203.     {
  204.         public Book(string title, string autor, int year)
  205.         {
  206.             Title = title;
  207.             Author = autor;
  208.             Year = year;
  209.         }
  210.  
  211.         public string Title { get; private set; }
  212.         public string Author { get; private set; }
  213.         public int Year { get; private set; }
  214.  
  215.         public void ShowInfo()
  216.         {
  217.             Console.WriteLine($"{Title}, {Author}, {Year}");
  218.         }
  219.     }
  220. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement