Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.Collections.ObjectModel;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.IO;
- namespace Основы.Практика
- {
- class Program
- {
- static void Main()
- {
- Menu menu = new Menu();
- menu.Run();
- }
- }
- class Menu
- {
- private const string ExitCommand = "0";
- private const string AddBookCommand = "1";
- private const string RemoveBookCommand = "2";
- private const string ShowBooksCommand = "3";
- private const string ShowBooksByParametrCommand = "4";
- private Library _library;
- public Menu()
- {
- _library = new Library();
- }
- public void Run()
- {
- bool isRun = true;
- while (isRun)
- {
- Console.WriteLine($"{ExitCommand} - Выход\n" +
- $"{AddBookCommand} - Добавить книгу\n" +
- $"{RemoveBookCommand} - Убрать книгу\n" +
- $"{ShowBooksCommand} - Показать все книги\n" +
- $"{ShowBooksByParametrCommand} - Показать книги по определенному параметру");
- Console.Write("Ввод: ");
- string userInput = Console.ReadLine();
- Console.Clear();
- switch (userInput)
- {
- case ExitCommand:
- Console.WriteLine("Выход...");
- isRun = false;
- break;
- case AddBookCommand:
- _library.AddBook();
- break;
- case RemoveBookCommand:
- _library.RemoveBook();
- break;
- case ShowBooksCommand:
- _library.ShowBooks();
- break;
- case ShowBooksByParametrCommand:
- _library.ShowBooksByParametr();
- break;
- default:
- Console.WriteLine("Некорректный ввод!");
- break;
- }
- }
- }
- }
- class Library
- {
- private List<Book> _books;
- public Library()
- {
- _books = new List<Book>()
- {
- new Book("Метро 2033", "Глуховский", 2005),
- new Book("Ведьмак", "Сапковский", 1986),
- new Book("Кровь, пот и пиксели", "Шрейер", 2018),
- new Book("Метро 2034", "Глуховский", 2009),
- new Book("Метро 2035", "Глуховский", 2015)
- };
- }
- public void AddBook()
- {
- Console.Write("Введите название книги: ");
- string name = Console.ReadLine();
- Console.Write("\nВведите автора: ");
- string author = Console.ReadLine();
- Console.Write("\nВведите год выпуска: ");
- if(int.TryParse(Console.ReadLine(), out int releaseYear) == false)
- {
- Console.WriteLine("Некорректный ввод года выпуска!");
- return;
- }
- Book book = new Book(name, author, releaseYear);
- _books.Add(book);
- }
- public void RemoveBook()
- {
- Console.WriteLine("Выберите из списка книгу, необходимую для удаления: ");
- for (int i = 0; i < _books.Count; i++)
- {
- Console.WriteLine($"{i + 1} ) Название: {_books[i].Name}; Автор: {_books[i].Author}; " +
- $"Год выпуска: {_books[i].ReleaseYear}");
- }
- Console.Write("Ввод: ");
- if(int.TryParse(Console.ReadLine(), out int userInput) == false)
- {
- Console.WriteLine("Некорректный ввод!");
- return;
- }
- else if (--userInput < 0 && userInput > _books.Count)
- {
- Console.WriteLine("Такой книги нет!");
- return;
- }
- _books.RemoveAt(userInput);
- }
- public void ShowBooks()
- {
- foreach (Book book in _books)
- {
- Console.WriteLine($"Название: {book.Name}; Автор: {book.Author}; " +
- $"Год выпуска: {book.ReleaseYear}");
- }
- }
- public void ShowBooksByParametr()
- {
- const string ShowBookByNameCommand = "1";
- const string ShowBookByAuthorCommand = "2";
- const string ShowBookByReleaseYearCommand = "3";
- Console.WriteLine("Выберите параметр:\n" +
- $"{ShowBookByNameCommand} - по названию\n" +
- $"{ShowBookByAuthorCommand} - по авторам\n" +
- $"{ShowBookByReleaseYearCommand} - по году выпуска");
- Console.Write("Ввод: ");
- string userInput = Console.ReadLine();
- Console.WriteLine();
- switch (userInput)
- {
- case ShowBookByNameCommand:
- ShowBookByName();
- break;
- case ShowBookByAuthorCommand:
- ShowBookByAuthor();
- break;
- case ShowBookByReleaseYearCommand:
- ShowBookByReleaseYear();
- break;
- default:
- Console.WriteLine("Такого параметра нет!");
- break;
- }
- }
- private void ShowBookByAuthor()
- {
- List<string> booksByAuthors = new List<string>();
- foreach (Book book in _books)
- {
- booksByAuthors.Add(book.Author);
- Console.WriteLine(book.Author);
- }
- Console.Write("\nВведите интересующего автора: ");
- string userInput = Console.ReadLine();
- if (booksByAuthors.Contains(userInput) == false)
- {
- Console.WriteLine("Такого автора нет!");
- return;
- }
- Console.WriteLine($"Список книг автора {userInput}");
- foreach (Book book in _books)
- {
- if (book.Author == userInput)
- {
- Console.WriteLine($"Название: {book.Name}. " +
- $"Год выпуска: {book.ReleaseYear};");
- }
- }
- }
- private void ShowBookByName()
- {
- List<string> booksByName = new List<string>();
- foreach (Book book in _books)
- {
- booksByName.Add(book.Name);
- Console.WriteLine(book.Name);
- }
- Console.Write("\nВведите название: ");
- string userInput = Console.ReadLine();
- if (booksByName.Contains(userInput) == false)
- {
- Console.WriteLine("Такого названия нет!");
- return;
- }
- Console.WriteLine($"Информация об одноименной книге <{userInput}>");
- foreach (Book book in _books)
- {
- if (book.Name == userInput)
- {
- Console.WriteLine($"Автора: {book.Author}. " +
- $"Год выпуска: {book.ReleaseYear};");
- }
- }
- }
- private void ShowBookByReleaseYear()
- {
- List<int> booksByReleaseYear = new List<int>();
- foreach (Book book in _books)
- {
- booksByReleaseYear.Add(book.ReleaseYear);
- Console.WriteLine(book.ReleaseYear);
- }
- Console.Write("\nВведите год: ");
- if(int.TryParse(Console.ReadLine(), out int userInput) == false)
- {
- Console.WriteLine("Некорректный ввод!");
- return;
- }
- else if (booksByReleaseYear.Contains(userInput) == false)
- {
- Console.WriteLine("Такого года выпуска нет!");
- return;
- }
- Console.WriteLine($"Информация релизах в {userInput} г.");
- foreach (Book book in _books)
- {
- if (book.ReleaseYear == userInput)
- {
- Console.WriteLine($"Название: {book.Name}. " +
- $"Автор: {book.Author};");
- }
- }
- }
- }
- class Book
- {
- public Book(string name, string author, int releaseYear)
- {
- Name = name;
- Author = author;
- ReleaseYear = releaseYear;
- }
- public string Name { get; private set; }
- public string Author { get; private set; }
- public int ReleaseYear { get; private set; }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement