Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторный практикум по информатике. Часть 2.doc
Скачиваний:
67
Добавлен:
27.03.2016
Размер:
10.52 Mб
Скачать

Технология выполнения работы

Для создания формы использовать компоненты: Label– для подписей;Edit– для ввода и вывода;Button– для инициирования вычислений.

Рекомендуемая компоновка формы (рис. 4):

Рисунок 4 – Рекомендуемая компоновка формы

Поля «Цена бензина», «Потребление бензина» и «Расстояние» должно быть с проверкой вводимых данных для предотвращения ввода нечисловых данных.

Программа должна выдавать сообщение об ошибке, если не заполнено хотя бы одно поле из трех («Цена бензина», «Потребление бензина» и «Расстояние»).

Поле «Стоимость» должно быть только для чтения.

Изучение управляющего элемента CheckBox

Изучать управляющий элемент CheckBoxлучше, написав программу, например, расчета стоимости электронного заказа по меню. Список блюд выбирается с помощью компонентаCheckBox. При выборе какого-либо блюда автоматически высчитывается стоимость заказа (при установлении флажка – счет увеличивается на стоимость блюда, при снятии – уменьшаться на соответствующее значение). При нажатии на кнопку «Заказать» появляется сообщение об успешном заказе с общим счетом заказа.

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

Рисунок 5 – Рекомендуемая компоновка формы

Для создания такой формы необходимо выполнить следующие действия.

  1. Запустить C++Builder. При запуске автоматически создается новый проект.

  2. На панели компонентов выбрать вкладку Standard, выбрать компонентLabel и щелкнуть левой кнопкой мыши по форме. На этой же вкладке выбрать компонентCheckBox ,Edit иButton . Расположить три объектаLabel, семь объектовCheckBox, один объектEditи один объектButtonна форму как показано на рисунке 5.

  3. Изменить подпись формы. Для этого выбрать форму (щелкнуть по заголовку формы) и в окне свойств объекта во вкладке Propertiesизменить значение свойстваCaption. Вместо подписиForm1ввести «Меню».

Рисунок 6 – Свойство формы Caption (подпись)

  1. Изменить подписи объектов Label1-Label3в соответствии с рисунком 6. Для этого выбрать каждый объектLabelи в окне свойств объекта во вкладкеPropertiesизменить значение свойстваCaption.

  2. Изменить подписи объектов CheckBox1-CheckBox7. Название блюд можно придумать самим. Для изменения подписи объектаCheckBox выбрать каждый объектCheckBoxи в окне свойств объекта во вкладкеPropertiesизменить значение свойстваCaption.

  3. Выбрать объект Edit1и в окне свойств объекта во вкладкеPropertiesприсвоить свойствуTextзначение «0» (ноль).

  4. Поскольку объект Edit1используется для вывода результата (то есть заполняться он будет по нажатию на кнопку, а не вручную), нужно изменить его свойствоReadOnlyна значениеtrue (то есть сделать объектEdit1только для чтения).

  5. Изменить подпись кнопки Button1. Для этого выбрать объектButton1и в окне свойств объекта во вкладкеPropertiesизменить значение свойстваCaption на «Заказать».

  6. Изначально ни одно блюдо не выбрано и общая стоимость заказа (счет) равна нулю. Для расчета общей стоимости заказа необходимо объявить глобальную переменную и задать ей значение 0 (ноль). Для этого нужно выделить форму и в окне свойств объекта во вкладке Events(События) дважды щелкнуть левой кнопкой мыши напротив событияOnCreate. Перед заготовкой функции объявим переменнуюschet, а в теле функции приравняем переменнуюschetк нулю.

  7. Каждое блюдо из меню должно иметь свою стоимость. Допустим, цены на блюда будут следующие:

  • Фаршированная форель 369 руб.;

  • Телятина под соусом 349 руб.;

  • Крем-суп из шампиньонов 189 руб.;

  • Рулет со шпинатом 179 руб.;

  • Пицца гавайская 299 руб.;

  • Ванильный коктейль 149 руб.;

  • Напиток грейпфрут 199 руб.

Стоимость каждого блюда должна быть записана в массив price, который должен выглядеть следующим образом:

0

1

2

3

4

5

6

369

349

189

179

299

149

199

Стоимость заказа должна состоять из стоимости выбранных блюд. Например, при выборе фаршированной форели (нулевой элемент в массиве) стоимость заказа должна увеличиться на 369 руб., то есть sсhet=schet+price[0];

Если отказываются от форели (то есть снимается галочка), то стоимость заказа должна уменьшится на 369 руб., то есть schet=schet-price[0]; Точно также должны обрабатываться остальные блюда.

//объявление массива с ценами блюд

float price[7]={369,349,189,179,299,149,199};

/*

Фаршированная форель 369 руб. - 0-ой элемент массива

Телятина под соусом 349 руб. - 1-ой элемент массива

Крем-суп из шампиньонов 189 руб. - 2-ой элемент массива

Рулет со шпинатом 179 руб. - 3-ой элемент массива

Пицца Гавайская 299 руб. - 4-ой элемент массива

Ванильный коктейль 149 руб. - 5-ой элемент массива

Напиток Грейпфрут 199 руб. - 6-ой элемент массива

*/

//объявление глобальной переменной для хранения общей стоимости заказа

float schet;

//функция выполняется при запуске программы в момент создания формы

void __fastcall TForm1::FormCreate(TObject *Sender)

{

schet=0; //изначально счет равен нулю

}

  1. Для создания функции-обработчика нажатий для объекта CheckBox1– необходимо дважды щелкнуть по нему левой кнопкой мыши. В появившейся заготовке функции необходимо написать программный код, который будет выполнятся при установке или снятию флажка в объектеCheckBox1.

Пример кода для объекта CheckBox1(Фаршированная форель 369 руб.) приведен ниже:

//функция-обработчик события, которое происходит при нажатии на CheckBox1

void __fastcall TForm1::CheckBox1Click(TObject *Sender)

{

if (CheckBox1->Checked==true) //условие. Если галочка стоит, то

schet=schet+price[0]; //увеличиваем счет на стоимость блюда

else schet=schet-price[0]; //иначе уменьшаем счет на стоимость блюда

Edit1->Text=FloatToStr(schet); //вывод счета в поле объекта Edit1

}

Так же создаются и функции-обработчики для остальных пунктов меню (объектов CheckBox2-CheckBox7).

  1. При нажатии на кнопку «Заказать» должно появиться сообщение о принятии заказа. В сообщении должна быть указана общая стоимость заказа.

Для обработки нажатия кнопки необходимо дважды щелкнуть левой кнопкой мыши на объекте Button1 и в появившейся заготовке функции написать программный код:

void __fastcall TForm1::Button1Click(TObject *Sender)

{

AnsiString s; //объявляем строковую переменную

//строка s должна содержать общую стоимость заказа

//составление строки s

s="Ваш заказ на сумму " + FloatToStr(schet) + " руб. принят";

//вывод информационного сообщения о сделаном заказе

MessageDlg(s,mtInformation,TMsgDlgButtons()<<mbOK,0);

}

Сохраняется проект нажатием кнопки на панели инструментов. Далее проводится отладка и тестирование программы.