Диаграмма классов.
Тестовые наборы.
Операция |
Вектор 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 |
Пройден |
Скриншоты к тестовым наборам.
Код программы
/****************************************/
/* Лабораторная работа №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("Деструктор");
}
}
}
