Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Метода(c++)

.pdf
Скачиваний:
39
Добавлен:
04.06.2022
Размер:
1.77 Mб
Скачать

1.Создать новый проект, в форме разместить два компонента Edit, четыре компонента Label, четыре кнопки. Настроить форму, как показано на рис. 9. Цветовую гамму, размер шрифта и имена для компонентов Label, Edit и Button выбрать самостоятельно.

2.Для кнопки с надписью «+» перейти в обработчик события Click и самостоятельно набрать код, аналогичный приведенному в примере к теоретиче-

Рис. 9. Вид окна приложения

ским сведениям, но с учетом того, что в компоненты Edit пользователь будет вводить вещественные числа.

3.Запустить проект, предварительно сохранив его с именем MyCalc. Имя модуля (формы) – Form1.

4.Проверить правильность работы программы.

5.Ввести в качестве любого операнда какое-либо число с пробелом (слово, число «через точку») и посмотреть на реакцию программы при нажатии на кнопку с надписью «+».

6.Запустить приложение из любого файлового менеджера, вновь ввести некорректное значение операнда и, нажав кнопку «+», посмотреть на реакцию программы.

7.Добавить обработчики событий для кнопок «–», « », «/». Запустить приложение и убедиться в правильности его работы.

8.Для метки «Результат расчета» установить выравнивание по правому краю.

9.Изменить обработчик события Click для кнопки «+», набрав перед выводом результата сложения на форму строку:

<ИмяМетки> –> Caption = ”Результат сложения: ”;

50

10.Самостоятельно изменить обработчики событий для других кнопок аналогичным образом.

11.Запусить проект, проверить правильность его работы.

Краткие теоретические сведения.

 

 

 

XV. Компонент Memo

 

 

 

 

Это

многострочный

редактор

текста,

который

удобно

использовать также для вывода результатов работы программы, если это необходимо сделать в несколько строк. Свойства компонента представлены в табл. 11.

Таблица 11

 

Название

 

 

 

 

 

 

Смысл

 

 

 

 

 

 

свойства

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ImeMode

 

возможность

 

использования

редакторов способа

ввода

 

 

 

 

(Input

Method

Editor,

IME).

Такие

 

редакторы

 

 

ImeName

 

 

 

 

 

 

позволяют

 

приспособить

стандартную

 

раскладку

 

 

 

 

клавиатуры для символьных языков для ввода

 

 

 

 

нестандартных символов (иероглифов и т. д.).

 

 

 

 

Редакторы

 

IMЕ

представляют

собой

специально

 

 

 

 

устанавливаемое в операционной системе программное

 

 

 

 

обеспечение (ПО). Имя такого редактора задается в

 

 

 

 

свойстве

 

 

ImeName.

Режим

работы

 

редактора

 

 

 

 

определяется свойством ImeMode.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Lines

 

Содержит

информацию,

выводимую в

компоненте.

 

 

 

 

Информация представлена в виде массива строк.

 

 

 

 

 

Для очистки массива строк используется метод

 

 

 

 

 

<ИмяКомпонента> –> Clear();

 

 

 

 

 

 

 

 

Для добавления новой строки используется метод

 

 

 

 

<ИмяКомпонента> –>Lines–>Add(Str);

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ScrollBars

 

Определяет

 

наличие

полос

прокрутки

внутри

 

 

 

 

компонента.

 

 

 

 

 

 

 

 

 

 

 

 

 

Возможные значения:

 

 

 

 

 

 

 

 

 

 

ssBoth

 

 

Отображаются

и

вертикальная,

 

 

 

 

 

 

 

 

 

 

 

 

 

горизонтальная

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ssHorizon-

 

Отображается только горизонтальная

 

 

 

 

tal

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ssNone

 

 

Не отображается ни вертикальная,

 

 

 

 

 

 

 

горизонтальная

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ssVertical

 

Отображается только вертикальная

 

 

 

 

 

 

 

 

 

 

 

 

 

WantReturns

 

В режиме

ввода, определяет,

допустимо

ли

при

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

51

нажатии Enter добавлять новую строку. Возможные значения:

True

Значение по умолчанию. Разрешено добавление

 

строки текста при нажатии клавиши Enter,

 

курсор находится внутри компонента

 

 

Fals

Нажатие клавиши Enter, когда курсор нахо

eвнутри компонента приводит к возникновению со

Change

WantTabs Определяет режим функционирования клавиши Tab, когда пользователь вводит текст в элементе управления. Возможные значения:

 

 

 

Таблиц 11 (продолжение)

 

 

 

 

 

 

 

1

 

2

 

 

 

 

 

 

1

 

True

Клавиша Tab функционирует стандартным образом

 

 

 

вводе текста (сдвигает позицию курсора на зна

 

 

 

табуляции вправо)

 

 

 

 

 

 

Fals

Значение по умолчанию. Клавиша Tab функционир

eкачестве средства перемещения фокуса на фор одного элемента управления на другой.

