C#. Задание массивное и интересное.
Описать класс "Библиотека".


C#. Задание массивное и интересное.Описать класс Библиотека.

bogdanlesja1 bogdanlesja1    2   19.12.2021 15:51    0

Ответы
serovik24 serovik24  19.12.2021 16:00

Осуществил с того что я умею, сложного не использовал ибо еще не дошел до него . Тут 2 класса идут в двух разных .cs .

Единственные нюансы: 1) не осуществил год до нашей эры, т.е если год вводится -2 (2 до н.е) выводится 2.

2) запутанность жесткая, ибо использовал goto и много переменных разных. с моими текущими знаниями я не мог использовать что то попроще, возможно оптимизируете.

1 класс:

using System;

namespace HomeLibrary

{

   class ListOfBooks

   {

       static string Author, Category, Name; static int Year;

       public static bool Indicate, SecondIndicate, ThirdIndicate;

       public static string SetAuthor

       {

           get

           {

               return Author;

           }

           set

           {

               if (string.IsNullOrWhiteSpace(value) || int.TryParse(value, out int WrongValue))

               {

                   Indicate = true;

               }

               else

               {

                   Author = value;

               }

           }

       }

       public static int SetYear

       {

           get

           {

               return Year;

           }

           set

           {

               if(value >= 0 && value <= 2022)

               {

                   Year = value;

               }

           }

       }

       public static string SetCategory

       {

           get

           {

               return Category;

           }

           set

           {

               if (string.IsNullOrWhiteSpace(value) || int.TryParse(value, out int WrongValue))

               {

                   SecondIndicate = true;

               }

               else

               {

                   Category = value;

               }

           }

       }

       public static string SetName

       {

           get

           {

               return Name;

           }

           set

           {

               if (string.IsNullOrWhiteSpace(value) || int.TryParse(value, out int WrongValue))

               {

                   ThirdIndicate = true;

               }

               else

               {

                   Name = value;

               }

           }

       }

   }

}

2 класс.

using System;

using System.Collections.Generic;

namespace HomeLibrary

{

   class Program

   {

       static void SecondMenue(int SecondChoise)

       {

           switch(SecondChoise)

           {

               case 2:

                   List<string> Books = new List<string>();

                   TryAgain4:

                   Console.WriteLine("Введите название книги.");

                   ListOfBooks.SetName = Console.ReadLine();

                   if (ListOfBooks.ThirdIndicate == true)

                   {

                       Console.WriteLine("Попробуйте ещё раз. Некорректное значение.");

                       ListOfBooks.ThirdIndicate = false;

                       Console.ReadLine();

                       goto TryAgain4;

                   }

                   TryAgain:

                   Console.WriteLine("Введите имя/псевдоним автора.");

                   ListOfBooks.SetAuthor = Console.ReadLine();

                   if ( ListOfBooks.Indicate == true)

                   {

                       Console.WriteLine("Попробуйте ещё раз. Некорректное значение.");

                       ListOfBooks.Indicate = false;

                       Console.ReadLine();

                       goto TryAgain;

                   }

                   TryAgain2:

                   string YearString;

                   Console.WriteLine("Введите год выпуска книги.");

                   YearString = Console.ReadLine();

                   if (!(int.TryParse(YearString, out int Year)))

                   {

                       Console.WriteLine("Попробуйте ещё раз. Некорректное значение.");

                       Console.ReadLine();

                       goto TryAgain2;

                   }

                   ListOfBooks.SetYear = Year;

                   TryAgain3:

                   Console.WriteLine("Введите категорию книги.");  

                   ListOfBooks.SetCategory = Console.ReadLine();

                   if (ListOfBooks.SecondIndicate == true)

                   {

                       Console.WriteLine("Попробуйте ещё раз. Некорректное значение.");

                       ListOfBooks.SecondIndicate = false;

                       Console.ReadLine();

                       goto TryAgain3;

                   }

                   Books.Add($"Книга: {ListOfBooks.SetName}, Автор: {ListOfBooks.SetAuthor}, Год: {ListOfBooks.SetYear}, Категория: {ListOfBooks.SetCategory}.");

                   Console.WriteLine("Книга успешно добавлена в вашу библиотеку.");

                   string ChoiceAfter;

                   TryAgain5:

                   Console.WriteLine("Желаете добавить ещё книгу - 2 , посмотреть список книг - 3, закончить - 4 .");

                   ChoiceAfter = Console.ReadLine(); if (int.TryParse(ChoiceAfter, out int Choice) && Choice == 2) goto TryAgain4;

                   else if(Choice == 3)

                   {

                       Console.WriteLine("Список ваших книг:");

                       foreach(string Book in Books)

                       {

                           Console.Write($"\n{Book}");

                           Console.ReadLine();

                       }

                       goto TryAgain5;

                   }

                   else if(Choice == 4)

                   {

                       Console.WriteLine("Всего доброго!");

                       Console.ReadLine();

                       return;

                   }

           break;

               case 4:

                   Console.WriteLine("Всего доброго!");

                   Console.ReadLine();

                   return;

           }

       }

       static void Menue(int UserNumber)

       {

           TryAgainX2:

           switch (UserNumber)

           {

               case 1:

                   string ChoiseString;

                   Console.WriteLine("Добавить книгу - 2 , Закончить работу - 4 .");

                   ChoiseString = Console.ReadLine();

                   int.TryParse(ChoiseString, out int Choise); if (Choise >= 2 && Choise <= 4) SecondMenue(Choise);

                   break;

               default:

                   Console.WriteLine("Некорректное значение");

           goto TryAgainX2;

           break;

           }

       }

       static void Main(string[] args)

       {

           TryAgain:

           string ChoiceFirst;

           Console.WriteLine("Здравствуйте, Вас приветсвует домашняя библиотека. Открыть меню команд - 1");

           ChoiceFirst = Console.ReadLine();

           if (int.TryParse(ChoiceFirst, out int Choice) && Choice == 1) Menue(Choice);

           else

           {

               Console.WriteLine("Неверное значение, попробуйте ещё раз.");

               goto TryAgain;

           }

           Console.ReadLine();

       }

   }

}


C#. Задание массивное и интересное.Описать класс Библиотека.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика