Автор работы: Пользователь скрыл имя, 29 Апреля 2013 в 10:32, лабораторная работа
Задание. В программах требуется описать базовый класс (возможно, абстрактный), в котором с помощью виртуальных методов ИЛИ И абстрактных свойств задается интерфейс ДЛЯ производных классов. Целью лабораторной работы является максимальное использование наследования, даже если для конкретной задачи оно не дает выигрыша в объеме программы. Во всех классах следует переопределить метод Equals, чтобы обеспечить сравнение значений.
Функция Главный должна содержать массив из элементов базового класса, заполненный ссылками на производные классы. В этой функции должно демонстрироваться использование всех разработанных элементов классов.
Задание
В программах требуется описать
базовый класс (возможно, абстрактный),
в котором с помощью
Функция Main должна содержать массив из элементов базового класса, заполненный ссылками на производные классы. В этой функции должно демонстрироваться использование всех разработанных элементов классов.
Во всех классах реализовать интерфейс IComparable, переопределить метод ToS tring, перегрузить операции сложения, умножения и остальные в зависимости от типа объекта.
Листинг программы с комментариями
//Основной код
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Lab2
{
class Program
{
static Pair[] series;
public static void Task1()
{
Console.WriteLine("======== Денежные операции ========");
Console.WriteLine("Выберите пункт:");
Console.WriteLine("1 - для сложения");
Console.WriteLine("2 - для произведения");
Console.WriteLine("3 - для вывода");
Console.WriteLine("4 - для сравнения на равенство");
Console.WriteLine("5 - для расширенного сравнения");
string s1 = Console.ReadLine();
switch (s1)
{
case "1":
{
Console.WriteLine("Вводите первую деньгу: ");
int boof11 = Int32.Parse(Console.ReadLine()
int boof12 = Int32.Parse(Console.ReadLine()
Money money1 = new Money(boof11, boof12);
Console.WriteLine("Вводите вторую деньгу: ");
int boof21 = Convert.ToInt32(Console.
int boof22 = Convert.ToInt32(Console.
Money money2 = new Money(boof21, boof22);
Money moneyResult = money1 + money2;
Console.WriteLine(moneyResult.
Console.ReadLine();
} break;
case "2":
{
Console.WriteLine("Вводите первую деньгу: ");
int boof11 = Int32.Parse(Console.ReadLine()
int boof12 = Int32.Parse(Console.ReadLine()
Money money1 = new Money(boof11, boof12);
Console.WriteLine("Вводите вторую деньгу: ");
int boof21 = Convert.ToInt32(Console.
int boof22 = Convert.ToInt32(Console.
Money money2 = new Money(boof21, boof22);
Money moneyResult = money1 * money2;
Console.WriteLine(moneyResult.
Console.ReadLine();
} break;
case "3":
{
Console.WriteLine("Вводите первую деньгу: ");
int boof11 = Int32.Parse(Console.ReadLine()
int boof12 = Int32.Parse(Console.ReadLine()
Money money1 = new Money(boof11, boof12);
Console.WriteLine("Вводите вторую деньгу: ");
int boof21 = Convert.ToInt32(Console.
int boof22 = Convert.ToInt32(Console.
Money money2 = new Money(boof21, boof22);
Console.WriteLine("Деньга 1:" + money1.OutPut());
Console.WriteLine("Деньга 2:" + money2.OutPut());
} break;
case "4":
{
Console.WriteLine("Вводите первое число: ");
int boof11 = Int32.Parse(Console.ReadLine()
int boof12 = Int32.Parse(Console.ReadLine()
Money money1 = new Money(boof11, boof12);
Console.WriteLine("Вводите второе число: ");
int boof21 = Convert.ToInt32(Console.
int boof22 = Convert.ToInt32(Console.
Money money2 = new Money(boof21, boof22);
if (money1.Equals(money2) == true)
Console.WriteLine("Равны");
else
Console.WriteLine("Не равны");
} break;
case "5":
{
Console.WriteLine("Вводите первое число: ");
int boof11 = Int32.Parse(Console.ReadLine()
int boof12 = Int32.Parse(Console.ReadLine()
Money money1 = new Money(boof11, boof12);
Console.WriteLine("Вводите второе число: ");
int boof21 = Convert.ToInt32(Console.
int boof22 = Convert.ToInt32(Console.
Money money2 = new Money(boof21, boof22);
switch (money1.CompareTo(money2))
{
case (0):
Console.WriteLine("Равны");
case (1):
case (-1):
}
} break;
}
Console.WriteLine("Нажмите ENTER для продолжения");
Console.ReadLine();
}
public static void Task2()
{
Console.WriteLine("======== Операции с комплексными числами ========");
Console.WriteLine("Выберите пункт:");
Console.WriteLine("1 - для сложения");
Console.WriteLine("2 - для произведения");
Console.WriteLine("3 - для вывода");
Console.WriteLine("4 - для проверки на равенство");
Console.WriteLine("4 - для расширенного сложения");
string s1 = Console.ReadLine();
switch (s1)
{
case "1":
{
Console.WriteLine("Вводите первое число: ");
Console.WriteLine("Вводите действительную часть первого числа: ");
int boof11 = Int32.Parse(Console.ReadLine()
Console.WriteLine("Вводите мнимую часть первого числа: ");
int boof12 = Int32.Parse(Console.ReadLine()
Complex complex1 = new Complex(boof11, boof12);
Console.WriteLine("Вводите второе число: ");
Console.WriteLine("Вводите действительную часть второго числа: ");
int boof21 = Convert.ToInt32(Console.
Console.WriteLine("Вводите мнимую часть второго числа: ");
int boof22 = Convert.ToInt32(Console.
Complex complex2 = new Complex(boof21, boof22);
Console.WriteLine((complex1 + complex2).OutPut());
Console.ReadLine();
} break;
case "2":
{
Console.WriteLine("Вводите первое число: ");
Console.WriteLine("Вводите действительную часть первого числа: ");
int boof11 = Int32.Parse(Console.ReadLine()
Console.WriteLine("Вводите мнимую часть первого числа: ");
int boof12 = Int32.Parse(Console.ReadLine()
Complex complex1 = new Complex(boof11, boof12);
Console.WriteLine("Вводите второе число: ");
Console.WriteLine("Вводите действительную часть второго числа: ");
int boof21 = Convert.ToInt32(Console.
Console.WriteLine("Вводите мнимую часть второго числа: ");
int boof22 = Convert.ToInt32(Console.
Complex complex2 = new Complex(boof21, boof22);
Console.WriteLine((complex1 * complex2).OutPut());
Console.ReadLine();
} break;
case "3":
{
Console.WriteLine("Вводите первое число: ");
Console.WriteLine("Вводите действительную часть первого числа: ");
int boof11 = Int32.Parse(Console.ReadLine()
Console.WriteLine("Вводите мнимую часть первого числа: ");
int boof12 = Int32.Parse(Console.ReadLine()
Complex complex1 = new Complex(boof11, boof12);
Console.WriteLine("Вводите второе число: ");
Console.WriteLine("Вводите действительную часть второго числа: ");
int boof21 = Convert.ToInt32(Console.
Console.WriteLine("Вводите мнимую часть второго числа: ");
int boof22 = Convert.ToInt32(Console.
Complex complex2 = new Complex(boof21, boof22);
Console.WriteLine("Число 1:" + complex1.OutPut());
Console.WriteLine("Число 2:" + complex2.OutPut());
} break;
case "4":
{
Console.WriteLine("Вводите первое число: ");
Console.WriteLine("Вводите действительную часть первого числа: ");
int boof11 = Int32.Parse(Console.ReadLine()
Console.WriteLine("Вводите мнимую часть первого числа: ");
int boof12 = Int32.Parse(Console.ReadLine()
Complex complex1 = new Complex(boof11, boof12);
Console.WriteLine("Вводите второе число: ");
Console.WriteLine("Вводите действительную часть второго числа: ");
int boof21 = Convert.ToInt32(Console.
Console.WriteLine("Вводите мнимую часть второго числа: ");
int boof22 = Convert.ToInt32(Console.
Complex complex2 = new Complex(boof21, boof22);
if (Complex.Equals(complex1, complex2) == true)
Console.WriteLine("Равны");
else
Console.WriteLine("Не равны");
} break;
case "5":
{
Console.WriteLine("Вводите первое число: ");
Console.WriteLine("Вводите действительную часть первого числа: ");
int boof11 = Int32.Parse(Console.ReadLine()
Console.WriteLine("Вводите мнимую часть первого числа: ");
int boof12 = Int32.Parse(Console.ReadLine()
Complex complex1 = new Complex(boof11, boof12);
Console.WriteLine("Вводите второе число: ");
Console.WriteLine("Вводите действительную часть второго числа: ");
int boof21 = Convert.ToInt32(Console.
Console.WriteLine("Вводите мнимую часть второго числа: ");
int boof22 = Convert.ToInt32(Console.
Complex complex2 = new Complex(boof21, boof22);
switch (complex1.CompareTo(complex2))
{
case (0):
case (1):
Console.WriteLine("Первое больше второго");
case (-1):
}
} break;
}
}
public static void Task3()
{
Console.WriteLine("===== Выбрана работа с массивом пар =====");
Console.WriteLine("Введите длину массива");