Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Drawing;
- using System.Reflection;
- internal class Program
- {
- static void Main(string[] args)
- {
- Library library = new Library();
- library.Work();
- Console.WriteLine("Программа завершена.");
- Console.ReadKey();
- }
- }
- class Book
- {
- public Book(string name, int releaseDate, string author)
- {
- Name = name;
- ReleaseDate = releaseDate;
- Author = author;
- }
- public string Name { get; private set; }
- public int ReleaseDate { get; private set; }
- public string Author { get; private set; }
- public void ShowInfo()
- {
- Console.WriteLine($"Книга: {Name}. Автор: {Author}. Год издания: {ReleaseDate}.");
- }
- }
- class Library
- {
- private List<Book> _books = new List<Book>();
- public Library()
- {
- _books.Add(new Book("Война и мир", 1869, "Толстой"));
- _books.Add(new Book("Преступление и наказание", 1866, "Достоевский"));
- _books.Add(new Book("Мастер и Маргарита", 1967, "Булгаков"));
- _books.Add(new Book("Анна Каренина", 1877, "Толстой"));
- _books.Add(new Book("Евгений Онегин", 1833, "Пушкин"));
- }
- public void Work()
- {
- const string CommandExit = "Exit";
- const string CommandShowAllBooks = "1";
- const string CommandAddBook = "2";
- const string CommandRemoveBook = "3";
- const string CommandSearchBook = "4";
- bool isRun = true;
- while (isRun)
- {
- Console.Clear();
- Console.WriteLine($"{CommandShowAllBooks} - Показать все книги." +
- $"\n{CommandAddBook} - Добавить книгу." +
- $"\n{CommandRemoveBook} - Убрать книгу." +
- $"\n{CommandSearchBook} - Найти книгу." +
- $"\n{CommandExit} - Завершить программу.");
- switch (Console.ReadLine())
- {
- case CommandShowAllBooks:
- ShowBooks(_books);
- break;
- case CommandAddBook:
- AddBook();
- break;
- case CommandRemoveBook:
- RemoveBook();
- break;
- case CommandSearchBook:
- SearchBooks();
- break;
- case CommandExit:
- isRun = false;
- break;
- default:
- Console.WriteLine("Ошибка ввода.");
- break;
- }
- }
- }
- private void AddBook()
- {
- Console.Write("Название книги: ");
- string name = Console.ReadLine();
- Console.Write("Год издания: ");
- int releaseDate = ReadInt();
- Console.Write("Автор книги: ");
- string author = Console.ReadLine();
- _books.Add(new Book(name, releaseDate, author));
- Console.WriteLine("Книга добавлена.");
- Console.ReadKey();
- }
- private void RemoveBook()
- {
- for (int i = 0; i < _books.Count; i++)
- {
- Console.Write(i + 1 + ". ");
- _books[i].ShowInfo();
- }
- Console.Write("Введите номер книги: ");
- int numberBook = ReadInt();
- if (numberBook > 0 && numberBook <= _books.Count)
- {
- Console.WriteLine("Книга убрана.");
- _books.RemoveAt(numberBook - 1);
- }
- else
- {
- Console.WriteLine("Нет такой книги.");
- }
- Console.ReadKey();
- }
- private void SearchBooks()
- {
- string commandSearchBooksByName = "1";
- string commandSearchBooksByReleaseDate = "2";
- string commandSearchBooksByAuthor = "3";
- Console.WriteLine($"{commandSearchBooksByName} - Поиск по названию.\n" +
- $"{commandSearchBooksByReleaseDate} - Поиск по году издания.\n" +
- $"{commandSearchBooksByAuthor} - Поиск по автору.");
- string userInput = Console.ReadLine();
- if (userInput == commandSearchBooksByName)
- {
- ShowBooks(FindBooksByName());
- }
- else if (userInput == commandSearchBooksByReleaseDate)
- {
- ShowBooks(FindBooksByReleaseDate());
- }
- else if (userInput == commandSearchBooksByAuthor)
- {
- ShowBooks(FindBooksByAuthor());
- }
- else
- {
- Console.WriteLine("Ошибка ввода.");
- }
- Console.ReadKey();
- }
- private int ReadInt()
- {
- int number;
- while (int.TryParse(Console.ReadLine(), out number) == false)
- {
- Console.Write("Ошибка ввода. Повторите: ");
- }
- return number;
- }
- private List<Book> FindBooksByName()
- {
- List<Book> result = new List<Book>();
- Console.Write("Введи название книги: ");
- string name = Console.ReadLine();
- foreach (Book book in _books)
- {
- if (book.Name.Equals(name, StringComparison.OrdinalIgnoreCase))
- {
- result.Add(book);
- }
- }
- return result;
- }
- private List<Book> FindBooksByAuthor()
- {
- List<Book> result = new List<Book>();
- Console.Write("Введи автора: ");
- string author = Console.ReadLine();
- foreach (Book book in _books)
- {
- if (book.Author.Equals(author, StringComparison.OrdinalIgnoreCase))
- {
- result.Add(book);
- }
- }
- return result;
- }
- private List<Book> FindBooksByReleaseDate()
- {
- List<Book> result = new List<Book>();
- Console.Write("Введи год издания: ");
- int year = ReadInt();
- foreach (Book book in _books)
- {
- if (book.ReleaseDate == year)
- {
- result.Add(book);
- }
- }
- return result;
- }
- private void ShowBooks(List<Book> books)
- {
- if (books.Count != 0)
- {
- foreach (Book book in books)
- {
- book.ShowInfo();
- }
- }
- else
- {
- Console.WriteLine("Книг нет.");
- }
- Console.ReadKey();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment