Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace Task42
- {
- internal class Program
- {
- static void Main(string[] args)
- {
- int index;
- Library library = new Library(out index);
- bool isExit = false;
- string menu =
- "Add ----- добавить книгу \n" +
- "Delete -- убрать книгу из хранилища по указанному параметру \n" +
- "ShowAll - показать все книхи в хранилище \n" +
- "Show ---- показать книгу по указанному параметру \n" +
- "Exit ---- выйти из программы \n" +
- "============================================================";
- string noSearchCommand =
- "Вы ввели команду которой нет, проверьте правильность написания и соответсвтвия. Попробуйте снова. ";
- string requestInputKey =
- "Ведите любой символ для продолжение или просто нажмите Enter. ";
- string goodbye =
- "До свидания! ";
- string userInput;
- while (isExit == false)
- {
- Console.Clear();
- Console.WriteLine(menu);
- userInput = Console.ReadLine();
- switch (userInput)
- {
- case "Add":
- library.Add(ref index);
- break;
- case "Delete":
- library.Delete();
- break;
- case "ShowAll":
- library.ShowAll();
- break;
- case "Show":
- library.Show();
- break;
- case "Exit":
- isExit = true;
- break;
- default:
- Console.WriteLine(noSearchCommand);
- break;
- }
- Console.WriteLine(requestInputKey);
- Console.ReadKey();
- }
- Console.WriteLine(goodbye);
- }
- }
- class Book
- {
- public int Index { get; private set; }
- public string Title { get; private set; }
- public string Author { get; private set; }
- public int DateCreate { get; private set; }
- public string Genre { get; private set; }
- public Book(int index,string title, string author, int dateCreate, string genre)
- {
- Index = index;
- Title = title;
- Author = author;
- DateCreate = dateCreate;
- Genre = genre;
- }
- }
- class Library
- {
- private List<Book> _books = new List<Book>();
- private List<Book> _searchBook = new List<Book>();
- public Library(out int index)
- {
- index = 1;
- _books.Add(new Book(index,"Нечто", "Ч.Т. Кто-тович", 1986, "Нонфикшн"));
- index++;
- _books.Add(new Book(index, "Дерево", "О.Б. Толстый", 1862, "Дама"));
- index++;
- _books.Add(new Book(index, "Физика космоса", "З.А. Умный", 2010, "Научная литература"));
- index++;
- _books.Add(new Book(index, "Поезд в сибирь", "О.Б. Толстый", 1870, "Роман"));
- index++;
- _books.Add(new Book(index, "Поезд в сибирь", "Р.В. Солежиницын", 1972, "Драма"));
- index++;
- _books.Add(new Book(index, "Быстро заработай, заработай быстро", "Л.О. Харин", 2020, "Бизнес"));
- index++;
- }
- public void Add(ref int index)
- {
- string requestTitleBook =
- "Введите название книги: ";
- string requestAuthorBook =
- "Введите автора книги: ";
- string requestDateCreateBook =
- "Введите год создания книги: ";
- string requestGenreBook =
- "Введите жанр книги: ";
- string succesAddBook =
- "Книга успешно добавлена. ";
- string title;
- string author;
- string genre;
- int yearCreate;
- Console.Write(requestTitleBook);
- title = Console.ReadLine();
- Console.Write(requestAuthorBook);
- author = Console.ReadLine();
- yearCreate = GetInt(requestDateCreateBook);
- Console.Write(requestGenreBook);
- genre = Console.ReadLine();
- _books.Add(new Book(index, title, author, yearCreate, genre));
- index++;
- Console.WriteLine(succesAddBook);
- }
- public void Delete()
- {
- string requestIndexBook =
- "Введи номер книги, которую хотите удалить: ";
- string succesDelete =
- "Книга удалена. ";
- string errorIndexBook =
- "Книги под данным номером не существует. ";
- int indexBook;
- indexBook = GetInt(requestIndexBook);
- indexBook--;
- if (indexBook <= _books.Count)
- {
- _books.RemoveAt(indexBook);
- Console.WriteLine(succesDelete);
- }
- else
- {
- Console.WriteLine(errorIndexBook);
- }
- }
- public void Show()
- {
- string requestParameter =
- "Введите параметр: \n" +
- "Название --- поиск по названию \n" +
- "Автор ------ поиск по автору \n" +
- "Год -------- поиск по году создания \n" +
- "Жанр ------- поиск по жанру \n" +
- "Стоп ------- выйти из поиска \n" +
- "======================================";
- string noSearchCommand =
- "Вы ввели команду которой нет, проверьте правильность написания и соответсвтвия. Попробуйте снова. ";
- string requestInputKey =
- "Ведите любой символ для продолжение или просто нажмите Enter. ";
- string userInput;
- bool isActive = true;
- while (isActive == true)
- {
- Console.Clear();
- Console.WriteLine(requestParameter);
- userInput = Console.ReadLine();
- switch (userInput)
- {
- case "Название":
- SearchToTitle();
- break;
- case "Автор":
- SearchToAuthor();
- break;
- case "Год":
- SearchToDateCreateBook();
- break;
- case "Жанр":
- SearchToGenreBook();
- break;
- case "Стоп":
- isActive = false;
- break;
- default:
- Console.WriteLine(noSearchCommand);
- break;
- }
- Console.WriteLine(requestInputKey);
- Console.ReadKey();
- }
- }
- public void ShowAll()
- {
- for (int i = 0; i < _books.Count; i++)
- {
- Console.WriteLine(
- $"=======================================\n" +
- $"номер -------- {_books[i].Index} \n" +
- $"название ----- {_books[i].Title} \n " +
- $"автор -------- {_books[i].Author} \n" +
- $"год создания - {_books[i].DateCreate} \n" +
- $"жанр --------- {_books[i].Genre} \n" +
- $"=======================================");
- }
- }
- private int GetInt(string requestInputNumber)
- {
- string errorConversion = "Ошибка,вы вели не цифры! Попробуйте снова.";
- string userInput;
- bool resultConverted = false;
- int number = 0;
- while (resultConverted == false)
- {
- Console.Write(requestInputNumber);
- userInput = Console.ReadLine();
- resultConverted = int.TryParse(userInput, out int numberConvert);
- if (resultConverted != true)
- Console.WriteLine(errorConversion);
- else
- number = numberConvert;
- }
- return number;
- }
- private void ShowSearch()
- {
- string searchBook =
- "Найденные книги: ";
- string errorSearchBook =
- "Книги не обнаружено. ";
- if (TryToSearch())
- {
- Console.WriteLine(searchBook);
- for (int i = 0; i < _searchBook.Count; i++)
- {
- Console.WriteLine(
- $"=======================================\n" +
- $"номер -------- {_searchBook[i].Index} \n" +
- $"название ----- {_searchBook[i].Title} \n " +
- $"автор -------- {_searchBook[i].Author} \n" +
- $"год создания - {_searchBook[i].DateCreate} \n" +
- $"жанр --------- {_searchBook[i].Genre} \n" +
- $"=======================================");
- }
- }
- else
- {
- Console.WriteLine(errorSearchBook);
- }
- }
- private bool TryToSearch()
- {
- if (_searchBook.Count == 0)
- return false;
- else
- return true;
- }
- private void SearchToTitle()
- {
- string title;
- string requestTitleBook =
- "Введите название книги: ";
- Console.Write(requestTitleBook);
- title = Console.ReadLine();
- foreach (var book in _books)
- {
- if (book.Title.ToLower() == title.ToLower())
- {
- _searchBook.Add(book);
- }
- }
- ShowSearch();
- }
- private void SearchToAuthor()
- {
- string author;
- string requestAuthorBook =
- "Введите автора книги: ";
- Console.Write(requestAuthorBook);
- author = Console.ReadLine();
- foreach (var book in _books)
- {
- if (book.Author.ToLower() == author.ToLower())
- {
- _searchBook.Add(book);
- }
- }
- ShowSearch();
- }
- private void SearchToDateCreateBook()
- {
- int date;
- string requestDateBook =
- "Введите дату создания книги: ";
- date = GetInt(requestDateBook);
- foreach (var book in _books)
- {
- if (book.DateCreate == date)
- {
- _searchBook.Add(book);
- }
- }
- ShowSearch();
- }
- private void SearchToGenreBook()
- {
- string genre;
- string requestGenreBook =
- "Введите жанр книги: ";
- Console.Write(requestGenreBook);
- genre = Console.ReadLine();
- foreach (var book in _books)
- {
- if (book.Genre.ToLower() == genre.ToLower())
- {
- _searchBook.Add(book);
- }
- }
- ShowSearch();
- }
- }
- }
Add Comment
Please, Sign In to add comment