Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Numerics;
- namespace BookStorage
- {
- class Program
- {
- static void Main(string[] args)
- {
- const string AddBookCommand = "1";
- const string ShowAllBookCommand = "2";
- const string RemovePlayerByIdCommand = "3";
- const string SearchBookByAuthorCommand = "4";
- const string SearchBookByNameCommand = "5";
- const string SearchBookByYearCommand = "6";
- const string ExitCommand = "7";
- bool isWork = true;
- BookStorage bookStorage = new BookStorage();
- while (isWork)
- {
- Console.WriteLine($"{AddBookCommand}. Добавить книгу" +
- $"\n{ShowAllBookCommand}. Посмотреть все книги" +
- $"\n{RemovePlayerByIdCommand}. Удалить книгу по ID" +
- $"\n{SearchBookByAuthorCommand}. Поиск книги по автору" +
- $"\n{SearchBookByNameCommand}. Поиск книги по названию" +
- $"\n{SearchBookByYearCommand}. Поиск книги по году" +
- $"\n{ExitCommand}. Выйти");
- string userSelection = Console.ReadLine();
- switch (userSelection)
- {
- case AddBookCommand:
- bookStorage.AddBook();
- break;
- case ShowAllBookCommand:
- bookStorage.ShowAllBook();
- break;
- case RemovePlayerByIdCommand:
- bookStorage.RemovePlayerById();
- break;
- case SearchBookByAuthorCommand:
- bookStorage.SearchBookByAuthor();
- break;
- case SearchBookByNameCommand:
- bookStorage.SearchBookByName();
- break;
- case SearchBookByYearCommand:
- bookStorage.SearchBookByYear();
- break;
- case ExitCommand:
- isWork = false;
- break;
- default:
- Console.WriteLine("Ошибка, такого пункта меню нет");
- break;
- }
- Console.ReadKey();
- Console.Clear();
- }
- }
- }
- class Book
- {
- private static int _idCounter = 1;
- public Book(string autor, string title, string yearOfRelease)
- {
- Autor = autor;
- Title = title;
- YearOfRelease = yearOfRelease;
- UniqueNumber = _idCounter++;
- }
- public int UniqueNumber { get; private set; }
- public string Autor { get; private set; }
- public string Title { get; private set; }
- public string YearOfRelease { get; private set; }
- public void ShowBook()
- {
- Console.WriteLine($"Id книги: {UniqueNumber}, Автор книги: {Autor}, Название книги: {Title}, Год выпуска книги: {YearOfRelease}.");
- }
- }
- class BookStorage
- {
- private List<Book> _books;
- public BookStorage()
- {
- _books = new List<Book>();
- }
- private string SetAuthor()
- {
- Console.Write("Введите ФИО автора книги:");
- return Console.ReadLine();
- }
- private string SetTitle()
- {
- Console.Write("Введите название книги:");
- return Console.ReadLine();
- }
- private string SetYearOfRelease()
- {
- Console.Write("Введите год выпуска");
- return Console.ReadLine();
- }
- public void AddBook()
- {
- Console.Clear();
- Book book = new Book(SetAuthor(), SetTitle(), SetYearOfRelease());
- _books.Add(book);
- Console.WriteLine($"Книга {book.Title} успешно добавлена c Id {book.UniqueNumber}.");
- }
- public void ShowAllBook()
- {
- Console.Clear();
- if (_books.Count > 0)
- {
- foreach (var book in _books)
- {
- book.ShowBook();
- }
- }
- else
- {
- Console.WriteLine("В хранинилище нет книг.");
- }
- }
- public void RemovePlayerById()
- {
- Book book;
- Console.WriteLine("Введите ID книги:");
- if (int.TryParse(Console.ReadLine(), out int id))
- {
- if (TryGetBook(id, out book))
- {
- _books.Remove(book);
- Console.WriteLine($"Книга с ID {id} успешно удалена.");
- }
- else
- {
- Console.WriteLine($"Книга с ID {id} не найдена.");
- }
- }
- else
- {
- Console.WriteLine("Неверный ввод.");
- }
- }
- private bool TryGetBook(int id, out Book book)
- {
- foreach (Book bookLocal in _books)
- {
- if (bookLocal.UniqueNumber == id)
- {
- book = bookLocal;
- return true;
- }
- }
- book = null;
- return false;
- }
- public void SearchBookByAuthor()
- {
- Console.Clear();
- if (_books.Count > 0)
- {
- Console.Write("Введите имя автора: ");
- string author = Console.ReadLine().ToLower();
- int counter = 0;
- foreach (var book in _books)
- {
- if (book.Autor.ToLower() == author || book.Autor.ToLower().Contains(author))
- {
- book.ShowBook();
- counter++;
- }
- }
- if (counter == 0)
- {
- Console.WriteLine("Совпадений нет");
- }
- }
- else
- {
- Console.WriteLine("В хранилище нет книг.");
- }
- }
- public void SearchBookByName()
- {
- Console.Clear();
- if (_books.Count > 0)
- {
- int counter = 0;
- Console.Write("Введите название книги: ");
- string title = Console.ReadLine().ToLower();
- foreach (var book in _books)
- {
- if (book.Title.ToLower() == title || book.Title.ToLower().Contains(title))
- {
- book.ShowBook();
- counter++;
- }
- }
- if (counter == 0)
- {
- Console.WriteLine("Совпадений нет");
- }
- }
- else
- {
- Console.WriteLine("В хранилище нет книг.");
- }
- }
- public void SearchBookByYear()
- {
- Console.Clear();
- if (_books.Count > 0)
- {
- Console.Write("Введите год выпуска книги: ");
- string year = Console.ReadLine().ToLower();
- int counter = 0;
- foreach (var book in _books)
- {
- if (book.YearOfRelease.ToLower() == year || book.YearOfRelease.ToLower().Contains(year))
- {
- book.ShowBook();
- counter++;
- }
- }
- if (counter == 0)
- {
- Console.WriteLine("Совпадений нет");
- }
- }
- else
- {
- Console.WriteLine("В хранилище нет книг.");
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement