Разделы инструкций

В сети

Пользователей: 57
Из них просматривают:
Аналоги: 17. Даташиты: 4. Инструкции: 5. Новости: 7. Остальное: 11. Производители: 1. Теги: 2. Форум: 7. Чат: 3.
Участников: 5
Гостей: 52

alex01981 , Google , T112-10 , wolf170571 , Яндекс , далее...
Рекорд 2375 человек онлайн установлен 26.12.2015.

Партнёры


Партнёры

Новые объявления

Оглавление

Глава 24. Программа Square

Итак, мы рассмотрели все необходимые инструменты, компоненты и способы программирования в среде разработки программ Borland C++ Builder 6. Теперь читатели вооружены достаточными знаниями, для того чтобы начать составление и разработку собственных программ. Но для закрепления изученного материала на практике, в этой главе вниманию читателей предлагается разработать несколько программ, которые помогут обрести уверенность в своих силах начинающим программистам.


Предлагаемая программа предназначена для вычисления корней квадратного уравнения и может быть особенно полезна учащимся школ. На ее примере можно будет создать множество других программ, облегчающих вычисления различных уравнений и функций.


Сформируем интерфейс программы. Создайте новое приложение и поместите на его форму пять компонентов Label, три компонента Edit, две кнопки Button и компонент MainMenu.


Задайте для формы Form1 свойство Name с именем FormMain, а свойство Caption с названием Square. Замените свойства Name компонентов Label1-Label5 на Labelformul, Labela, Labelb, Labelc и Labelx1x2, соответственно, и задайте для них следующие свойства Caption: Квадратное уравнение а*х^2+b*х+с=0, а=, b=, с= и x1=?, x2=?.


Замените свойства Name компонентов Button1 и Button2 на ButtonExe и ButtonOut, соответственно, и задайте для них следующие свойства Caption: Решить и Выход.

 

Измените значение свойства Name компонентов Edit1—Edit3 на Edita, Editb и Editc, соответственно, а свойства Text этих компонентов заполните значениями 1, 1 и 0.


Щелкните дважды левой кнопкой мыши по компоненту MainMenu1 и в открывшемся окне FormMain задайте свойство Caption для первого пункта меню в виде названия О программе.

 

Закройте окно FormMain и расположите компоненты на форме в соответствии с рис. 24.1.

 

Расположение компонентов на основной форме программы

Рис. 24.1. Расположение компонентов на основной форме программы


Сохраните проект в файле с названием Square.bpr а модуль программы — в файле Usquare.cpp.
Интерфейс программы сформирован. Теперь можно приступить к редактированию программного кода. Щелкните дважды левой кнопкой мыши по кнопке Решить и введите в обработчик события OnClick строки программы из листинга 24.1.

 

Листинг 24.1. Строки обработчика события OnCIick программы Square

double a,b,c,x1,x2;
try
 {
 a=Edita->Text.ToDouble();
 b=Editb->Text.ToDouble();
 c=Editc->Text.ToDouble();
 }
catch (EConvertError& )
 {
 ShowMessage("Неправильно введен коэффициент\rПовторить ввод");
 Labelx1x2->Caption="x1=? x2=?"; // Убрать предыдущий результат
 return;
 }
int d=b*b+4*a*c;
if (a==0){
         if (b==0){
                  Labelx1x2->Caption="Неправильно заданы коэффициенты a и b";
                  return;
                  };
         x1=-c/b;
         Labelx1x2->Caption="Корень один\rx="+String(x1)+";";
         return;
         };
if (d<0){
        Labelx1x2->Caption="Детерминат меньше нуля. Нет корней!";
        return;
        };
if (d==0){
         x1=(-b/(2*a));
         Labelx1x2->Caption="Детерминат равен нулю. Корень один.\rx="+String(x1)+";";
         return;
         };
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
Labelx1x2->Caption="x1="+String(x1)+"; x2="+String(x2)+";";

 

Эти программные строки и весь проект программы под названием Square можно скачать по ссылке внизу статьи. В них описываются переменные, которые участвуют в вычислениях корней квадратного уравнения, и включены операторы и функции для вычисления корней. Поскольку при вычислении могут встретиться запрещенные ситуации, наподобие деления на ноль и пр., в программу включены операторы проверки подобных ситуаций с выводом соответствующих сообщений пользователю программы. В программе эти сообщения присутствуют в виде текста, заключенного в кавычки. Если этого не делать, то программа будет выдавать системные предупреждения на английском языке или "зависать". Хорошим стилем программирования считается предупреждение всех ошибочных ситуаций и недопущение тупикового выполнения программы приводящего к ее "зависанию". В противном случае программа будет раздражать пользователя, и он от нее откажется.
Так как в тексте программы присутствуют непростые арифметические операции, например вычисление квадратного корня sqrt(), необходимо подключить к программе математическую библиотеку. Для этого в модуле программы после строки #include "Usquare.h" впишите строку подключения библиотеки с математическими функциями:
#include <math.h>.

 

Теперь сформируйте обработчик события OnClick для кнопки Выход и вставьте в него программную строку для закрытия приложения:
Close () ;


Приложение уже можно запустить, и оно будет работать. Но в нем не будет работать главное меню. Создадим поддержку для него.


Сформируйте обработчик события OnClick для первого пункта меню N1 компонента MainMenul путем двойного щелчка левой кнопкой мыши по самому компоненту и вставьте в него строку для модального вызова формы FormAbout с описанием программы:
FormAbout->ShowModal ();


Модальный вызов не позволяет программе переключиться на другое окно до тех пор, пока текущее окно не будет закрыто. В отличие от него немодальное окно вызывается функцией show() и не налагает такого условия.


Поскольку формы с описанием программы нет, ее необходимо создать. Для этого выполните из главного меню команду: File | New | Form. Для вновь созданной формы задайте свойство Name с именем FormAbout и свойство Caption с названием О программе.

 

Теперь поместите на эту форму четыре компонента Label, один компонент Image и одну кнопку BitBtn из палитры Additional, а также компонент MonthCalendar из палитры Win32.


Для компонентов Label1—Label4 задайте свойство Caption с названиями: Программа решения квадратных уравнений, Версия 1.0, Послать E-mail и Поиск в Интернете.


Для компонентов Label3 и Label4 установите шрифт через свойство Font как синий, подчеркнутый, полужирный курсив. Свойство Cursor для этих компонентов поменяйте на crHandPoint. Это делается для того, чтобы выделить надписи данных компонентов и изменить при наведении на них вид курсора мыши.


Создайте обработчик события OnClick для компонента Label3 и вставьте в него программную строку вызова почтовой программы:
ShellExecute(Handle, "open", "mailto:mail@narod.ru?x-priority=normal&subject=ТЕМА_ПИСЬМА", NULL, NULL, SW_SHOWNORMAL);


Здесь в программной строке можно изменить адрес получателя письма mail@narod.ru и заполнить тему письма собственным текстом.

 

Далее создайте обработчик события OnClick для компонента Label4 и вставьте в него программную строку вызова обозревателя и вхождения с его помощью в Интернет:
ShellExecute(Handle, "open", "http://rh.md", 0, 0, SW_SHOW);


Естественно, что адрес страницы http://rh.md можно заменить на любой другой подходящий и существующий адрес.

 

Для кнопки BitBtn1 установите свойство Kind, как bkOk. Создайте обработчик события OnClick для этой кнопки и вставьте в него программную строку выхода:
Close () ;


Наконец, скопируйте в каталог с программой предварительно созданный файл с рисунком или фотографией в формате BMP или JPG и загрузите его через свойство Picture компонента Image. Для того чтобы рисунок совпадал с размерами компонента Image, установите его свойство AutoSize в значение true. Расположите все компоненты на форме в соответствии с рис. 24.2 и сохраните модуль программы в файле с именем about.cpp.

 

Расположение компонентов на дополнительной форме программы

Рис. 24.2. Расположение компонентов на дополнительной форме программы


Поскольку мы добавили в наше приложение еще одну форму, необходимо включить в основной модуль Usquare.cpp имя файла описания новой формы с названием about.h. Для этого впишите в модуле Usquare.cpp после строки
#include <math.h> программную строку:
#include "about.h".


Теперь остается лишь заменить значок-иконку программы с помощью команды главного меню Project | Options | Application на созданный во встроенном редакторе Image Edit файл иконки с расширением ico и откомпилировать программу.
Программа готова. Запустите ее на выполнение и проверьте в работе.
В этой программе мы использовали новый компонент MonthCalendar, который позволяет без труда внедрить в программу красочный календарь с богатыми функциями. Кроме того, мы научились запускать из программы почтовую службу отправки электронных писем и входить в Интернет из работающей программы. Подобные приемы можно применять во вновь создаваемых программах.

 

Square

6
<< Меню >>  
Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити

Разное

Если "ревёт" один из дросселей резонансного стабилизатора, забейте деревянный клин между его катушками.

Интересно

Если "ревёт" один из дросселей резонансного стабилизатора, забейте деревянный клин между его катушками.

Похожие инструкции