Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Тема роботи- Розробка та тестування програми з різними обробниками подій

Работа добавлена на сайт samzan.net: 2015-07-05

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 22.5.2024

PAGE  1

Лабораторна робота  № 3

Лабораторна робота  № 3

Тема роботи: Розробка та тестування програми з різними обробниками подій.

Мета роботи: Вивчення прийомів побудови додатка в середовищі C++Builder з різними обробниками подій.

Постановка завдання: перетворити поточне значення температури, задане в градусах Цельсія, в значення за Фаренгейтом.

Порядок проведення роботи

 

У цій лабораторній роботі вивчатимуться прийоми створення програми-додатка в середовищі C++Builder з різними обробниками подій.

Процес програмування робиться в два етапи.

- Проектування інтерфейсу.

- Розробка функцій інтерфейсу.

Порядок виконання

Частина І

Після виконання  першої частини завдання повинні бути створені три окремі проекти.

I. Перший варіант програми.

1. Проектування інтерфейсу.

1. Відкрити меню File (файл) і клацнути на кнопці  New Application нове застосування).

2. Помістити компонент Label у верхній лівий кут форми і замінити існуюче значення його властивості Caption значенням Температура.

3. Помістити компонент Edit праворуч від компонента Label. Встановити його властивість Name рівним edtTemperature, Width (ширина) -  рівним 65 і очистити властивість Text.

4. Помістити у форму ще один компонент Label (відразу під написом "Температура"). Встановити його властивості Caption (заголовок) рівним значенню Результат.

5. Розмістити поряд з міткою "Результат" компонент Panel. Встановити його властивість Name рівним pnlResult, Caption (заголовок) -  рівним "Нуль", а BevelOuter (зовнішній скіс) - bvLowered (нижчий).

6. Виділити компоненти Panel і Edit.

7. Клацнути правою кнопкою миші, щоб відобразити контекстне меню проектувальника форм (Form Designer (конструктор форм)). Вибрати команду Size (розмір).

8. У групах Width (ширина) і Height (висота) встановити параметр Shrink to smallest. (зменшити розмір вікна)  Клацнути на кнопці ОК.

9. Вибрати форму. Встановити її властивості Height (висота) рівним значенню 150, Width (ширина)  - 200,  Caption (заголовок) - Перетворення температури і BorderStyle - bsSingle (поодинокий).

10. Для перегляду тексту файлу форм необхідно клацнути правою кнопкою миші і вибрати в контекстному меню команду View as Text. Щоб повернутися до форми потрібно клацнути правою кнопкою миші на тексті програми і вибрати в контекстному меню команду View as Form.

11. Зберегти проект.  

2. Розробка функцій інтерфейсу.

Програма повинна працювати за допомогою події OnChange для компонента Edit. Ця подія настає при зміні тексту, що відображається в компоненті Edit.

Виконати для цього наступні дії.

1. Вибрати поле введення edtTemperature і клацнути на вкладці Events у вікні інспектора об'єктів (Object Inspector).

2. Двічі клацнути на значенні властивості для події OnChange. З'явиться редактор коду, і C++Builder автоматично згенерує обробник події - функцію з ім'ям edtTemperatureChange.

void __fastcall TForm1::edtTemperatureChange(TObject *Sender)

{

}

3. У порожнє тіло функції (між відкриваючою та закриваючою фігурними дужками) необхідно додати наступний код:

void __fastcall TForm1::edtTemperatureChange(TObject *Sender)

{

 int  iCelsius;  

   iCelsius = StrToIntDef (edtTemperature->Text,0);

   pnlResult->Caption = FloatToStr(iCelsius * 1.8 +32);

}

У цьому фрагменті коду в першому рядку оголошується ціла змінна iCelsius, яка використовується для зберігання значення температури за Цельсієм, введеного в компоненті Edit.

У другому рядку програмного коду значення температури за Цельсієм введене в компонент edtTemperature (це значення зберігається у властивості  edtTemperature->Text та має строковий тип) за допомогою функції StrToIntDef перетвориться до цілого типу і привласнюється змінній iCelsius.

