using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Book { public string AuthorName; public string Genre; public int Year; public int AmountPages; public string Name; public string Content; public Book(string a) { Name = a; } public static HomeLibr operator +(Book a, Book b) { HomeLibr s = new HomeLibr(); s = s + a; s = s + b; return s; } } class HomeLibr { public List Books = new List(); public HomeLibr() { } public static HomeLibr operator +(HomeLibr a, Book b) { a.Books.Add(b); return a; } public static HomeLibr operator -(HomeLibr a, Book b) { foreach (Book z in a.Books) { if (z == b) { a.Books.Remove(z); return a; } } return a; } public Book Search(string s, string s2, ref bool check) { check = false; int c = 0; Book Exit = new Book(""); if (s == "Name") { foreach (Book b in Books) { if (b.Name == s2) { Exit = b; check = true; c++; } } } else if (s == "AuthorName") { foreach (Book b in Books) { if (b.AuthorName == s2) { Exit = b; check = true; c++; } } } else if (s == "Genre") { foreach (Book b in Books) { if (b.Genre == s2) { Exit = b; check = true; c++; } } } else { Console.WriteLine("Неверные параметры поиска"); Environment.Exit(0); } if (!check) Console.WriteLine("По данным параметрам ничего не найдено \n"); if (c > 1) Console.WriteLine("Книг с параметром {0} {1}, используйте другой параметр", s, c); return Exit; } public Book Search(string s, int d, ref bool check) { check = false; int c = 0; Book Exit = new Book(""); if (s == "Year") { foreach (Book b in Books) { if (b.Year == d) { Exit = b; check = true; c++; } } } else if (s == "Number") { Exit = Books[d]; check = true; } else { Console.WriteLine("Неверные параметры поиска"); Environment.Exit(0); } if (!check) Console.WriteLine("По данным параметрам ничего не найдено\n"); if (c > 1) Console.WriteLine("Книг с параметром {0} {1}, используйте другой параметр", s, c); return Exit; } } class Program { static void Main(string[] args) { try { Book a = new Book("1"); a.AuthorName = "2"; a.Genre = "3"; a.Year = 4; a.Name = "5"; Book b = new Book("2"); b.AuthorName = "3"; b.Genre = "4"; b.Year = 5; b.Name = "6"; Book c = new Book("3"); c.AuthorName = "4"; c.Genre = "5"; c.Year = 6; c.Name = "7"; HomeLibr Libr = new HomeLibr(); Libr = Libr + a; Libr = Libr + b; Libr = Libr + c; Console.Write("Книги библиотеки №1 - "); foreach (Book q in Libr.Books) { Console.Write(q.Name + " "); } Console.WriteLine("\n"); Libr = Libr - b; Console.Write("Книги библиотеки №1 после удаления книги {0} - ", b.Name); foreach (Book q in Libr.Books) { Console.Write(q.Name + " "); } Console.WriteLine("\n"); HomeLibr Libr2 = a + b; Console.Write("Книги библиотеки №2, созданной складываем книг {0} и {1} - ", a.Name, b.Name); foreach (Book q in Libr2.Books) { Console.Write(q.Name + " "); } Console.WriteLine("\n"); bool check = false; Book finding = Libr.Search("AuthorName", "2", ref check); if (check) Console.WriteLine("Результат поиска по AuthorName 2: книга " + finding.Name + "\n"); finding = Libr.Search("Year", 2, ref check); if (check) Console.WriteLine("Результат поиска: книга " + finding.Name + "\n"); Console.WriteLine("Результат запроса по номеру 2: книга - " + Libr2.Books[1].Name + "\n"); } catch (Exception e) { Console.WriteLine(e.Message); } } } }