Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LABA3.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
700.34 Кб
Скачать
  1. Диаграмма классов.

  1. Тестовые наборы.

Операция

Вектор 1

Вектор 2

(Константа)

Ожидаемый результат

Полученный

результат

Результат теста

+

(14,6; 15,2)

(18,1; 19,4)

(32,7; 34,6)

(32,7; 34,6)

Пройден

-

(12,3; 14,2)

(90,4; 24,1)

(-78,1; -9,9)

(-78,1; -9,9)

Пройден

!=

(88,8; 99,9)

(99,9; 88,8)

False

False

Пройден

==

(88,8; 99,9)

(99,9; 88,8)

True

True

Пройден

/

(54; 72)

9

(6; 8)

(6; 8)

Пройден

*

(6; 8)

9

(54; 72)

(54; 72)

Пройден

<

(-10; -20)

(20; 10)

False

False

Пройден

>

(10; 20)

(20; 10)

False

False

Пройден

<=

(8,8; 9,9)

(9,9; 8,8)

True

True

Пройден

>=

(11; 4)

(4; 10)

True

True

Пройден

  1. Скриншоты к тестовым наборам.

  1. Код программы

/****************************************/

/* Лабораторная работа №3 */

/* Конструкторы. */

/* Перегрузка методов и операторов */

/* Задание 2 */

/* Выполнил студент гр.525а ИгнатовК.П.*/

/****************************************/

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

int operation;

bool q;

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

Cube cube1 = new Cube(Console.ReadLine());

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

Cube cube2 = new Cube(Console.ReadLine());

Console.WriteLine("Введите операцию сравнения объемов: ");

Console.WriteLine("1 - '!='\n2 - '=='\n3 - '<'\n4 - '>'\n5 - '<='\n6 - '>='");

operation = Int32.Parse(Console.ReadLine());

switch (operation)

{

case 1: q = cube1 != cube2; Console.WriteLine("Ответ: " + q); break;

case 2: q = cube1 == cube2; Console.WriteLine("Ответ: " + q); break;

case 3: q = cube1 < cube2; Console.WriteLine("Ответ: " + q); break;

case 4: q = cube1 > cube2; Console.WriteLine("Ответ: " + q); break;

case 5: q = cube1 <= cube2; Console.WriteLine("Ответ: " + q); break;

case 6: q = cube1 >= cube2; Console.WriteLine("Ответ: " + q); break;

}

}

}

/// <summary>

/// класс куба

/// </summary>

class Cube

{

private int Side;

/// <summary>

/// конструктор без параметров

/// </summary>

public Cube()

{

this.Side = 1;

}

/// <summary>

/// конструктор с параметром

/// </summary>

/// <param name="a">сторона</param>

public Cube(int a)

{

this.Side = a;

}

/// <summary>

/// конструктор с параметром

/// </summary>

/// <param name="str">строка</param>

public Cube(string str)

{

this.Side = Int32.Parse(str);

}

/// <summary>

/// перегрузка оператора !=

/// </summary>

/// <param name="cube1">первый объект</param>

/// <param name="cube2">второй объект</param>

/// <returns>результат сравнения</returns>

public static bool operator !=(Cube cube1, Cube cube2)

{

return cube1.Compare(cube2) != 0;

}

/// <summary>

/// перегрузка оператора ==

/// </summary>

/// <param name="cube1">первый объект</param>

/// <param name="cube2">второй объект</param>

/// <returns>результат сравнения</returns>

public static bool operator ==(Cube cube1, Cube cube2)

{

return cube1.Compare(cube2) == 0;

}

/// <summary>

/// перегрузка оператора <

/// </summary>

/// <param name="cube1">первый объект</param>

/// <param name="cube2">второй объект</param>

/// <returns>результат сравнения</returns>

public static bool operator <(Cube cube1, Cube cube2)

{

return cube1.Compare(cube2) < 0;

}

/// <summary>

/// перегрузка оператора >

/// </summary>

/// <param name="cube1">первый объект</param>

/// <param name="cube2">второй объект</param>

/// <returns>результат сравнения</returns>

public static bool operator >(Cube cube1, Cube cube2)

{

return cube1.Compare(cube2) > 0;

}

/// <summary>

/// перегрузка оператора <=

/// </summary>

/// <param name="cube1">первый объект</param>

/// <param name="cube2">второй объект</param>

/// <returns>результат сравнения</returns>

public static bool operator <=(Cube cube1, Cube cube2)

{

return cube1.Compare(cube2) <= 0;

}

/// <summary>

/// перегрузка оператора >=

/// </summary>

/// <param name="cube1">первый объект</param>

/// <param name="cube2">второй объект</param>

/// <returns>результат сравнения</returns>

public static bool operator >=(Cube cube1, Cube cube2)

{

return cube1.Compare(cube2) >= 0;

}

/// <summary>

/// метод сравнения объекта с текущим

/// </summary>

/// <param name="val"></param>

/// <returns></returns>

public int Compare(Cube val)

{

int volume1 = this.Side * this.Side * this.Side;

int volume2 = val.Side * val.Side * val.Side;

if (volume1 == volume2)

return 0;

else if (volume1 < volume2)

return -1;

else return 1;

}

/// <summary>

/// переопределение метода перевода объекта

/// </summary>

/// <returns></returns>

public override string ToString()

{

return "Объем куба равен: " + this.Side + ".";

}

~Cube()

{

Console.WriteLine("Деструктор");

}

}

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]