Функція StrToIntDef дозволяє вказати значення, яким треба скористатися у випадку якщо рядок не надасть допустимого цілого значення (останній параметр функції).

Значення, що зберігається в змінній iCelsius,  перетвориться в значення температури за Фаренгейтом. Оскільки результат перетворення виражається в числах з плаваючою точкою, необхідно використовувати функцію FloatToStr для його перетворення в строкове значення, яке потрібно привласнити властивості Caption компонента pnlResult.

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

Наприклад, якщо дійсна змінна u=-256,38666, то після виконання програмного коду

pnlResult ->Caption = "Значення u= "+FloatToStrF(u,fffixed,8,2);

на панелі pnlResult з’явиться текст  " Значение u= -256.39".

При цьому під все число відводиться вісім позицій, із яких дві позиції займає його дробова частина.

Вивести результат на панель за допомогою функції FloatToStrF.

4. Зберегти проект.

5. Виконати проект, клацнувши Run/Run (Пуск/пуск).

II. Другий варіант програми, що вирішує поставлену задачу.

  1.  Відкрити нове застосування і для проектування інтерфейсу помістити на форму компоненти Edit, Panel, Button. Зліва від компонентів Edit і Panel розташувати по одному компоненту Label, у властивостях Caption яких відповідно записати "Температура" і "Результат". У властивості Caption  для кнопки Button записати "Перетворити".
  2.  Для реалізації функцій програми необхідно вибрати кнопку Button і клацнути на вкладці Events у вікні інспектора об'єктів (Object Inspector). Потім двічі клацнути на значенні властивості для події OnClick. З'явиться редактор коду і C++Builder автоматично згенерує обробник подій з ім'ям Button1Click.
  3.  У процедуру, що з'явилася, внести програмний код, необхідний для перетворення температури з градусів Цельсія в градуси Фаренгейта.

void __fastcall TForm1::Button1Click(TObject *Sender)

{

  float  iCelsius;

   iCelsius = StrToFloat (Edit1->Text);

   Panel1->Caption = FloatToStr(iCelsius * 1.8 +32);

}

  1.  Зберегти проект під новим ім'ям.  
  2.  Виконати проект, клацнувши Run/Run (Пуск/пуск).

III. Виконати роботу відповідно до варіанту

№ в

Призначення програми

Співвідношення для перерахунку

1

Перерахунок швидкості вітру з м/с в км/год

км/год = м/с*3.6

2

Перерахунок швидкості вітру з км/год  в м/с

км/год = м/с*3.6

3

Перерахунок маси з фунтів в кілограми

1 фунт = 409.5 г

4

Перерахунок маси з кілограмів  у фунти

1 фунт = 409.5 г

5

Перерахунок кутових градусів в радіани

360о = 2 радіан

6

Перерахунок радіан в кутові градуси

360о = 2 радіан

7

Перерахунок довжини з метрів у фути

1 фут = 0.305 м

8

Перерахунок довжини з футів в метри

1 фут = 0.305 м

9

Перерахунок довжини з дюймів в сантиметри

1 дюйм = 2.54 см

10

Перерахунок довжини з сантиметрів в дюйми

1 дюйм = 2.54 см

11

Перерахунок кількості теплоти з калорій в джоулі

1 калорія = 4.19дж

12

Перерахунок кількості теплоти з калорій в ерги

1 калорія = 4.19*107 эргів

13

Перерахунок кількості теплоти з  джоулів в калорії

1 калорія = 4.19дж

14

Перерахунок довжини з сантиметрів в дюйми

1 дюйм = 2.54 см

15

Перерахунок кількості теплоти з  ергів в калорії

1 калорія = 4.19*107 эргів

Частина ІІ

Розробити програму, яка розраховує суму трьох чисел, введених у поля вводу Edit1, Edit2 та Еdit3. У програмі цим числам повинні відповідати змінні a, b та c. Поряд з кожним полем вводу потрібно розмістити пояснюючий надпис про ім’я змінної, яка вводиться у відповідне поле.

Виведення надписів, очистка полів вводу повинна відбуватись на етапі виконання програми у програмному коді, який розмістити у обробнику події для форми OnCreate. В цей обробник можна внести, наприклад, такий код:

