Главная страница
Навигация по странице:

  • 1. Задание для работы

  • Код программы на языке C++

  • Результат работы программы на языке C ++

  • итоговый отчет 1. Лабораторная работа 2 Классы. Основы 12 Лабораторная работа 3 Классы. Инкапсуляция 16


    Скачать 129.17 Kb.
    НазваниеЛабораторная работа 2 Классы. Основы 12 Лабораторная работа 3 Классы. Инкапсуляция 16
    Дата14.01.2022
    Размер129.17 Kb.
    Формат файлаdocx
    Имя файлаитоговый отчет 1.docx
    ТипЛабораторная работа
    #331247
    страница2 из 5
    1   2   3   4   5

    Лабораторная работа №2
    Классы. Основы



    Цель работы:приобретение практических навыков создания абстрактных типов данных и изучение следующих ключевых понятий языка C++:

    1. Ссылки

    2. Ключевое слово class, разделение класса на .h и .cpp файлы

    3. Модификаторы доступа.

    4. Конструктор: несколько конструкторов, инициализация членов класса, значение по умолчанию.

    5. Деструктор.

    6. Константные функции-члены класса, селекторы и модификаторы.

    1. Задание для работы

    Написать программу нахождения периметра (приближенного значения) и площади эллипса, используя класс Ellipse, у которого есть открытые методы: void setWidth(double a);

    void setHeight(double b);

    double getPerimeter();

    double getArea();

    и один закрытый метод:

    void resolve();

    Объект класса Ellipse в любой момент времени содержит периметр (приближенное значение) и площадь эллипса для установленных параметров a, b. При изменении значения любого из параметров (через методы setWidth(), setHeight ()) периметр и площадь эллипса пересчитываются через закрытый метод resolve(). Изначально длины большой и малой осей эллипса равны 2 и 1 соответственно.

    Метод main() запрашивает длины большой и малой осей, находит периметр (приближенное значение) и площадь эллипса через класс Ellipse и показывает результат.

    Периметр (приближенное значение) и площадь эллипса рассчитываются по известным выражениям

    𝑃 = 𝜋 ∙ [3(𝑎 + 𝑏) − √(3𝑎 + 𝑏)(3𝑏 + 𝑎)], 𝑆 = 𝜋 ∙ 𝑎 ∙ 𝑏.

    Примерный код использования класса Ellipse:

    Ellipse el;

    cout << el.getArea(); // выведет 6,283185307

    cout << el.getPerimeter(); // выведет 9,688421098

    el.setWidth(3);

    el.setHeight(2);

    cout << el.getArea(); // выведет 18,84955592

    cout << el.getPerimeter(); // выведет 15,86543758


    1. Код программы на языке C++

    В результате выполнения задания была разработана программа на  языке  C++. Она представлена в виде проекта, состоящего из двух файлов с расширением *.cpp и одного заголовочного файла (с расширением *.h), код которых приведен ниже:

    //файл Ellipse.h

    #pragma once

    #define _USE_MATH_DEFINES

    #include
    class Ellipse

    {

    private:

    double a;

    double b;

    double perimeter;

    double area;

    void resolve();

    public:

    Ellipse();

    Ellipse(double a, double b);

    void setWidth(double a);

    void setHeight(double b);

    double getPerimeter();

    double getArea();

    };
    //файл Ellipse1.cpp

    #include "StdAfx.h"

    #include "Ellipse.h"

    void Ellipse::resolve()

    {

    perimeter = M_PI * (3 * (a + b) - sqrt((3 * a + b) * (3 * b + a)));

    area = M_PI * a * b;

    }
    Ellipse::Ellipse()

    {

    this->a = 1.0;

    this->b = 2.0;

    this->resolve();

    }
    Ellipse::Ellipse(double a, double b)

    {

    this->a = a;

    this->b = b;

    this->resolve();

    }
    void Ellipse::setWidth(double a)

    {

    this->a = a;

    this->resolve();

    }
    void Ellipse::setHeight(double b)

    {

    this->b = b;

    this->resolve();

    }
    double Ellipse::getPerimeter()

    {

    return this->perimeter;

    }
    double Ellipse::getArea()

    {

    return this->area;

    }

    //файл Ellipse.cpp

    #include "StdAfx.h"

    #include

    #include "Ellipse.h"
    int main()

    {

    Ellipse el;
    std::cout << el.getArea() << std::endl;

    std::cout << el.getPerimeter() << std::endl;
    el.setWidth(3);

    el.setHeight(2);
    std::cout << el.getArea() << std::endl;

    std::cout << el.getPerimeter() << std::endl;
    system("pause");

    return 0;

    }

    1. Результат работы программы на языке C++


    Меню программы:

    1 - Ввод данных ширины и высоты

    2 – Периметр эллиспа

    3 – Площадь эллипса

    0 – Выход
    Выбранный вами пункт №

    1

    ----------------------------------------------

    Введите параметр A

    2

    Введите параметр B

    1

    Соответствующий введенным данным эллипс имеет вид:

    Ширина: 2

    Высота 1

    ----------------------------------------------

    Меню программы:

    1 - Ввод данных ширины и высоты

    2 – Периметр эллиспа

    3 – Площадь эллипса

    0 – Выход
    Выбранный вами пункт №

    2

    ----------------------------------------------

    Периметр эллипса равен 6.28319

    ----------------------------------------------

    Меню программы:

    1 - Ввод данных ширины и высоты

    2 – Периметр эллиспа

    3 – Площадь эллипса

    0 – Выход
    Выбранный вами пункт №

    3

    ----------------------------------------------

    Площадь эллипса равна: 9.68842

    ----------------------------------------------

    Меню программы:

    1 - Ввод данных ширины и высоты

    2 – Периметр эллиспа

    3 – Площадь эллипса

    0 – Выход
    Выбранный вами пункт №

    0

    Для продолжения нажмите любую клавишу…

    ----------------------------------------------

    1   2   3   4   5


    написать администратору сайта