Перегрузка операторов сравнения - C# (189555)

Узнай цену своей работы

Формулировка задачи:

Нужно перегрузить операторы сравнения
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace Задание_3
{
    class Program
    {
        class Book
        {
            string Avtor;
            string Nazvanie;
            int God;
            string Izdatelstvo;
            int Stranici;
            static int l=0;

            public Book()
            {
 
                Nazvanie = "Неизвестно";
                Avtor = "Неизвестно";
                God = 0;
                Izdatelstvo = "Неизвестно";
                Stranici = 0;
                l++;
            }

            public Book(string Avt, string Naz, int G, string Izd, int Str)
            {
                this.Avtor = Avt;
                this.Nazvanie = Naz;
                this.God = G;
                this.Izdatelstvo = Izd;
                this.Stranici = Str;

            }

            public string Naz
            {
                get { return Naz; }
                set { Naz = value; }
            }
 
            public int G
            {
                get { return G; }
                set { G = value; }
 
            }
 
            public string Izd
            {
                get { return Izd; }
                set { Izd = value; }
            }
 
            public string Avt
            {
                get { return Avt; }
                set { Avt = value; }
            }
            public int Str
            {
                get { return Str; }
                set { Str = value; }
            }
            public void Show()
            {
                Console.WriteLine("_____________________________");
                Console.WriteLine("Книга:" + Nazvanie);
                Console.WriteLine("Автор:" + Avtor);
                Console.WriteLine("Год:" + God);
                Console.WriteLine("Издательство:" + Izdatelstvo);
                Console.WriteLine("Количество страниц:" + Stranici);
                Console.WriteLine("_____________________________");
            }
 
            static void Poisk(Book[] Kniga)
            {
 
                bool s = false;
                Console.Write("Введите автора для поиска книг: ");
                string h = Console.ReadLine();
                for (int i = 0; i < Kniga.Length; i++)
                {
                    if (Kniga[i].Avtor == h)
                    {
                        Kniga[i].Show();
                        s = true;
                    }
 
                }
                if (!s)
                    Console.WriteLine("Книг этого автора в списке нет!!!");
 
            }
 
            public static Book operator --(Book minus)
            {
                minus.God--;
                minus.Stranici--;
                return minus;
            }
 
            public static Book operator +(Book plus1, Book plus2)
            {
             Book result = new Book(); 
             result.Stranici = plus1.Stranici + plus2.Stranici;
             result.God = plus1.God + plus2.God;
             return result; 
            }
 
            public static bool operator >=(Book k1, Book k2)
            {
                if (k1.God >= k2.God)
                    return true;
                else
                    return false;
            }
 
            public static bool operator <=(Book w1, Book w2)
            {
                if (w1.Stranici <= w2.Stranici) 
                    return true;
                else
                    return false;
            }
            
            public int Getl() { return l; }

            static void Main(string[] args)
            {
                
                Book[] Kniga = new Book[10];
                Kniga[0] = new Book { Nazvanie = "Отцы и дети", Avtor = "Тургенев", God = 1862, Izdatelstvo = "Звезда", Stranici = 358 };
                Kniga[1] = new Book { Nazvanie = "Анна Каренина", Avtor = "Толстой", God = 1877, Izdatelstvo = "Азбука", Stranici = 678 };
                Kniga[2] = new Book { Nazvanie = "Война и мир", Avtor = "Толстой", God = 1869, Izdatelstvo = "Буква", Stranici = 984 };
                Kniga[3] = new Book { Nazvanie = "Преступление и наказание", Avtor = "Достоевский", God = 1866, Izdatelstvo = "Звезда", Stranici = 438 };
                Kniga[4] = new Book { Nazvanie = "Идиот", Avtor = "Достоевский", God = 1869, Izdatelstvo = "Азбука", Stranici = 364 };
                Kniga[5] = new Book { Nazvanie = "Бесы", Avtor = "Достоевский", God = 1872, Izdatelstvo = "Буква", Stranici = 329 };
                Kniga[6] = new Book { Nazvanie = "Евгений Онегин", Avtor = "Пушкин", God = 1831, Izdatelstvo = "Книга", Stranici = 421 };
                Kniga[7] = new Book { Nazvanie = "Дубровский", Avtor = "Пушкин", God = 1833, Izdatelstvo = "Азбука", Stranici = 291 };
                Kniga[8] = new Book { Nazvanie = "Капитанская дочка", Avtor = "Пушкин", God = 1836, Izdatelstvo = "Буква", Stranici = 175 };
                Kniga[9] = new Book { Nazvanie = "Вишневый сад", Avtor = "Чехов", God = 1821, Izdatelstvo = "Звезда", Stranici = 97 };
                Poisk(Kniga);
 
                Book a = new Book();
                Book b = new Book();
                Book c = new Book();
                Console.WriteLine(a.Getl());
                Kniga[0]--;
                Console.WriteLine("Унарный минус (Год издания первой книги) = " + Kniga[0].God);
                Kniga[1]--;
                Console.WriteLine("Унарный минус (Количество страниц второй книги) = " + Kniga[1].Stranici);
                b = Kniga[1] + Kniga[2];
                Console.WriteLine("b (Сложение годов издания первой и второй книг) = " + b.God);
                c = Kniga[3] + Kniga[5];
                Console.WriteLine("c (Сложение страниц третьей и пятой книг) = " + c.Stranici);
              
                Console.ReadLine();
            }
        }
    }
}

Решение задачи: «Перегрузка операторов сравнения»

textual
Листинг программы
bool d = Kniga[1] >= Kniga[2];
                Console.WriteLine(d);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.267 из 5
Похожие ответы