Label1->Caption = “Введіть змінну а:;

Edit1->Text = “”; або Edit1->Clear(); - призначений для очищення поля вводу.

Подія OnCreate відбудеться при створенні форми у оперативній пам’яті, тобто перед виведенням форми на екран.

Розмістити на формі кнопку Button1 (змінити надпис на кнопці у відповідності з функцією, яку вона виконує, також у обробнику OnCreate).

У обробник події OnClick для кнопки помістити програмний код, призначений для розрахунку суми чисел, які вводяться у поля вводу.

Результат (суму) вивести як текст на компонент Panel1 (до виведення результату надпис на панелі повинна бути відсутня, попереднє видалення надпису з панелі зробити також у обробнику OnCreate).

Подія OnKeyPress відбувається при натисканні на клавішу на клавіатурі, наприклад,  при вводі даних у поле Edit. Значення веденого символу можна отримати, якщо «перехопити» цю подію за допомогою обробника події для  Edit і ввести в нього приведений програмний код.

void __fastcall TForm1::Edit4KeyPress(TObject *Sender, char &Key)

{

AnsiString cch;

cch = AnsiString(Key);

ShowMessage("KeyPress: Ви ввели символ "+ cch);

}

Якщо потрібно зробити активним якесь із полів вводу, наприклад, Edit1, потрібно передати йому фокус вводу у будь-якому обробнику, наприклад, у обробнику Button3Click (для цього на формі повинна бути розміщена відповідна кнопка).

void __fastcall TForm1::Button11Click(TObject *Sender)

{

 Edit1->SetFocus(); // Передача фокус вводу компоненту Edit1

}

При отриманні фокусу вводу компонентом Edit1 для цього компонента відбувається подія OnEnter. Щоб відстежити отримання фокусу вводу, можна створити обробник цієї події для компоненту Edit1 наступним чином:

void __fastcall TForm1::Edit1Enter(TObject *Sender)

{

ShowMessage("Edit1Enter: поле  Edit1 отримало фокус вводу" );

}

При втраті фокусу вводу компонентом Edit1 для цього компонента відбувається подія On Exit. Щоб відстежити втрату фокусу вводу, можна створити обробник цієї події для компоненту Edit1 наступним чином:

void __fastcall TForm1::Edit1Exit(TObject *Sender)

{

  ShowMessage("Edit1Exit: поле Edit1 втратило фокус вводу ");

}

//---------------------------------------------------------------------------




1. Операции ко законодательно относятся к банков
2. МОДУЛЬ МОЩНОСТИ 2007 Каждый говорит нам что магнитное поле земли измерено как являющийся слишком незначащим
3. Электрические заряды имеют- электроны ионы макроскопические частицы и др.html
4. ЭНЕРГОСНАБЖЕНИЕ Учебное пособие
5. тематики Ефимова
6. заречье место переправы известен по многим средневековым сочинениям арабских и персидских а позднее и тю
7. Багратион Петр Иванович
8. Тема 9- Система сбалансированных показателей BSC и ключевые показатели работы KPI В настоящее время для до
9.  Основная часть
10. ния по на отрезке []
11. Курский государственный политехнический колледж группы ПБ29 специальности Пожарная безопасность Перев
12. Бюджетная обеспеченность ~ отношение доходов местного бюджета к численности населения
13. OrBetter Stud8b или просто Stud8 это разновидность покера из серии Studигр
14. Введение В разрабатываемом курсовом проекте рассчитывается железобетонный каркас одноэтажного произв
15.  Wht mkes mericn plces fmous Wht memories nd ssocitions do they bring Wht re the merits nd demerits tht go together with their nmes Mtch the mericn plce nmes in with the corresponding curiosities
16. Барышня-крестьянка Повести Белкина Пушкин А
17. 133 8917 Зт руб РППС-РПТП ОтклЗотчЗпрошл снижЗотчЗпрошл-Зпрошл100 Изм Зас
18. Самые богатые люди в мире ищут и строят сети а остальные ищут работу
19. реферату- Зв~язки українських педагогічних товариств Галичини та Буковини з провідними діячами Наддніпрянщ
20. Бухгалтерский учет анализ аудит