Лабораторная работа № 3.
Разработка программы "Расчет сопротивления" в C++ Builder

Цель работы

Написать программу для расчета сопротивления резисторов, соединенных параллельно или последовательно.

Для создания формы использовать компоненты: 
Label – для подписей
Edit – для ввода и вывода
RadioGroup – для выбора одного из перечисленных вариантов
Button – для инициирования вычислений
Рекомендуемая компоновка формы программы представлена на рисунке 1.
 Рисунок 1. Рекомендуемая компоновка формы

Рекомендации для выполнения лабораторной работы:
    1) Запустить C++ Builder.  При запуске автоматически создается новый проект. Для создания нового проекта, в случае если он не создался автоматически или вы его закрыли, выполнить команду меню File / New /Application.
    2) Сохранить проект в свою рабочую папку, выполнив команду меню File / Save Project As. Будет сохранено несколько файлов проекта.
    3) На панели компонентов выбрать вкладку Standard, выбрать компонент Label  и щелкнуть левой кнопкой мыши по форме. На этой же вкладке выбрать компонент Edit ,  Button  и RadioGroup .  Расположить 3 объекта Label, 3 объекта Edit, 1 объект Button и 1 объект RadioGroup на форму как показано на рисунке 1. При создании объект RadioGroup1 не содержит ни одного варианта выбора и по умолчанию выглядит как показано на рисунке 2. Настройкой этого объекта займемся позже.
 
Рисунок 2. Внешний вид объекта RadioGroup1 без настроек

    4) Изменить подпись формы. Для этого выбрать форму (щелкнуть по заголовку формы) и в окне свойств объекта во вкладке Properties изменить значение свойства Caption. Вместо подписи Form1 ввести «Сопротивление».
 Рисунок 3. Свойство формы Caption (подпись)
   
    5) Изменить подписи объектов Label1- Label3 в соответствии с рисунком 1. Для этого выбрать каждый объект Label и в окне свойств объекта во вкладке Properties изменить значение свойства Caption.
    6) Убрать текст из объектов Edit1 – Edit3 (например, в поле Edit1 написано «Edit1»). Для этого выбрать каждый объект Edit и в окне свойств объекта во вкладке Properties очистить значение свойства Text.
    7) Поскольку объект Edit3 мы будем использовать для вывода результата (то есть заполняться он будет по нажатию на кнопку, а не вручную), нужно изменить его свойство ReadOnly  на значение true (то есть сделать объект Edit4 только для чтения).
    8) Настроить объект RadioGroup1. Этот объект будет использоваться как переключатель способов соединения резисторов (параллельное и последовательное). Зададим подпись объекта, для этого изменим значение свойства Caption на «Соединение». Для того чтобы создать список вариантов для переключения необходимо найти в списке свойств объекта RadioGroup1 свойство Items и щелкнуть левой кнопкой мыши на кнопке с тремя точками (рисунок 4).
 
Рисунок 4. Список свойств объекта RadioGroup1

В появившемся окне (рис. 5) перечислить возможные варианты подключения.
 Рисунок 5. Окно редактора списка вариантов

Для программного выбора одного из вариантов в объекте RadioGroup используется свойство ItemIndex. Это же свойство позволяет отслеживать выбранный вариант. Так для выбора первого варианта (параллельного соединения) нужно задать значение свойства ItemIndex = 0 (рис. 4).
В результате проделанных операций объект RadioGroup1 будет содержать 2 пункта, первый будет выбран (рис. 6).
 Рисунок 6. Настроенный объект RadioGroup
    9) Изменить подпись кнопки Button1. Для этого выбрать объект Button1 и в окне свойств объекта во вкладке Properties изменить значение свойства Caption на «Расчет».
    10) Объекты Edit1 и Edit2 предназначены для ввода числовых данных, необходимых для расчета сопротивления. Для того чтобы пользователь не смог ввести буквы или другие символы, которые могу вызвать ошибку при расчетах, необходимо сделать обработчик нажатий клавиш на клавиатуре. Для этого необходимо выбрать объект Edit1 и в окне свойств объекта открыть вкладку Events («События») . В появившемся списке найти событие OnKeyPress («по нажатию клавиши»)  и сделать двойной щелчок левой кнопкой мыши по пустому полю. В появившейся заготовке функции написать код обработки нажатия клавиш:
 
Этим самым мы отфильтровали все клавиши на клавиатуре кроме цифровых от 0 до 9, запятой и BackSpase (Код клавиши 8). Теперь нажатие ненужных нам клавиш будет игнорироваться.
Для объектов Edit2 на обработку события OnKeyPress следует подключить уже созданную функцию Edit1KeyPress. Для этого необходимо выбрать  эту функцию в выпадающем списке  события OnKeyPress 
 
    11) Сопротивление для последовательного соединения вычисляется по формуле R=R1+R2; а для параллельного R=(R1*R2)/(R1+R2).
Для реализации расчета в программе необходимо добавить обработчик нажатия кнопки Button1. Для этого дважды щелкнуть по объекту Button1 и в появившейся заготовке функции написать программный код расчета общего сопротивления.
По тексту программного кода даны комментарии, пошагово описывающие последовательность действий. Для возможности использования функции округления ceil необходимо подключить модуль math.h (в начале кода программы)
    12) Сохранить проект нажатием кнопки  на панели инструментов.
    13) Провести отладку и тестирование программы

Для защиты программы необходимо:
    1) Иметь рабочий вариант программы
    2) Знать основные свойства компонентов Label, Edit, RadioGroup, Button и уметь их использовать.
    3) Ориентироваться в программном коде и знать все операторы, используемые в программе.

Задача для самостоятельной работы №2-3

Задание: Написать программу расчета значений тригонометрических функций для угла X. 
Спецификация программы:
    1) Угол может быть введен как в радианах (по умолчанию), так и в градусах. Для указания того, что введенный угол в градусах на форму поместить переключатель CheckBox;
    2) Выбор тригонометрической функции должен осуществляться с помощью объекта RadioGroup;
    3) По умолчанию программа должна выдавать результат, округленный до четвертого знака. Для возможности получения неокругленного результата использовать переключатель CheckBox;
    4) Поле «Угол X=» сделать с проверкой вводимых данных для исключения ввода нечисловых данных;
    5) Программа должна выдавать сообщение об ошибке, если поле «Угол X=» не заполнено;
    6) Поле «Y=» должно быть только для чтения;
    7) Защитить программу.

Компоновка формы:
Comments