Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace Хранилище_книг
- {
- internal class Program
- {
- static void Main(string[] args)
- {
- Storage bookStorage = new Storage();
- bookStorage.Work();
- }
- }
- class Storage
- {
- private int _lastIndex = 0;
- private List<Book> _books = new List<Book>();
- public void Work()
- {
- const string AddBookMenu = "1";
- const string RemoveBookMenu = "2";
- const string ShowAllBooksMenu = "3";
- const string SearchBookOnTitleMenu = "4";
- const string SearchBookOnAuthorMenu = "5";
- const string SearchBookOnGenreMenu = "6";
- const string SearchBookOnReleaseYearMenu = "7";
- const string ExitMenu = "8";
- bool isRun = true;
- while (isRun)
- {
- Console.WriteLine($"\nХранилище книг: \n\nДоступные команды:\nДобавить книгу - {AddBookMenu}\nУдалить книгу - {RemoveBookMenu}\nПоказать все книги - {ShowAllBooksMenu}\nНайти книгу по названию - {SearchBookOnTitleMenu}\nНайти книгу по автору - {SearchBookOnAuthorMenu}\nНайти книгу по жанру - {SearchBookOnGenreMenu}\nНайти книгу по году выпуска - {SearchBookOnReleaseYearMenu}\nВыход из программы - {ExitMenu}\n");
- string userInput = Console.ReadLine();
- switch (userInput)
- {
- case AddBookMenu:
- AddBook();
- break;
- case RemoveBookMenu:
- RemoveBook();
- break;
- case ShowAllBooksMenu:
- ShowAllBooks();
- break;
- case SearchBookOnTitleMenu:
- SearchBookByTitle();
- break;
- case SearchBookOnAuthorMenu:
- SearchBookByAuthor();
- break;
- case SearchBookOnGenreMenu:
- SearchBookByGenre();
- break;
- case SearchBookOnReleaseYearMenu:
- SearchBookByReleaseYear();
- break;
- case ExitMenu:
- isRun = false;
- break;
- default:
- Console.WriteLine("\nНет такой команды");
- break;
- }
- }
- }
- private void RemoveBook()
- {
- if (_books.Count == 0)
- {
- Console.WriteLine("\nНа полке нет книг");
- return;
- }
- int indexOfBook = ReturnValidateInputNumber("\nВведите индекс книги, которую хотите удалить:");
- if (indexOfBook >= 0 && indexOfBook < _books.Count)
- {
- _books.RemoveAt(indexOfBook);
- Console.WriteLine($"\nКнига c индексом {indexOfBook} удалена");
- return;
- }
- else
- {
- Console.WriteLine("\nВведите корректный номер");
- return;
- }
- }
- private void ShowAllBooks()
- {
- if (_books.Count > 0)
- {
- foreach (var book in _books)
- {
- book.ShowBookInfo();
- }
- }
- else if (_books.Count == 0)
- {
- Console.WriteLine("\nВ хранилище пока нет книг");
- }
- }
- private void AddBook()
- {
- Console.WriteLine("\nВведите название, автора, жанр и год выпуска");
- Console.WriteLine("Название: ");
- string title = Console.ReadLine();
- Console.WriteLine("Автор: ");
- string author = Console.ReadLine();
- Console.WriteLine("Жанр: ");
- string genre = Console.ReadLine();
- int releaseYear = ReturnValidateInputNumber("Год выпуска: ");
- _books.Add(new Book(_lastIndex, title, author, genre, releaseYear));
- _lastIndex++;
- }
- private void SearchBookByTitle()
- {
- if (_books.Count > 0)
- {
- Console.WriteLine("\nВведите название книги:");
- string userInput = Console.ReadLine();
- foreach (Book book in _books)
- {
- if (book.Title.ToLower() == userInput.ToLower())
- {
- book.ShowBookInfo();
- }
- else
- {
- Console.WriteLine("\nКнига не найдена");
- break;
- }
- }
- }
- else
- {
- Console.WriteLine("\nВ хранилище пока нет книг");
- }
- }
- private void SearchBookByAuthor()
- {
- if (_books.Count > 0)
- {
- Console.WriteLine("\nВведите автора книги: ");
- string userInput = Console.ReadLine();
- foreach (Book book in _books)
- {
- if (book.Author.ToLower() == userInput.ToLower())
- {
- book.ShowBookInfo();
- }
- else
- {
- Console.WriteLine("\nКнига не найдена");
- break;
- }
- }
- }
- else
- {
- Console.WriteLine("\nВ хранилище пока нет книг");
- }
- }
- private void SearchBookByReleaseYear()
- {
- if (_books.Count > 0)
- {
- Console.WriteLine("\nВведите год выпуска книги: ");
- string userInput = Console.ReadLine();
- foreach (Book book in _books)
- {
- if (userInput == book.ReleaseYear.ToString())
- {
- book.ShowBookInfo();
- }
- else
- {
- Console.WriteLine("\nКнига не найдена");
- break;
- }
- }
- }
- else
- {
- Console.WriteLine("\nВ хранилище пока нет книг");
- }
- }
- private void SearchBookByGenre()
- {
- if (_books.Count > 0)
- {
- Console.WriteLine("\nВведите жанр книги: ");
- string userInput = Console.ReadLine();
- foreach (Book book in _books)
- {
- if (book.Genre.ToLower() == userInput.ToLower())
- {
- book.ShowBookInfo();
- }
- else
- {
- Console.WriteLine("\nКнига не найдена");
- break;
- }
- }
- }
- else
- {
- Console.WriteLine("\nВ хранилище пока нет книг");
- }
- }
- private int ReturnValidateInputNumber(string message)
- {
- Console.WriteLine(message + " ");
- int id = 0;
- while ((int.TryParse(Console.ReadLine(), out id)) == false)
- {
- Console.WriteLine("Введено не число, попробуйте еще раз: ");
- Console.WriteLine(message + " ");
- }
- return id;
- }
- }
- class Book
- {
- public Book(int index, string title, string author, string genre, int releaseYear)
- {
- Index = index;
- Title = title;
- Author = author;
- Genre = genre;
- ReleaseYear = releaseYear;
- }
- public int Index { get; private set; }
- public string Title { get; private set; }
- public string Author { get; private set; }
- public string Genre { get; private set; }
- public int ReleaseYear { get; private set; }
- public void ShowBookInfo()
- {
- Console.WriteLine($"Индекс книги: {Index} Название: {Title} Автор: {Author} Жанр: {Genre} Год выпуска: {ReleaseYear}");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement