Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Изучение управляющего элемента 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 (подпись)

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

 

             
             

 

Стоимость заказа должна состоять из стоимости выбранных блюд. Например, при выборе фаршированной форели (нулевой элемент в массиве) стоимость заказа должна увеличиться на 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; //изначально счет равен нулю

}

 

11. Для создания функции-обработчика нажатий для объекта 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).

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

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

 

void __fastcall TForm1:: Button1Click(TObject *Sender)

{

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

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

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

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

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

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

}

 

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

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.