Упражнение 6. Работа с компонентом Memo.

Задача: Составить программу вычисления арифметического выражения для заданных значений x, y, z :

Окно программы должно иметь вид, представленный на рис. 10.

Рис. 10. Вид окна приложения

52

Ход решения:

1.Создать новый проект с именем MyMemo.

2.Оформить окно формы, заменив заголовок Form1 на нужный текст

(свойство Caption).

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

4.Поместить на форму компоненты для ввода исходных данных (Edit), выровнять их по верхнему краю; их самих и соответствующие им метки – по середине.

5.Поместить на форму компонент Memo; запретить редактирование его строк, разрешить появление обеих полос прокрутки.

6.Поместить на форму кнопку (Button), оформить ее внешний вид.

7.Перейти в код модуля, и после строки #include <vcl.h> набрать строку

#include <math.h>

Цель набранной строки – подключение модуля встроенных математических функций.

8. Перейти в обработчик события Click для кнопки, в котором указать следующий код:

double x, y, z, a, b ,c, rez; //х, у, z – исходные данные

//а, b, с – вспомогательные переменные; //rez – результат вычисления*/

//Ниже должно быть три строки, обеспечивающие считывание исходных данных и преобразование из типа-строка в тип-вещественное число. Написать самостоятельно. Имена переменных – см. выше.

a= pow(tan(x+y),2);//расчет квадрата тангенса суммы

b= exp(y-z);//расчет экспоненты

c= sqrt(cos(x*x)+sin(z*z));//расчет квадратного корня rez = a-b*c;//общий итог

//вывод результата:

Memo1->Lines->Add("При х="+FloatToStr(x)+";y="+FloatToStr(y)+";z="+FloatToStr(z));

Memo1->Lines->Add("Результат = "+FloatToStr(rez));

9. Запустить проект и проверить его работоспособность.

53

10. Перейти в обработчик события Create для формы. Указать в нем следующий код:

Edit1->Text = "3,4";

Edit2->Text = "7,4e-2";

Edit3->Text = "1,943e2";

Memo1->Clear();

Memo1->Lines->Add("Лабораторная работа № 1");

11. Запустить проект, отследить появившиеся изменения.

Содержание отчета:

1.Титульный лист

2.Цель работы

3.Краткие теоретические сведения (список используемых операторов, их цель, синтаксис, формат и проч.)

4.Коды модулей С++

5.Копии форм и сведения о свойствах компонентов.

6.Копии экрана с примерами работы программ

7.Схемы алгоритмов программ.

8.Выводы по работе.

Контрольные вопросы

1.Перечислите этапы создания приложения с оконным интерфейсом.

2.Что такое форма?

3.Что такое модуль?

4.Каким образом и с какой целью можно открыть окно Project Manager?

5.Каким образом и с какой целью можно открыть окно Object Inspector?

6.Каким образом и с какой целью можно переключаться между модулем и формой?

7.Укажите файловых состав приложения с оконным интерфейсом. Что изменилось в этом составе по сравнению с консольным приложением?

8.Какая классификация компонентов, использующихся для разработки приложений с оконным интерфейсом Вам известна?

9.Предложите способ, согласно которому, не знающий пользователь смог бы определить, какой из компонентов является визуальным, а какой – нет.

10.Как разместить нужный компонент на форме?

54

11.Как выделить группу компонентов на форме? Для каких целей это может понадобиться?

12.Как удалить элемент(ы) интерфейса с формы?

13.Каким образом можно выровнять компоненты интерфейса на форме?

14.Что такое свойства элементов интерфейса?

15.Каким образом можно установить один и тот же размер компонентов интерфейса на форме?

16.Какие вкладки и с какой целью содержит окно Object Inspector?

17.В каких режимах допустимо изменение свойств компонентов?

18.Как в режиме проектирования формы можно изменить свойства компонентов?

19.Как в окне Object Inspector отличить простое свойство от сложного?

20.Как вводить значения свойств компонентов в окне Object Inspector?

21.Перечислите и поясните важнейшие свойства визуальных компонентов.

22.Перечислите и поясните специфические свойства компонента Label.

23.Перечислите и поясните специфические свойства компонента Edit.

24.Перечислите и поясните специфические свойства компонента Button.

25.Поясните термин «событие»

26.Где можно просмотреть список событий, на которые может реагировать тот или иной компонент?

27.Объясните, в какие моменты времени возникают события Click, DBLClick, Change.

28.Какие действия необходимо выполнить, чтобы перейти в режим программирования обработчика нужного события?

29.Каким образом можно менять/устанавливать свойства компонентов в процессе выполнения программы?

30.Какие компоненты используются для организации ввода/вывода данных, необходимых для реализации линейного вычислительного процесса? Перечислите и объясните их свойства и события.

31.Что такое тип данных?

32.Что такое преобразование типов данных?

33.Какие функции преобразования типов данных Вам известны? Приведите их синтаксис и принцип использования.

34.Какой компонент может использоваться для многострочного

