Перегрузка операторов сравнения - 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);