- •Лабораторный практикум по информатике
- •Часть 2
- •Содержание
- •Введение
- •Методические рекомендации по подготовке к лабораторным работам
- •Варианты задания
- •Технология выполнения работы
- •Разработка приложения
- •Создание интерфейса приложения
- •Определение функциональности приложения.
- •Конструирование формы
- •Множественный выбор
- •Конструирование формы
- •Варианты заданий
- •Технология выполнения работы
- •Варианты заданий
- •Технология выполнения работы
- •Варианты заданий
- •Варианты заданий
- •Технология выполнения работы
- •Содержание отчета
- •Вопросы для защиты работы
- •Варианты заданий
- •Технология выполнения работы
- •Варианты заданий
- •Технология выполнения работы
- •Перечень обеспечивающих средств
- •Общие теоретические сведения
- •Составление линейных алгоритмов
- •Варианты заданий
- •Технология выполнения работы
- •Содержание отчета
- •Вопросы для защиты работы
- •Цель работы
- •Задачи лабораторной работы
- •Перечень обеспечивающих средств
- •Общие теоретические сведения
- •Варианты заданий
- •Технология выполнения работы
- •Содержание отчета
- •Вопросы для защиты работы
- •Цель работы
- •Задачи лабораторной работы
- •Перечень обеспечивающих средств
- •Общие теоретические сведения
- •Варианты заданий
- •Технология выполнения работы
- •Содержание отчета
- •Вопросы для защиты работы
- •Цель работы
- •Задачи лабораторной работы
- •Перечень обеспечивающих средств
- •Общие теоретические сведения
- •Варианты заданий
- •Технология выполнения работы
- •Содержание отчета
- •Вопросы для защиты работы
- •Цель работы
- •Технология выполнения работы
- •Изучение управляющего элемента CheckBox
- •Изучение управляющего элемента RadioGroup
- •Технология выполнения работы
- •Изучение управляющего элемента ComboBox
- •Технология выполнения работы
- •Вопросы для защиты работы
- •Цель работы
- •Задачи лабораторной работы
- •Перечень обеспечивающих средств
- •Общие теоретические сведения
- •Изучение управляющего элемента StringGrid
- •Технология выполнения работы
- •Вопросы для защиты работы
- •Метод сортировки выбором
- •Метод сортировки включением
- •Пример использования генератора случайных чисел
- •Пример заполнения массива и вывода его в ListBox1
- •Измерение времени выполнения алгоритма
- •Технология выполнения работы
- •Вопросы для защиты работы
- •Поиск элемента массива на основе линейного просмотра
- •Метод двоичного поиска
- •Технология выполнения работы
- •Вопросы для защиты работы
- •Варианты задания
- •Технология выполнения работы
- •Задание
- •Варианты заданий
- •Технология выполнения работы
- •Перечень обеспечивающих средств
- •Общие теоретические сведения
- •Варианты задания
- •Технология выполнения работы
- •Обращение к программе-функции Mathcad
- •Задание
- •Варианты задания
- •Технология выполнения работы
- •Содержание отчета
- •Вопросы для защиты работы
- •Библиографический список
Технология выполнения работы
Для создания формы использовать компоненты: Label– для подписей;Edit– для ввода и вывода;Button– для инициирования вычислений.
Рекомендуемая компоновка формы (рис. 4):
Рисунок 4 – Рекомендуемая компоновка формы
Поля «Цена бензина», «Потребление бензина» и «Расстояние» должно быть с проверкой вводимых данных для предотвращения ввода нечисловых данных.
Программа должна выдавать сообщение об ошибке, если не заполнено хотя бы одно поле из трех («Цена бензина», «Потребление бензина» и «Расстояние»).
Поле «Стоимость» должно быть только для чтения.
Изучение управляющего элемента CheckBox
Изучать управляющий элемент CheckBoxлучше, написав программу, например, расчета стоимости электронного заказа по меню. Список блюд выбирается с помощью компонентаCheckBox. При выборе какого-либо блюда автоматически высчитывается стоимость заказа (при установлении флажка – счет увеличивается на стоимость блюда, при снятии – уменьшаться на соответствующее значение). При нажатии на кнопку «Заказать» появляется сообщение об успешном заказе с общим счетом заказа.
Для создания формы используются компоненты: Label– для подписей;CheckBox– для выбора; Edit – для вывода;Button– для инициирования вычислений. Рекомендуемая компоновка формы программы представлена на рисунке 5.
Рисунок 5 – Рекомендуемая компоновка формы
Для создания такой формы необходимо выполнить следующие действия.
Запустить C++Builder. При запуске автоматически создается новый проект.
На панели компонентов выбрать вкладку Standard, выбрать компонентLabel и щелкнуть левой кнопкой мыши по форме. На этой же вкладке выбрать компонентCheckBox ,Edit иButton . Расположить три объектаLabel, семь объектовCheckBox, один объектEditи один объектButtonна форму как показано на рисунке 5.
Изменить подпись формы. Для этого выбрать форму (щелкнуть по заголовку формы) и в окне свойств объекта во вкладке Propertiesизменить значение свойстваCaption. Вместо подписиForm1ввести «Меню».
Рисунок 6 – Свойство формы Caption (подпись)
Изменить подписи объектов Label1-Label3в соответствии с рисунком 6. Для этого выбрать каждый объектLabelи в окне свойств объекта во вкладкеPropertiesизменить значение свойстваCaption.
Изменить подписи объектов CheckBox1-CheckBox7. Название блюд можно придумать самим. Для изменения подписи объектаCheckBox выбрать каждый объектCheckBoxи в окне свойств объекта во вкладкеPropertiesизменить значение свойстваCaption.
Выбрать объект Edit1и в окне свойств объекта во вкладкеPropertiesприсвоить свойствуTextзначение «0» (ноль).
Поскольку объект Edit1используется для вывода результата (то есть заполняться он будет по нажатию на кнопку, а не вручную), нужно изменить его свойствоReadOnlyна значениеtrue (то есть сделать объектEdit1только для чтения).
Изменить подпись кнопки Button1. Для этого выбрать объектButton1и в окне свойств объекта во вкладкеPropertiesизменить значение свойстваCaption на «Заказать».
Изначально ни одно блюдо не выбрано и общая стоимость заказа (счет) равна нулю. Для расчета общей стоимости заказа необходимо объявить глобальную переменную и задать ей значение 0 (ноль). Для этого нужно выделить форму и в окне свойств объекта во вкладке Events(События) дважды щелкнуть левой кнопкой мыши напротив событияOnCreate. Перед заготовкой функции объявим переменнуюschet, а в теле функции приравняем переменнуюschetк нулю.
Каждое блюдо из меню должно иметь свою стоимость. Допустим, цены на блюда будут следующие:
Фаршированная форель 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; //изначально счет равен нулю
}
Для создания функции-обработчика нажатий для объекта 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).
При нажатии на кнопку «Заказать» должно появиться сообщение о принятии заказа. В сообщении должна быть указана общая стоимость заказа.
Для обработки нажатия кнопки необходимо дважды щелкнуть левой кнопкой мыши на объекте Button1 и в появившейся заготовке функции написать программный код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString s; //объявляем строковую переменную
//строка s должна содержать общую стоимость заказа
//составление строки s
s="Ваш заказ на сумму " + FloatToStr(schet) + " руб. принят";
//вывод информационного сообщения о сделаном заказе
MessageDlg(s,mtInformation,TMsgDlgButtons()<<mbOK,0);
}
Сохраняется проект нажатием кнопки на панели инструментов. Далее проводится отладка и тестирование программы.