Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Numerics;
- using System.Security.Cryptography.X509Certificates;
- using System.Xml.Linq;
- using static System.Runtime.InteropServices.JavaScript.JSType;
- namespace CSLight
- {
- class Program
- {
- static void Main(string[] args)
- {
- StorageLibrary storageLibrary = new StorageLibrary();
- storageLibrary.Work();
- }
- }
- class StorageLibrary
- {
- private const string AddBookCommand = "1";
- private const string RemoveBookCommand = "2";
- private const string ShowBooksCommand = "3";
- private const string SearchBookCommand = "4";
- private const string ExitProgramCommand = "5";
- private const string NameBookCommand = "1";
- private const string AuthorBook = "2";
- private const string ReleaseYearBookCommand = "3";
- List<Book> _books = new List<Book>();
- public void Work()
- {
- bool isInputValid = true;
- while (isInputValid)
- {
- Console.Clear();
- Console.WriteLine("Хранилище библиотеки\n" +
- "Выберите действие:\n" +
- $"{AddBookCommand})Добавить книгу\n" +
- $"{RemoveBookCommand})Убрать книгу\n" +
- $"{ShowBooksCommand})Показать все книги\n" +
- $"{SearchBookCommand})Поиск книги по названию/автору/году выпуска\n" +
- $"{ExitProgramCommand})Покинуть библиотеку");
- string userInput = Console.ReadLine();
- switch (userInput)
- {
- case AddBookCommand:
- Console.Clear();
- AddBook();
- Console.ReadKey();
- break;
- case RemoveBookCommand:
- Console.Clear();
- RemoveBook();
- Console.ReadKey();
- break;
- case ShowBooksCommand:
- Console.Clear();
- ShowBooks();
- Console.ReadKey();
- break;
- case SearchBookCommand:
- Console.Clear();
- SearchBook();
- Console.ReadKey();
- break;
- case ExitProgramCommand:
- Console.Clear();
- isInputValid = false;
- break;
- default:
- Console.Clear();
- Console.WriteLine("Неверный выбор. Попробуйте еще раз.");
- Console.ReadKey();
- break;
- }
- }
- }
- public void AddBook()
- {
- Console.WriteLine("Введите название книги:");
- string nameBook = Console.ReadLine();
- Console.WriteLine("Введите автора книги:");
- string authorBook = Console.ReadLine();
- Console.WriteLine("Введите год выпуска книги:");
- int releaseYearBook = ReadInt("Год выпуска должен быть числом. Попробуйте еще раз:");
- Console.WriteLine("Введите серийный номер книги:");
- int serialNumber = ReadInt("Серийный номер должен быть числом. Попробуйте еще раз:");
- Book book = new Book (nameBook, authorBook, releaseYearBook, serialNumber);
- _books.Add(book);
- }
- public void RemoveBook()
- {
- ShowBooks();
- Console.WriteLine("Введите серийный номер книги которую хотите удалить");
- int serialNumber = ReadInt("Серийный номер должен быть числом. Попробуйте еще раз:");
- TryGetBook(serialNumber, out Book book);
- _books.Remove(book);
- Console.WriteLine($"Книга: {book.Name} | Автор: {book.Author} | Год: {book.ReleaseYear} | {book.SerialNumber} удаленa.");
- }
- public void ShowBooks()
- {
- if (_books.Count == 0)
- {
- Console.WriteLine("В базе нет книг.");
- }
- else
- {
- Console.WriteLine("Список книг:");
- foreach (Book book in _books)
- {
- book.ShowInfo();
- }
- }
- }
- public void SearchBook()
- {
- Console.Write("Введите параметр поиска (например это может быть Название книги, Автор, Год публикации):");
- string userInput = Console.ReadLine();
- bool successfulConversion = int.TryParse(userInput, out int inputNumber);
- foreach (Book book in _books)
- {
- if (userInput == book.Author || userInput == book.Name || (inputNumber == book.ReleaseYear && successfulConversion))
- book.ShowInfo();
- }
- }
- private bool TryGetBook(int serialNumber, out Book book)
- {
- book = _books.FirstOrDefault(book => book.SerialNumber == serialNumber);
- if (book != null)
- {
- return true;
- }
- Console.WriteLine($"Книга с серийным номером {serialNumber} не найдена.");
- return false;
- }
- private int ReadInt(string errorMessage)
- {
- int result;
- while (!int.TryParse(Console.ReadLine(), out result))
- {
- Console.WriteLine(errorMessage);
- }
- return result;
- }
- }
- class Book
- {
- public Book(string name, string author, int releaseYear,int serialNumber)
- {
- Name = name;
- Author = author;
- ReleaseYear = releaseYear;
- SerialNumber = serialNumber;
- }
- public string Name { get; private set; }
- public string Author { get; private set; }
- public int ReleaseYear { get; private set; }
- public int SerialNumber { get; private set; }
- public void ShowInfo()
- {
- Console.WriteLine($"Книга: {Name} | Автор: {Author} | Год: {ReleaseYear} | {SerialNumber}");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment