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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



Теоретичні відомості

Об'єкт Form використовують для створення програмою нового вікна. Розглянемо властивості форми:

Властивість Опис властивості Приклади значень
ActiveControl Для завдання активного об'єкту (фокусу) у формі Button1, Edit2
AutoScroll Наявність у формі смуг прокручування True, False
BorderStyle Можливість змінювати розміри вікна bsSizeable (вікно з довільними розмірами), bsDialog, bsNone (вікно з фіксованими розмірами)
Width, Height Ширина і висота вікна в пікселях 503, 224 (числове значення)
Font Шрифт Комплексна властивість, задається в діалоговому вікні
HorizScrollBar VertScrollBar Параметри смуг прокручування Комплексна властивість
Icon Задаємо піктограму, яка буде в заголовку форми під час виконання програми ((None) - стандартна піктограма для C++Builder, або завантажена з певного файлу *.ico
Name Ім'я форми Form1 (ідентифікатор)
Caption Заголовок форми Довільний рядок символів
Color Колір фону форми - clGreen, cllnfoBk (тип, що перераховує) або - $004525В1 (числове значення - задається в діалоговому вікні)
Cursor Вид покажчика миші на формі під час виконання проекту crDrag, crCross, crHelp, crArrow (тип, що перераховує)
Enabled Доступність для дій об'єктів у формі під час виконання True, False
Left, Top Координати лівого верхнього кута вікна в пікселях 200, 108 (числове значення)
Position Розміщення і розміри вікна у момент запуску програми poScreenCenter, poDesigned
WindowState Стан вікна у момент запуску програми wsNormal, wsMaximized, wsMinimized

Об'єкт Label використовують для створення текстових полів (написів) у вікні програми. Окрім аналогічних до приведених у вищезгаданій таблиці властивостей Width, Height, Font, Color, Name, Caption, Cursor, Enabled, Left, Top, він володіє ще і такими:

Властивість Опис властивості Приклади значень
Align Вирівнювання поля відносно об'єкту, який його містить (форми) alBottom, alClient, alLeft, aINone, alTop
Alignment Вирівнювання тексту у межах поля taCenter, taLeftJustify, taRightJustify
AutoSize Приведення меж поля до меж тексту True, False
Visible Видимість об'єкту True, False
Wordwrap Перенесення слів тексту в червоний рядок True, False

Об'єкт Image використовують для вставки графічних об'єктів з файлів типу *.bmp, *.emf, *.ico, *.wmf у форму. Окрім відомих властивостей Align, Width, Height, Name, Cursor, Enabled, Left, Top, Visible, використовують такі:

Властивість Опис властивості Приклади значень
Center Вирівнювання малюнка до центру відносно поля, яке його містить True, False
Picture Ім'я графічного файлу Задається в діалоговому вікні
Stretch Приведення розміру зображення до заданих розмірів об'єкту True, False
AutoSize Приведення розміру об'єкту до реальних розмірів зображення True, False

Об'єкт Button використовують для створення кнопок на формі. Кнопки мають такі властивості: Visible, Width, Height, Font, Color, Name, Caption, Cursor, Enabled, Left, Top та ін.

Хід роботи

1. Завантажите середовище візуального програмування Borland C++ Builder.

Запуск системи візуального програмування C++ Builder виконують клацанням на піктограмі або за допомогою каскадного меню Start (Пуск) => Programs (Програми) => Borland C++ Builder x.O => C++ Builder x.O, де х - версія програми. Отримаємо чотири вікна.

2.Визначте способи активізації чотирьох вікон C++ Builder:

· головного вікна C++ Builder x.O - Project1, де є панель інструментів, палітра компонентів і головне меню;

· вікна інспектора об'єктів Object Inspector зі значеннями властивостей активного об'єкту;

· вікна форми Forml, в якому будуть розташовані результати роботи майбутньої програми;

· вікна тексту програми (Unitl.cpp).

Зауваження 1. Вікно тексту програми може частково перекриватися вікном форми. Активізувати вікна (а також змінювати їх розміри або розташування) можна за допомогою миші або використовуючи функціональні клавіші на клавіатурі:

F10 - для активізації головного меню (після цього натисніть на клавішу Esc);

F11 - для активізації вікна інспектора об'єкту;

F12 - для переходу між вікнами форми і коду програми.

3. Запустіть програму Project1 на виконання і розглянете вікно порожньої поки що форми. Поекспериментуйте з вікном форми.

Запустити програму можна декількома способами:

· виконати команду Run => Run головного меню;

· клацнути на кнопці Run панелі інструментів;

· натиснути на функціональну клавішу F9.

Виконаєте такі дії: максимізуйте вікно, відновите його попередній розмір, мінімізуйте і знову розгорніть вікно, пересуньте на робочому столі і зміните його розміри, викличте системне меню (Alt+пропуск). Виконаєте ті самі дії за допомогою команд Move, Size і інших і клавіатури.

Висновок: вікно форми має усі властивості стандартного вікна операційної системи Windows.

4. Закрийте вікно програми Form1, мінімізуйте головне вікно C++ Builder і створіть на робочому диску папку з ім'ям групи, а в ній власну папку, названу вашим прізвищем. Знову активізуйте C++ Builder.

5. Збережете створену програму у своїй папці.

Для цього виберіть команду головного меню File => Save All (Зберегти Усе) або натисніть на кнопку Save All на панелі інструментів. У першому рядку вікна, яке з'явиться ("Save Unitl As") під заголовком "Savein:" (Зберегти в:), за допомогою випадного меню виберіть ім'я робочого диска, після чого знайдіть і відкрийте свою власну папку. Задайте назву для файлу тексту програми, заздалегідь видаливши запропоновану комп'ютером назву Unitl.cpp, => Save. У наступному вікні "Save Projectl As" дайте назву файлу проекту, видаливши запропоновану комп'ютером назву Project1.bpr => Save. Зверніть увагу: файли проекту і тексту програми повинні мати різні назви.

6. Візуально ознайомтеся з властивостями форми Left, Top, Width і Height.

Перемістіть за допомогою миші форму Form1. Зверніть увагу, що зміна розташування форми веде до зміни її властивостей Left і Тор - координат лівого верхнього кута форми у вікні Object Inspector. Зміните розміри форми. Переконаєтеся, що тепер змінюються властивості Width (ширина) і Height (висота) форми у вікні інспектора об'єкту.

7. Досліджуйте, як зміна значень властивостей Left, Top, чи Width Height форми у вікні Object Inspector призводить до зміни розташування або розміру форми.

Введіть відповідне значення в пікселях і натисніть на клавішу Enter.

8. Змініть колір фону форми.

Для цього у вікні властивостей форми Object Inspector в рядку Color виберіть значення кольору фону двома способами:

· викличте вікно вибору кольору подвійним клацанням мишею на поточному значенні властивості Color. Виберіть один з базових кольорів (Basic colors) або встановитесвій власний (Define Custom Colors) колір. Підтвердіть вибір (Ok).

· за допомогою випадного меню поекспериментуйте з різними значеннями властивості Color. Задайте початкове значення кольору - clBtnFace.

 

9. Виконаєте програму ще раз (див. п. 3).

10. Вставте у форму текстове поле (об'єкт типу Label) з текстом "Анкета студента".

Двічі клацніть мишею на піктограмі Label - на закладці Standard палітри компонентів головного вікна C++Builder. Розташуєте вставлений об'єкт, переміщаючи його мишею. Якщо об'єкт Label1 невиділений, активізуйте його і у вікні Object Inspector зміните значення властивості Caption з Label1 на текст "Анкета студента" без лапок. Зміните значення властивості Font (шрифт) цього текстового поля на такі:

Font: Times New Roman Cyr;

Font style: Bold;

Size: 16;

Color: Purple.

Зауваження 2. У вікні Object Inspector відображується список властивостей лише активного в певний момент об'єкту.

11. Аналогічно вставте у форму ще декілька текстових полів з вашими біографічними даними.


Один з варіантів розміщення текстових полів:

 

12. Вставте у форму об'єкт типу Image (зображення).

Для цього клацніть один раз лівою кнопкою миші на піктограмі Image закладки Additional (додаткові) палітри компонентів і, наприклад, в нижньому правому кутку форми обведіть контур для майбутнього зображення (фотографії). Якщо потрібно, зміните розмір форми або вставленого об'єкту і добийтеся найкращого розташування на ній створених раніше об'єктів. Змінювати розміри об'єкту можна методом їх "розтягання" за маркери (чорні габаритні квадратики). Запам'ятаєте назву, яку Builder присвоїть цьому об'єкту (значення властивості Name) або заміните його на власний розсуд. За умовчанням цей об'єкт матиме стандартну назву Image1.

13. Вставте свою портретну фотографію за допомогою властивості Picture (ілюстрація) об'єкту Image1.

Для цього виділите об'єкт Image1 і активізуйте рядок Picture у вікні Object Inspector. Клацнувши на кнопці.., викличте діалогове вікно вибору малюнка Picture Editor. Клацніть на кнопці Load (завантажити) і у вікні Load picture вкажіть шлях до файлу з фотографією. Якщо такого файлу немає, скористайтеся будь-якою фотографією з бібліотеки І6соlог, яка за умовчанням знаходиться в теці З:\ Program Files \Common Files \ Borland Shared \ Images \ Splash \ І6соlог. Виберіть будь-який файл => Open. Підтвердіть свій вибір у вікні Picture Editor натисненням на клавішу Ok. Задайте властивість Stretch для об'єкту Image1 як True.

14. Вставте свою художню фотографію у форму поверх наявної, скориставшись ще одним об'єктом типу Image.

Вважатимемо, що цей об'єкт має назву Image2.

Зауваження 3. Під час накладення об'єктів може виникнути потреба використовувати команди Send To Back (переслати назад) або Bring To Front (перенести наперед), які є в їх контекстних меню або в головному меню Edit.

15. Поекспериментуйте з властивістю Visible (видимість) обох зображень, кожного разу виконуючи програму (див. пункт 3).Після цього виберіть значення властивості Visible в False для обох зображень.

16. Вставте у форму кнопки для підсвічування фотографій - два об'єкти типу Button з назвами Button1 і Button2.

Піктограма об'єкту типу Button (кнопка) знаходиться на закладці Standard палітри компонентів головного вікна C++ Builder. Поміняйте підписи на кнопках (зміните властивість Caption) на "Портретна фотографія" і "Художня фотографія" відповідно. Виберіть найкращий, на ваш розсуд, кирилизованный шрифт для підписів. Якщо використана картинка із стандартної бібліотеки Borland, виберіть для кнопок цікаві підписи.

17. Запрограмуйте кнопку "Портретна фотографія" так, щоб після її натиснення у формі з'являлася портретна фотографія.

Для програмування кнопки Button1 необхідно двічі клацнути на ній лівою клавішею миші. В результаті активізується вікно тексту програми із заготівлею функції Button1Click, яка оброблятиме подію клацання на кнопці Button1,:

 

void_fastcall Tform1::Button1Click(TObject *Sender)

{

}

У заготівлю необхідно вставити текст програми реакції на цю подію. Процедура матиме такий вигляд:

void_fastcall Tform1::Button1Click(TObject *Sender)

{

lmage1 -> Visible = true; lmage2 ->Visible = false;

// // Портретна фотографія стає видимою

////Художня фотографія стає невидимою

}

За допомогою цієї функції властивість видимості для об'єкту Image1 задаємо, це ж властивість для об'єкту Image2 прибирає. Для кнопки "Художня фотографія" дії будуть протилежні. Зверніть увагу на використання складених імен, наприклад Image1.Visible, в яких назва об'єкту від його властивості відділяється точкою. Такі складені імена дають доступ до значення конкретної властивості деякого об'єкту.

18. Запрограмуйте кнопку "Художня фотографія" відповідно до її призначення (див. п. 17).

Текст функції для цієї кнопки матиме такий вигляд:

void_fastcall Tform1::Button2Click(TObject *Sender)

{

Image1 ->Visible = false; // Портретна фотографія стає невидимою

Image2>Visible = true; // Художня фотографія стає видимою

}


Щоб створити таку функцію швидко, можна скопіювати дві команди привласнення з попередньої функції в нову і поміняти вирази праворуч.

19. Виконаєте програму і переконаєтеся, що кнопки виконують свої функції. Закрийте вікно програми "Анкета студента".

20. Збережете створену програму у своїй теці.

Виберіть елемент головного меню File => Save All (Зберегти усе) або натисніть на кнопку Save All на панелі інструментів.

21.Создайте exe -файл програми.

Виконаєте команду головного меню Project => Make Project1

((Сконструювати усе).

22. Закрийте C++ Builder, виконаєте створену програму і поекспериментуйте з побудованими кнопками.

Запустите exe -файл з ім'ям проекту і піктограмою зі своєї власної теки.

23. Продемонструйте створену форму викладачеві. Закінчите роботу.

Завдання

1. Вставте у форму третю фотографію (фото вашого будинку або машини) і ще одну кнопку з відповідним підписом, який її освітлюватиме. Якщо файлу з такою фотографією немає, скористайтеся будь-яким файлом з бібліотеки 16соlог (див. п. 13).

2. Поміняйте підписи до кнопок на такі: "Змінити фотографію" і "Забрати фотографію", перепрограмувавши кнопки відповідно до нового призначення. Запишіть фрагменти зміненого програмного коду в звіт.Виконаєте програму і переконаєтеся в правильності її роботи.

Підказка. У тексті функцій, які описують роботу кнопок, можна скористатися такими командами:

if (Image1 ->Visible = True).. // Якщо видимість = True

чи рівносильною командою

if (Image1.Visible).. //Тут умова істинна, якщо видимість включена

3. Поміняйте сценарій роботи програми з п. 2 на такій:

· відразу після запуску програми фотографій не видно, є двікнопки "Портретна фотографія" і "Забрати фотографію", доступною є лише перша кнопка;

· після клацання на кнопці "Портретна фотографія" у формі з'являється портретне фото, підпис на першій кнопці змінюється на "Художня фотографія", стає доступною кнопка "Забрати фотографію";

· після клацання на кнопці "Художня фотографія" фотографія у формі змінюється на художню, а підпис на цій кнопці змінюється на "Третя фотографія";

· після клацання на кнопці "Третя фотографія" фотографія у формі змінюється на третю, а підпис на цій кнопці змінюється на "Портретна фотографія";

· після клацання на кнопці "Забрати фотографію" фотографія зникає, і ця кнопка стає недоступною.

· Запишіть фрагменти програмного коду в звіт. Виконаєте програму і переконаєтеся в правильності її роботи.

Підказка. У тексті функцій, які описують роботу кнопок, можна скористатися командами, які змінюють властивості кнопок Caption (підпис), Visible (видимість), Enabled (доступність).

4. В умовах завдання п.3 після клацання на кнопці "Забрати фотографію" ця кнопка стає не лише недоступною, але і невидимою.

5. Зміните програмний код рішення задачі з п. 4 так, щоб після відключення фотографій напис на першій кнопці завжди відповідав фотографії, яка повинна з'явитися після її натиснення.

6. Виходячи з умови завдання з п. 5, добийтеся того, щоб послідовність перемикання фотографій не порушувалася внаслідок їх відключення, а також додайте текстовий підпис з назвою фотографії, видимої у нинішній момент.

7. Створіть звіт до виконаної роботи та закріпіть його скріншотами. Напишіть висновок.

 

Лабораторная работа N 3

Программирование разветвлений.

Объекты: поля редактирования, переключатели и их свойства.

Задача про обмен валюты

 

Теоретические сведения

Для реализации этой задачи необходимо использовать поля редактирования (EDIT) и переключатели (RadioButton), а также кнопки для выполнения вычислений и окончания работы программы.

Объект EDIT используют для введения пользователем строки символов с клавиатуры. Если необходимо преобразовать строку (свойство Text) в число и наоборот используют функции С++Builder StrToFloat и FloatToStr.

 

Ход работы

  1. Загрузите среду визуального программирования С++Builder.
  2. Откажитесь от возможности изменять размеры окна программы, придав свойству формы BoderStyle значение bsDialog.
  3. Вставьте в форму два объекта типа RadioButton (переключатели), как показано на рисунке 1.

Form1 Обмен валюты

       
   


Рис.1.Созданная форма Рис.2.Готовая форма

Для этого щелкните на пиктограмме объекта типа RadioButton, которая размещена на вкладке Standard

 

палитры компонентов главного окна С++Builder, а после этого щёлкните на нужном месте на форме. Повторите действия, чтобы вставить вторую RadioButton.

  1. Задайте начальное значение второго переключателя как активное.

Для этого щёлкните на правом переключателе и значение его свойства Checked(контроль выбора) задайте как True.

  1. Вставьте в форму два поля редактирования – объекты Edit1 и Edit2.
  2. Разместите на форме два текстовых поля – объекты Label1 и Label2.
  3. Вставьте в форму два поля редактирования – объекты Edit3 и Edit4.
  4. Вставьте в форму две кнопки – объекты типа Button.
  5. Вставьте в форму еще два текстовых поля – объекты Label3 и Label4.
  6. Сохраните созданную форму в своей папке.
  7. Измените название формы с “Form1” на «Обмен валюты».
  8. Измените надписи Caption на объектах типа RadioButton, Label и Button так, как показано на рисунке 2:

RadioButton1 - Покупка, RadioButton2 – Продажа,

Label1 – USD, Label2 – Гривна,

Button1 – Вычислить, Button2 – Конец.

  1. Задайте одинаковые размеры для всех текстовых полей, полей редактирования и кнопок и выровняйте их на форме.
  2. Задайте значения курсов покупки и продажи валюты, а также количество валюты.

Для этого введите нужное число, например 5, как значение свойства Text объекта Edit1. Повторите это для объекта Edit2(значение 5.2) и Edit3(значение 20).

  1. Очистите поле редактирования Edit4.

Для этого уберите значение свойства Text для объекта Edit4. Не перепутайте значения свойств Name и Text этих объектов.

  1. Заблокируйте возможность введения данных для поля Edit4, задав его свойство ReadOnly как True, поскольку это поле буде содержать результат. Сохраните работу Save All.
  2. Запрограммируйте RadioButton так, чтобы направление стрелки (Label3 – вид стрелки) показывало на вид операции: покупка или продажа. Сделайте активным поле Edit3.

Щелкните дважды на правом переключателе RadioButton2 (Продажа). Получите заготовку функции RadioButton2Click. В теле этой функции опишите действия, которые должны произойти в результате щелканья по правому переключателю RadioButton2:

 
 
void_fastcallTForm1::RadioButton2Click(TObject*Sender) { Label3->Caption=”=>”; //Изменяем направление стрелки //Активизируем поле Edit3 Edit3->SetFocus(); }    

 


Аналогично запрограммируем событие Click щелканья по левому переключателю RadioButton1, учитывая, что стрелка должна показывать на левое поле (‘<=’).

18. Запустите программу и убедитесь, что переключатель выполняет свои функции согласно п.17.

  1. Запрограммируйте кнопку «Конец».

 
 
Void_fastcallTForm::Button2Click(TObject*Sender) { exit(1); //Заканчиваем работу программы }

 

 


  1. Запрограммируйте кнопку «Вычислить».

Данное в поле редактирования – это значение свойства Text объекта типа строка. Для преобразования этого данного в числовой действительный тип Float воспользуйтесь функцией StrToFloat(), а на оборот – функцией FloatToStr(). Опишите основные (kurs, suma), и дополнительные (cod,ed) переменные.

 
 
Void_fastcallTFort::Button1Click(TObject*Sender) { floatf1=StrToFloat(Edit1->Text);//Получим значение курса покупки floatf2=StrToFloat(Edit2->Text);//Получим значение курса продажи floatf3=StrToFloat(Edit3->Text);//Получим числовое значение суммы в USD floatf4; //Изменение для суммы в гривнах if (RadioButton1->Cheched)f4=f1*f3; else f4=f2*f3; Edit4->Text=FloatToStr(f4); //Полученное число суммы в гривнах преобразуем в текстовый формат и результат присвоим свойству Text поля Edit4.    


  1. Сохраните работу (Save All).
  2. Выполните программу и поэкспериментируйте с различными денежными суммами и операциями купли или продажи. Закройте окно программы «Обмен валют».
  3. Измените размеры и цвета символов, размещение объектов, фон формы так, чтобы форма выглядела наилучшим образом.
  4. Обеспечьте появление подсказки «Введите сумму в долларах» после перемещения указателя мыши к полю Edit3.

Выберите объект Edit3 и установите свойство ShoeHint в True, а как значение свойства Hint введите текст подсказки.

  1. Поменяйте внешний вид стрелки с =>на Þ, а <= на Ü.

Для этого выберите объект Label3 и как значение свойства Caption введите русскую букву Р, после чего, активизировав свойство Font, выберите название шрифта Wingdings. Дважды щелкните на правом переключателе и в его функции введите русскую букву Р вместо =>.В функции для левого пе6реключателя символы <=замените буквой п. Сохраните работу, запустите программу и убедитесь, что стрелка изменила свой вид.

  1. Создайте EXE файл вашей программы.
  2. Закройте С++Builder, запустите созданную программу и выполните вычисления для различных начальных данных
  3. Продемонстрируйте созданную форму преподавателю.

Задания

1. Предусмотреть в созданной программе ещё одну кнопку для очистки полей денежных сумм. Выполните программу и убедитесь в правильности ее работы. Подсказка: для объектов Edit3, Edit4 у функции обработки события нажатие на эту кнопку используйте команду присвоения их свойствам Text пустой строки.

  1. Обеспечьте появление подсказки «Введите курс покупки» и «Ведите курс продаж» после перемещения указателя мыши к полям Edit1и Edit2 соответственно.
  2. Модифицируйте программу, предусмотрев дополнительную возможность изменения типа операции (покупка, продажа) вследствие щелканья мышью по стрелке. Выполните программу. Подсказка: для этого дважды щелкните по текстовому полю стрелки. Откроется окно программного кода с заготовкой функции Label3Click. В теле этой функции можно воспользоваться командами вида: if(RadioButton1.Checked=True)

…//Устанавливаем переключатель в правое положение, изменяя

//значение свойства Checked объекта RadioButton2

else

…//Устанавливаем переключатель в левое положение, изменяя

//значение свойства Checked объекта RadioButton1

  1. Упростите форму и измените кнопки «Вычислить» так, чтобы ее можно было использовать для переведения миль в километры или наоборот в зависимости от положения переключателя (1 миля=1,609344 км).
  2. В созданную для задачи п.4. форму вставьте группу переключателей (объект RadioGroup) для выбора типа мили с двух возможных значений: морской и обычной мили (1 морскаяя миля=1,852 км).

Подсказка: для задания подписи к переключателям используйте свойство Items групі переключателей RadioGroup, а для контроля выбора определенного переключателя используйтесь свойство ItemIndex (равно –1, если ни один не выбран, 0 – если выбрано первый переключатель групы, 1 – если второй и т.д.)

 

 

Лабораторная работа N 4

Программирование циклов.

Теоретические сведения

Объект Memo используют для создания многострочного редактора текста.

Свойства объекта Memo:

Свойство Описание свойства Примеры значений
HideSelection Сохранение выделения объекта в момент потери фокуса True (выделение не сохраняется), False (сохраняется)
Lines Задание начального текста в поле редактирования Комплексное свойство (задается в диалоговом окне)
MaxLength Максимально возможное количество введенных символов Например, 50 - пятьдесят символов, 0 - без ограничений
ScrollBars Наличие полосок прокрутки SsNone (отсутствуют), ssHorizontal(горизонтальная), ssBoth(обе).

Объект CheckBox используют для создания независимого двух или трехпозиционного флага: включено/выключено (/недоступен).

Его свойства определены так:

Свойство Описание свойства Примеры значений
AllowGrayed Наличие третьей позиции (серый включен) True(трехпозиционный флаг), False (двухпозиционный флаг)
State Состояние флага cbGrayed(серый), cbUncheked(выключен), cbChecked(включен)

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

С помощью объекта MainMenu создают главное меню программы.

Свойства главного меню:

Свойство Описание свойства Примеры значений
Items Команды меню Комплексное свойство (задается в диалоговом окне)
Tag Дополнительная переменная, используется в тексте программы 0; 8 (целое число)

С помощью объекта PopurMenu создают контекстное меню некоторого компонента. Для «привязывания» контекстного меню к конкретному объекту необходимо его свойству PopurMenu придать значение имени (Name) конкретного контекстного меню.

Некоторые свойства контекстного меню:

Свойство Описание свойства Примеры значений
Allignment Выравнивание меню относительно точки щелканья правой клавишей мыши PaCenter(по центру), paLeft(слева), paRight(справа)
AutoPopup Автоматический вызов контекстного меню True(вызывается щелчком правой клавиши), False (вызывается с помощью метода Popup)

Конкретная команда меню может иметь такие свойства:

Свойство Описание свойства Примеры значений
Break Разбить меню в горизонтальном направлении MbNone(без разбиения), mbBarBreak(разбиение с вертикальной чертой)
ShortCut Комбинация «горячих» клавиш для вызова команды меню None(отсутствует), Ctrl+A, F8,Ctrl+F10, Shift+F3, Shift+Ctrl+F11,Ctrl+Del

Ход работы

1. Загрузите среду визуального программирования C++Builder.

Задания

1. Прибавьте к контекстному меню команду "Конец" и запрограммируйте ее.

2. Создайте еще одно контекстное меню с командами "Снять все флажки", "Установить все флажки", "Установить инверсионно" и запрограммируйте его. Такое меню может появляться после щелканья правой кнопкой мыши на произвольном месте панели с флажками. Не забудьте "привязать" это меню (PopupMenu2) к панели с флажками.

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

Подсказка. Выполните такие действия:

  • вставьте в форму объект типа CheckBox (флажок), свойству Caption просвойте значение «Производная»;
  • измените программный код команды «Протабулировать».

4. Определите количество элементов массива больших, чем 0,5, и меньших, чем 1.

5. Предусмотрите в созданной программе дополнительную возможность для определения максимального и минимального значений функции.

Подсказка. В теле функции Button1Click, что описывает программный код кнопки "Протабулировать", воспользуйтесь командами:

max = sin(a) + 1; // В начале функции:

...

if (max < у) max = у;// В цикле табулирования:

6. Измените функции команды "Протабулировать" так, чтобы для включенного флажка "В массив" вывод результатов выполнялся в одномерный массив.

7. Вставьте в форму объект Chart из закладки Aditional для построения графика функции:

 

 

 

 


Дважды щелкните на нем и на закладке Series, щелкнув на кнопке Add, в окне TeeChart Gallery, выберите пиктограмму нужного графика. Набору данных, который будет отвечать этому типу графика, присвоится

 

 

стандартное имя Seriesl. Поставьте или сохраните флажок 3D по собственному желанию => Ok. Поэкспериментируйте с разными закладками окна Editing Chartl. Создайте дополнительный пункт меню или вставьте кнопку "Нарисовать график" для получения графика и запрограммируйте (например, кнопку) так:

 

void_fastcall TForm1::N8Click(TObject *Sender)

{

float а = StrToFloat(Edit1->Text); // Получаем числовое значение левой границы

float b = StrToRoat(Edit2->Text); // и правой границы

float h = StrToFloat(Edit3->Text); // Получаем числовое значение шага

for (float x = a; x < b; x += h)

{Series1->Add(sin(x), FloatToStr(x,ffFixed,2,2), clRed);}

 
 


Поэкспериментируйте с разными закладками окна Editing Chartl, каждый раз запуская программу на выполнение. Заберите легенду (Legend), маркеры (Points) и подписи к ним (Marks). Придумайте и вставьте (Title) и подпись (Foot) к графику.

8. Совместите построение графика с табулированием функции.

 

 

Лабораторная работа N 5

СОЗДАНИЕ УЧЕБНОЙ ПРОГРАММЫ

Рис. 1. Тестирование по английскому языку

Получить навыки работы с такими объектами: геометрическая фигура (Shape), таймер (Timer), мультимедийный проигрыватель (MediaPlayer), спаренная кнопка с полем редактирования (CSpinEdit), индикаторы состояния (Gauge и ProgressBar).

 

Теоретические сведения

Рассмотрим некоторые новые объекты.

Таймер (Timer, пиктограмма на закладке System) используют для повторения фрагмента кода программы с определенной периодичностью. Соответствующий фрагмент располагают в теле функции обработки события OnTimer таймера. Периодичность включения таймера в милисекундах задают свойством Interval. Геометрическая фигура (Shape, пиктограмма на закладке Additional) предназначена для изображения элементарных геометрических фигур и имеет, в частности, такие свойства:

 

 

Свойство Описание свойства Примеры значений
Brush Характеристики цвета (Color) и стиля (Style) заливки • Brush-Color: clMaroon • Brush-Style: bsSolid (сплошной), bsVertical
Shape Форма фигуры stRoundRect (прямоугольник со скругленными краями), stEllipse, stSquare
Pen Характеристики границы фигуры Комплексное свойство

Мультимедийный проигрыватель предназначенный для проигрывания видео- и аудио файлов. Управление проигрывателем может осуществляться как с помощью традиционных кнопок Play, Pause, Stop, Next и т.п. на этапе выполнения программы, так и из программного кода путем выполнения методов этого объекта, например:

MediaPlayer1->FileName="noлное имя видео-или аудиофайла";

MediaPlayer1 ->Open();

MediaPlayer1->Play();

 

Спаренная кнопка с полем редактирования (CSpinEdit, пиктограмма на закладке Samples) предназначена для введения и коррекции целочисленного значения некоторой величины во время работы программы.

Свойства кнопки:

Свойство Описание свойства Примеры значений
EditorEnabled Возможность прямого редактирования True, False
Enabled Возможность любого редактирования True, False
Increment Шаг изменения 1; 4(целое число)
MaxValue Максимальное значение целое число
MinValue Максимальное значение целое число

Индикатор состояния (CGauge, пиктограмма на закладке Samples, ProgressBar, пиктограмма на закладке Win32) используютдля наглядной демонстрации состояния выполнения некоторого процесса. Рассмотрим три свойства индикатора CGauge:

 

Свойство Описание свойства Примеры значений
Kind Тип индикатора gkHorizontalBar(горизонтальная строка), gkPie (круговая диаграмма), gkText (процентное отображение)
Progress Отображает состояние индикатора Целое число между MaxValue и MinValue
ShowText Дополнительно отображает состояние в процентах True, False

Ход работы

1.Загрузите среду визуального программирования C++ Вuіldеr.

2.Замените заголовок (Caption) формы с "Forml" на "Английский язык — тестирование".

Else

Label1 ->Visible = true; // иначе-поле засветится

}

Запустите программу и убедитесь, что надпись на форме мерцает.

6. Введите описание глобальных переменных программы:

Для этого в окне текста программы после существующего описания переменной формы введите такие строки:

 
 


TForm1 *Form1 // Эта строка уже есть в заготовке модуля

bool click = false // Наличие щелканья мыши
int shiftX, shiftY // Координаты мыши внутри рисунка

int x1, x2, хЗ, y // Начальные координаты рисунков

enum info {right, wrong, more}

// Результаты теста

 
 


Обеспечьте перетягивание первого рисунка на форме, запрограммировав обработки таких трех событий для объекта lmage1: OnMouseDown (ЕслиНажатьМышь), OnMouseMove (ЕслиТянутьМышь) и OnMouseUp (ЕслиОтпуститьМышь). Для заполнения заготовок приведенных функций воспользуйтесь закладкой Events окна инспектора объектов первого рисунка.

void_fastcall TForm1::Image1MouseDown(TObject *Sender,

TMouseButton Button, TShiftState Shift, int X, int Y)

{

click = true; // click - это индикатор нажатия на клавишу мыши

shift = X; // Запоминаем координату (X;Y) точки

shift = Y; // щелканья мышью внутри рисунка

}

 


void_fastcall TForm1::Image1MouseMove(TObject *Sender,

TShiftState Shift, int X, int Y)

{

if (click) { // Если нажата клавиша мыши, изменяем

// координаты рисунка на величину

// изменения координаты

Image1 ->Left = Image1 ->Left + X - shiftX; // у казателя мыши (X;Y) с

Image1->Top =Image1->Top +Y-shiftY; // учетом его

// смещений в середине
} //рисунка shiftX, shiftY

}

 

 

   
 
 
 


void_fastcall TForm1::lmage1MouseUp(TObject *Sender,

TMouseButton Button, TShiftState Shift, lnt X, int Y)

{

// Запоминаем, что клавиши мыши отпущенная

click - false;

}

Обратите внимание, что программа не проверяет, на какую именно клавишу мыши нажал пользователь, и потому перетягивание можно осуществлять любой клавишей. Проверить клавиши мыши можно, проанализировав аргумент Button (типа TMouseButton) приведенных функций: Button = {mbLeft (левая клавиша), mbRight (права), mbMiddle (средняя)}. Координаты указателя мыши в пикселях передаются в функции с помощью аргументов X и Y целого типа.

Else

return false; // Рисунок вне фигуры

}

l2. Запрограммируйте кнопку "Готово", которая проверяет правильность расположения рисунков внутри фигур:

__ void__fastcall TForm1::BitBtn1Click(TObject *Sender)

{ // Если: первый рисунок во второй фигуре

if (ImageInShape(Image1, Shape2) &&

// второй рисунок в третьей фигуре lmageInShape(Image2, Shape3) &&

// третий рисунок в первой фигуре ImageInShape(Image3, Shape1))

Result(right);

Else

Result(wrong);

}



Поделиться:


Последнее изменение этой страницы: 2016-12-12; просмотров: 285; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.146.255.127 (0.208 с.)