Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- namespace Хранилище_книг
- {
- internal class Program
- {
- static void Main(string[] args)
- {
- Librarian librarian = new Librarian();
- librarian.LaunchProgram();
- }
- }
- class Librarian
- {
- private Library _library = new Library();
- public void LaunchProgram()
- {
- const string CommandAddBook = "1";
- const string CommandRemoveBook = "2";
- const string CommandShowOneBook = "3";
- const string CommandShowAllBook = "4";
- const string CommandExit = "5";
- bool isWorks = true;
- Console.WriteLine("Вы приступили к работе библиотекаря\n");
- while (isWorks)
- {
- Console.WriteLine($"Введите необходимое действие:\n{CommandAddBook} - Добавить книгу\n{CommandRemoveBook} - Удалить книгу\n{CommandShowOneBook} - Показать одну книгу\n{CommandShowAllBook} - Показать все книги\n{CommandExit} - Завершить рабочий день");
- switch (Console.ReadLine())
- {
- case CommandAddBook:
- _library.AddBook();
- break;
- case CommandRemoveBook:
- _library.RemoveBook();
- break;
- case CommandShowOneBook:
- _library.ShowOneBook();
- break;
- case CommandShowAllBook:
- _library.ShowAllBook();
- break;
- case CommandExit:
- isWorks = false;
- break;
- default:
- Console.WriteLine("Команды под этим номером не существует");
- break;
- }
- Console.WriteLine("Нажмите любую клавишу для продолжения...");
- Console.ReadKey();
- Console.Clear();
- }
- }
- }
- class Library
- {
- private List<Book> _books = new List<Book>();
- public void AddBook()
- {
- Console.WriteLine("Введите вначале название книги, затем автора книги, а далее год выпуска книги:");
- string titleBook = Console.ReadLine();
- string autorBook = Console.ReadLine();
- int yearBook = CheckEnteredValue();
- if (yearBook > 0)
- {
- _books.Add(new Book(titleBook, autorBook, yearBook));
- }
- else
- {
- Console.WriteLine("Книга не добавлена. Повторите попытку");
- }
- }
- public void RemoveBook()
- {
- Console.WriteLine("Укажите id книги для удаления:");
- int idBook = CheckEnteredValue() - 1;
- if (idBook >= 0 && idBook < _books.Count)
- {
- _books.Remove(_books[idBook]);
- }
- else
- {
- Console.WriteLine("Удаление не выполнено. Повторите попытку");
- }
- }
- public void ShowOneBook()
- {
- const string CommandFindBookByTitle = "1";
- const string CommandFindBookByAuthor = "2";
- const string CommandFindBookByYear = "3";
- Console.WriteLine($"Выберите необходимый вариант поиска: \n{CommandFindBookByTitle} - Поиск по названию;\n{CommandFindBookByAuthor} - Поиск по автору;\n{CommandFindBookByYear} - Поиск по году выпуска");
- switch (Console.ReadLine())
- {
- case CommandFindBookByTitle:
- FindBookByTitle();
- break;
- case CommandFindBookByAuthor:
- FindBookByAuthor();
- break;
- case CommandFindBookByYear:
- FindBookByYear();
- break;
- default:
- Console.WriteLine("Команды под этим номером не существует");
- break;
- }
- }
- public void ShowAllBook()
- {
- for (int i = 0; i < _books.Count; i++)
- {
- Console.Write($"{i + 1}: ");
- _books[i].ShowInfo();
- }
- }
- private void FindBookByTitle()
- {
- Console.WriteLine("Введите название книги для поиска");
- string enteredValue = Console.ReadLine().ToLower();
- foreach (Book book in _books)
- {
- if (book.Title.ToLower() == enteredValue)
- {
- book.ShowInfo();
- }
- }
- }
- private void FindBookByAuthor()
- {
- Console.WriteLine("Введите автора книги для поиска");
- string enteredValue = Console.ReadLine().ToLower();
- foreach (Book book in _books)
- {
- if (book.Author.ToLower() == enteredValue)
- {
- book.ShowInfo();
- }
- }
- }
- private void FindBookByYear()
- {
- Console.WriteLine("Введите год выпуска книги для поиска");
- int enteredValue = CheckEnteredValue();
- if (enteredValue > 0)
- {
- foreach (Book book in _books)
- {
- if (book.Year == enteredValue)
- {
- book.ShowInfo();
- }
- }
- }
- }
- private int CheckEnteredValue()
- {
- if (int.TryParse(Console.ReadLine(), out int parsingValue))
- {
- return parsingValue;
- }
- else
- {
- return -1;
- }
- }
- }
- class Book
- {
- public Book(string title, string autor, int year)
- {
- Title = title;
- Author = autor;
- Year = year;
- }
- public string Title { get; private set; }
- public string Author { get; private set; }
- public int Year { get; private set; }
- public void ShowInfo()
- {
- Console.WriteLine($"{Title}, {Author}, {Year}");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement