Программа называется Tringl. В программе были разработаны три класса и их методы. Интерфейс и все вычисления были выполнены в одном классе, описывающем главное диалоговое окно (рисунок 2.3.1). Класс называется TringlDlg. Он наследован от класса Dilg.
Рисунок 2.3.1 – Главное окно программы
Ввод длин сторон треугольника осуществляется через элементы dit. С ними связаны атрибуты класса m_lin_1, m_lin_2, m_lin_3. Эти атрибуты имеют тип int. Минимальным значение длины стороны является 1. У пользователя имеется возможность ввести значения вручную или использовать для этого элементы Sin. В программе реализована обработка события UD_DLTS данных элементов. Функции, реализующие обработку данных событий, называются nDltsSin1, nDltsSin2, nDltsSin3. В данные функции передается указатель NM_UDWN* NMUDwn. Через него можно получить значение атрибута iDlt (значение, на которое следует увеличить или уменьшить связанное с элементом число).
Если пользователь попытается ввести число, не соответствующее целому типу, программа выдаст соответствующее сообщение об этом.
|
|
После ввода длин сторон пользователю необходимо нажать на кнопку «Рассчитать». С этой кнопкой связана функция nlult().
Сначала функция проверяет, правильно ли задан треугольник. Это происходит следующим образом. По известной формуле Герона рассчитывается площадь треугольника.
,
где ,
длины сторон треугольника
В случае, значение выражения под корнем равно нулю или меньше нуля, считается, что такого треугольника не существует. В этом случае программа выдает соответствующее сообщение (рисунок 2.3.2).
2.3.2. Сообщение о некорректном вводе
Если треугольник задан правильно, программа вычисляет, является ли он прямоугольным. Для этого использована теорема Пифагора:
Программа находит наибольшую сторону (предполагаемую гипотенузу) и проверяет на истинность условие (2). Если оно истинно, то выдается сообщение «Треугольник прямоугольный». В противном случае, «Треугольник не прямоугольный» (рисунок 2.3.3).
Рисунок 2.3.3. Анализ треугольника на наличие прямого угла
Далее функция рассчитывает периметр треугольника (3), радиус описанной окружности (4) и радиус вписанной окружности (5).
После получения результатов, функция преобразует их в текстовый вид. Для этого используется String m_rsult и функция Frmt. Переменная m_rsult связана с элементом Stti. Результат вычислений появится на форме.
Рисунок 2.3.4. Результат вычислений
Таблица 2.1 – Спецификация разработанных классов
Имя класса | Член класса | Способа доступа | Назначение |
TringlDlg | BL nInitilDilg() | защищенный | Выставляет значения длин сторон |
TringlDlg | vid nlult() | защищенный | Производит все вычисления |
|
|