ввода/вывода текста? Перечислите и поясните его свойства и события.

55

56

ЛАБОРАТОРНАЯ РАБОТА №7 ПРОГРАММИРОВАНИЕ ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА.

ОПЕРАТОРЫ ВЕТВЛЕНИЯ, ЦИКЛА. КОМПОНЕНТЫ CHECKBOX, RADIOBUTTON, RADIOBUTTON,

PANEL, GROUPBOX, BEVEL, SPINEDIT, STRINGGRID.

ДАТЧИК СЛУЧАЙНЫХ ЧИСЕЛ. РАБОТА С МАССИВАМИ.

Цель работы: освоение визуальных компонентов, необходимых для реализаций алгоритмов ветвления и циклических алгоритмов. Закрепление навыков программирования ветвящихся и циклических структур, использования датчика случайных чисел.

Краткие теоретические сведения:

I. Компонент CheckBox (флажок)

Используется для включения/выключения опций.

Основные

свойства компонента приведены в табл. 12.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Название

 

 

 

 

 

 

 

Смысл

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Checked

 

Определяет, установлен флажок или нет.

 

 

 

 

 

Возможные значения:

 

 

 

 

 

 

 

True

 

Флажок установлен

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

False

 

Флажок снят

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

State

 

Регулирует

 

состояние флажка, если разрешено

 

 

использование трех его состояний. Возможные

 

 

значения:

 

 

 

 

 

 

 

 

 

 

 

 

cbChecked

 

Флажок установлен («отмечено)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cbUnChecked

 

Флажок снят («не отмечено)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cbGrayed

 

Состояние флажка не определено

 

 

 

 

 

 

 

 

 

 

 

 

 

Связь между Checked и State

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Значение State

 

Значение Checked

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cbChecked

 

 

 

True

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cbUnChecked

 

 

 

False

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cbGrayed

 

 

 

False

 

 

 

 

 

 

 

 

 

 

 

AllowGrayed

 

Разрешает/запрещает третье состояние флажка

 

 

Возможные значения

 

 

 

 

 

 

 

True

 

Разрешена

установка

третьего

состояния

 

 

 

 

 

 

 

флажка

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

False

 

Запрещена

установка

третьего

состояния

 

 

 

 

флажка

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Color

 

Цвет фона флажка

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

57

Важнейшим событием компонента является событие OnClick, которое возникает при изменении состояния флажка (из установленного в снятый или из снятого в установленный).

II.Компонент RadioButton (радиокнопка, переключатель)

Этот компонент должен использоваться в группе, где существует

не менее двух экземпляров RadioButton. В любое время можно выбрать только один RadioButton данной группы. Выбор переключателя в группе снимает выделение с выбранного в данный момент переключателя в этой группе.

Под группой понимается несколько компонент RadioButton, находящихся в одном контейнере (панель Panel, GroupBox или форма)

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

Свойства компонента представлены в табл. 13.

Таблица 13

Название

 

 

 

 

Смысл

 

 

 

Checked

 

Определяет, выбрана радиокнопка или нет.

 

 

Возможные значения:

 

 

True

 

Выбрана

 

 

 

 

 

 

 

 

 

 

False

Не выбрана

 

 

 

 

 

Color

 

Цвет фона радиокнопки

 

 

 

 

 

 

Важнейшим

событием является событие OnClick, полностью

идентичное одноименному событию компонента CheckBox.

Упражнение 1. Обзоp CheckBox и RadioButton

1.Создать новый проект. Имя файла формы – FrmCheckBox, имя файла проекта – PrCheckBox.

2.Разместить на форме компоненты, как показано на рис. 11.

58

Рис. 11. Вид формы для проекта PrCheckBox.

3.Самостоятельно написать программный код для кнопки «Расчет». Учесть, что аргумент функции может быть дробным, а результат работы нужно сохранить в переменной res.

4.Проверить работоспособность программы.

5.Добавить на форму компонент CheckBox. Свойство Caption установить в «Модуль», свойство Name – в «cbxModul».

6.Изменить обработчик нажатия кнопки «Расчет» следующим образом:

…//код, набранный в п. 3, но без вывода результат} if (cbxModul.Checked) {res = abs(res);}

//вывод результата

7.Сделать так, чтобы при смене состояния флажка вместо «Функция: у = 1

– х2» отображалось бы «Функция: у = |1 – х2|» или «Функция: у = 1 – х2» в зависимости от состояния флажка. Один из вариантов решения:

a.Добавить на форму два компонента label, свойства Caption которых установить в «|». Имена компонентов – lbl1 и lbl2 соответственно. Тип шрифта – Times New Roman; эффекты – те же, что и у компонента, в котором выводится функция, но без эффекта курсива.

b.Установить для метки Label2 свойство Transparent в True

c.Разместить компоненты lbl1 и lbl2 так, как показано на рис. 12.

lbl

Lb

Рис. 12. Места lbl1 и lbl2.

59

Соседние файлы в предмете Информатика