Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace OOPTask5BooksStorage
- {
- internal class Program
- {
- static void Main(string[] args)
- {
- BooksStorage booksStorage = new BooksStorage();
- booksStorage.Work();
- }
- }
- public class BooksStorage
- {
- private List<Book> _books = new List<Book>();
- public void Work()
- {
- const string CommandAdd = "add";
- const string CommandDelete = "delete";
- const string CommandShowAll = "all";
- const string CommandShowByAuthor = "author";
- const string CommandShowByTitle = "title";
- const string CommandShowByYear = "year";
- const string CommandExit = "exit";
- bool _isWorking = true;
- string userInput;
- while (_isWorking == true)
- {
- Console.WriteLine($"На складе {_books.Count} книг.");
- Console.WriteLine($"{CommandAdd} - добавить книгу");
- Console.WriteLine($"{CommandDelete} - удалить книгу");
- Console.WriteLine($"{CommandShowAll} - показать все книги");
- Console.WriteLine($"{CommandShowByAuthor} - поиск по автору");
- Console.WriteLine($"{CommandShowByTitle} - поиск по названию");
- Console.WriteLine($"{CommandShowByYear} - поиск по году");
- Console.WriteLine($"{CommandExit} - выход");
- Console.Write("Введите команду: ");
- userInput = Console.ReadLine();
- switch (userInput)
- {
- case CommandAdd:
- Add();
- break;
- case CommandDelete:
- Delete();
- break;
- case CommandShowAll:
- ShowAll();
- break;
- case CommandShowByAuthor:
- ShowByAuthor();
- break;
- case CommandShowByTitle:
- ShowByTitle();
- break;
- case CommandShowByYear:
- ShowByYear();
- break;
- case CommandExit:
- _isWorking = false;
- break;
- default:
- Console.WriteLine("Неизвестная команда");
- break;
- }
- Console.WriteLine("Для продолжения нажмите любую кнопку");
- Console.ReadKey();
- Console.Clear();
- }
- }
- private void Add()
- {
- Console.WriteLine("Введите название книги: ");
- string title = Console.ReadLine();
- Console.WriteLine("Введите автора книги: ");
- string author = Console.ReadLine();
- Console.WriteLine("Введите год книги: ");
- int year = ReadInt();
- _books.Add(new Book(title, author, year));
- Console.WriteLine("Книга успешно добавлена");
- }
- private void Delete()
- {
- if (IsEmpty())
- return;
- ShowAll();
- Console.Write("Выберите номер книги, которую хотите удалить: ");
- int index = ReadInt() - 1;
- if (index >= 0 && index < _books.Count())
- {
- _books.RemoveAt(index);
- Console.WriteLine("Книга удалена");
- }
- else
- {
- Console.WriteLine("Книги с таким номером нет");
- }
- }
- private void ShowAll()
- {
- if (IsEmpty())
- return;
- Console.WriteLine("Книги в хранилище:");
- int index = 1;
- foreach (Book book in _books)
- {
- Console.Write((index++) + " - ");
- book.ShowInfo();
- }
- }
- private void ShowByAuthor()
- {
- if (IsEmpty())
- return;
- Console.Write("Введите автора: ");
- string author = Console.ReadLine();
- int index = 1;
- foreach (Book book in _books)
- {
- if (book.Author == author)
- {
- Console.Write((index++) + " - ");
- book.ShowInfo();
- }
- }
- if (index == 1)
- {
- Console.WriteLine("В хранилище нет книг с таким автором");
- }
- }
- private void ShowByTitle()
- {
- if (IsEmpty())
- return;
- Console.Write("Введите название: ");
- string title = Console.ReadLine();
- int index = 1;
- foreach (Book book in _books)
- {
- if (book.Title == title)
- {
- Console.Write((index++) + " - ");
- book.ShowInfo();
- }
- }
- if (index == 1)
- {
- Console.WriteLine("В хранилище нет книг с таким названием");
- }
- }
- private void ShowByYear()
- {
- if (IsEmpty())
- return;
- Console.Write("Введите год: ");
- int year = ReadInt();
- int index = 1;
- foreach (Book book in _books)
- {
- if (book.Year == year)
- {
- Console.Write((index++) + " - ");
- book.ShowInfo();
- }
- }
- if (index == 1)
- {
- Console.WriteLine("В хранилище нет книг с таким годом");
- }
- }
- private bool IsEmpty()
- {
- if (_books.Count == 0)
- {
- Console.WriteLine("Хранилище пусто");
- return true;
- }
- else
- {
- return false;
- }
- }
- private int ReadInt()
- {
- int inputNumber;
- while (int.TryParse(Console.ReadLine(), out inputNumber) == false)
- {
- Console.Write("Это не число, попробуйте еще раз: ");
- }
- return inputNumber;
- }
- }
- public class Book
- {
- public Book(string title, string author, int year)
- {
- Title = title;
- Author = author;
- 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($"{Author} \"{Title}\", {Year}");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement