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

Конструирование классов Задания:

Вариант 6. Создать класс «точка», такой, что:

    1. его экземпляр содержит две координаты – положительные целые числа.

    2. его конструктор без параметра создает экземпляр со значением 0 0, а конструктор с параметрами создает экземпляр с соответствующими значениями координат.

    3. его методы позволяют получать и присваивать значения, выполняя при этом соответствующие преобразования.

    4. функция print() выводит на экран значение координат в формате <0:0>.

    5. его операция «+» перегружена: для двух точек создает новую точку, расположенную на середине отрезка, соединяющего эти две точки; при сложении с числом изменяет значение обеих своих координат на это число и возвращает свой адрес.

Составить программу, проверяющую выполнение перечисленных функций.

Код: using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace rezistor

{

// класс ведро

class vedro

{

public double r, R, h, V;

public void print_value()

{

Console.WriteLine("Объем ведра = " + V);

}

public vedro() // конструктор по умолчанию

{

h = 0;

R = 0;

r = 0;

V = (1 / 3) * Math.PI * h * (r * r + (r * R) + R * R);

}

public vedro(double height, double square1, double square2) // конструктор с параметрами

{

r = square1;

R = square2;

h = height;

V = 0.33 * (Math.PI * h * ((r * r) + (r * R) + (R * R)));

}

// перегруженный оператор +

public static vedro operator +(vedro a, vedro b)

{

vedro c = new vedro((a.h + b.h), (a.r + b.r), (a.R + b.R));

return c;

}

public static vedro operator +(vedro a, double b)

{

vedro c = new vedro(a.h, a.r, a.R);

c.V = c.V + b;

return c;

}

}

class Program

{

static void Main(string[] args)

{

Console.WriteLine("Введите радиус днища:");

int n = Int32.Parse(Console.ReadLine());

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

int m = Int32.Parse(Console.ReadLine());

Console.WriteLine("Введите висоту:");

int s = Int32.Parse(Console.ReadLine());

vedro a = new vedro(s, n, m);

a.print_value();

Console.WriteLine("Введите разницу в объёме = ");

int k = Int32.Parse(Console.ReadLine());

a = a + k;

a.print_value();

Console.ReadKey();

}

}

}