b. Программирование приложения




Практическая работа № 12. Создание программ с использованием компонента Timer.

 

Объём учебного времени – 2ч

 

Методические рекомендации

1. Цель работы: Научиться работать с компонентом Timer

2. Перечень необходимых средств обучения:

 

2.1 Технические средства обучения:

- Компьютер Core i3 3.0, 2 Gb оперативной памяти, винчестер 250 Gb, DVD

2.2 Программное обеспечение:

- Программа ОС Windows XP/7;

- Антивирусные программы: Kaspersky AntiVirus;

- Браузер Internet Explorer;

- Интегрированная среда программирования MS Visual Studio 2010.

3. Основные теоретические положения:

Компонент Timer генерирует последовательность событий Tick. Свойства компонента приведены в таблице:

Свойство Описание
Interval Период генерации события Tick. Задается в миллисекундах
Enabled Разрешение работы. Разрешает (значение true) или запрещает (значение false) генерацию события Tick

 

4. Практические указания:

Задание 1.

1. Откройте программу Visual Studio 2010 Professional

2. Выберите – Создать проект – Приложение Windows Forms, введите расположение и имя проекта.

3. Создайте приложение «Таймер»

A. Проектирование интерфейса приложения.

а). Добавьте следующие компоненты на форму:

Form1 System.Windows.Forms.Form;

label1 System.Windows.Forms. Label;

label2 System.Windows.Forms.Label;

label3 System.Windows.Forms.Label;

groupBox1 System.Windows.Forms. GroupBox;

numericUpDown1 System.Windows.Forms. NumericUpDown;

numericUpDown2 System.Windows.Forms. NumericUpDown;

button1 System.Windows.Forms. Button;

timer1 System.Windows.Forms. Timer;

textBox1 System.Windows.Forms. TextBox.

 

Новыми являются элементы numericUpDown1 и numericUpDown1, которые предназначены для ввода числовых данных. Данные можно ввести с клавиатуры или при помощи командных кнопок Увеличить и Уменьшить, которые находятся справа от поля редактирования.

б). Измените свойства и расположение компонентов согласно рисунка.

 

 

b. Программирование приложения

а). В разделе public: Form1(void) выполните настройку компонентов numericUpDown, курсора и кнопки Пуск:

Компоненту NumericUpDown1 присвойте максимально возможное значение, которое можно ввести в поле компонента (свойство Maximum),

Компоненту NumericUpDown1 присвойте минимально возможное значение, которое можно ввести в поле компонента (свойство Minimum),

// чтобы при появлении окна курсор не мигал в поле редактирования

numericUpDown1->TabStop = false;

 

numericUpDown2->Maximum = 59;

numericUpDown2->Minimum = 0;

numericUpDown2->TabStop = false;

 

// кнопка Пуск/Стоп не доступна

button1->Enabled = false;

 

б). В разделе #pragma endregion добавьте:

private: DateTime^ t1; // время запуска таймера

private: DateTime^ t2; // время срабатывания таймера

 

в). Напишите функцию обработки события ValueChanged компонентов

NumericUpDown1 и NumericUpDown2. Например:

private: System::Void NumericUpDown1_ValueChanged(System::Object^ sender, System::EventArgs^ e)

{}

Словесный алгоритм:

Если свойство компонента NumericUpDown – Value равно 0, то кнопка Пуск недоступна, в противном случае доступна.

г). Напишите функцию добавляющую временные показатели в NumericUpDown1 NumericUpDown2 по щелчку на кнопке Пуск.

if (!timer1->Enabled)

{

// пуск таймера

// t1 - текущее время

// t2 = t1 + интервал

t1 = gcnew DateTime(DateTime::Now.Year,

DateTime::Now.Month, DateTime::Now.Day);

t2 = t1->AddMinutes((double)numericUpDown1->Value);

t2 = t2->AddSeconds((double)numericUpDown2->Value);

groupBox1->Enabled = false;

button1->Text = "Стоп";

if (t2->Minute < 10)

label1->Text = "0"+t2->Minute.ToString()+":";

else

label1->Text = t2->Minute.ToString() + ":";

if (t2->Second < 10)

label1->Text += "0" + t2->Second.ToString();

else

label1->Text += t2->Second.ToString();

// период возникновения события Tick - 1 секундf

timer1->Interval = 1000;

// пуск таймера

timer1->Enabled = true;

 

groupBox1->Enabled = false;

}

else

{

// таймер работает, останавливаем

д). Объясните все команды функции.

е). Допишите окончание функции.

ж). Напишите функцию обработки сигнала от таймера:

private: System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e)

{

t2 = t2->AddSeconds(-1);

if (t2->Minute < 10)

label1->Text = "0" + t2->Minute.ToString() + ":";

else

label1->Text = t2->Minute.ToString() + ":";

if (t2->Second < 10)

label1->Text += "0" + t2->Second.ToString();

else

label1->Text += t2->Second.ToString();

if (Equals(t1, t2))

{

timer1->Enabled = false;

this->Activate();

}

}

 

з). Самостоятельно допишите вывод окна сообщений MessageBox с именем Таймер, содержащее фразу: Заданный интервал времени истек. Компоненты: button1 и groupBox1 приведите в исходное состояние.

 

Задание 2. Задание для самостоятельного выполнения:

 

1 вариант. Напишите программу для движения надписи слева направо "Я буду сдавать экзамен по программированию" с использованием компонента Timer.

2 вариант. Напишите программу для движения надписи справа налево "Я буду сдавать экзамен по программированию" с использованием компонента Timer.

3 вариант. Напишите программу для движения надписи сверху вниз "Я буду сдавать экзамен по программированию" с использованием компонента Timer.

4 вариант. Напишите программу для движения надписи снизу вверх "Я буду сдавать экзамен по программированию" с использованием компонента Timer.

5 вариант. Напишите программу для движения кнопки "Нажми меня" слева направо с использованием компонента Timer.

6 вариант. Напишите программу для движения кнопки "Нажми меня" справа налево с использованием компонента Timer.

7 вариант. Напишите программу для движения кнопки "Нажми меня" по главной диагонали экрана с использованием компонента Timer.

8 вариант. Напишите программу для движения кнопки "Нажми меня" по побочной диагонали экрана с использованием компонента Timer.

9 вариант. Напишите программу для движения кнопки "Нажми меня" по периметру экрана с использованием компонента Timer.

10 вариант. Напишите программу для движения кнопки "Нажми меня" по нарисованному лабиринту с использованием компонента Timer.

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

 

5.1 Что означает свойство Enabled компонента Timer?

5.2 На какое событие пишут процедуру при работе с компонентом Timer?

5.3 Как организовать движение компонентов на форме?

6. Список рекомендуемой литературы:

Основная литература:

1. Немцова Т.И. Програмиирование на языке выского уровня. Программирование на языке Object Pascal: учеб. пособие /Т.И. Немцова, С.Ю. Голова, И.В. Абрамова. – М.: ФОРУМ: ИНФРА – М, 2012. – 496 с.

2. Овечкин Г.В. Компьютерное моделирование: учебник для студ. учреждений сред. проф. образования / Г.В. Овечкин.- М.: Издательский центр «Академия», 2015.-224с.

3. Немцова, Т. И. Программирование на языке высокого уровня. Программирование на языке С++: учеб. пособие / Т. И. Немцова, С. Ю. Голова, А. И. Терентьев. - М.: ФОРУМ: ИНФРА-М, 2012. - 512 с.: ил. + CD.

4. Гуриков, С. Р. Введение в программирование на языке Visual C#: учеб. пособие / С. Р. Гуриков. - М.: ФОРУМ: ИНФРА-М, 2013. - 448 с.

 

Дополнительная литература:

5. Рао Сиддхартха Освой самостоятельно С++ за 21 день, 7 изд.: Пер с англ.-М.: ООО «И.Д.Вильямс», 2013 – 688 с.: ил. – Парал.тит.англ.

6. Голицына О.Л. Программное обеспечение: учеб. пособие для среднего профессионального образования-М.:ФОРУМ;ИНФРА-М,2006.-432 с.

7. Виллемер А. Программирование на С++/А. Виллемер;[пер. с нем. М.А.Райтман].-М.:Эксмо,2013.-528с.+CD.-(Мировой компьютерный бестселлер).

8. Культин Н.Б. Microsoft Visual C++ в задачах и примерах.- СПб.: БХВ-Петербург,2010.-272 с.:ил.+CD-ROM.

9. Партыка Т.Л. Операционные системы, среды и оболочки: учеб. пособие для студ. учреждений сред. проф. Образования/ Т.Л. Партыка, И.И. Попов. – 3-е изд., перераб. и доп. – М.: ФОРУМ, 2010. – 543 с.

10. Окулов С.М. Основы программирования: учебное пособие.- М.:БИНОМ. Лаборатория знаний, 2010.- 440 с.

11. Голицына О.Л. Основы алгоритмизации и программирования: учеб. пособие для сред. проф. образования.- М: ФОРУМ; ИНФРА-М,2005.-432 с.

12. Рихтер Дж. Программирование приложений для Microsoft Windows /Пер. с англ. – M.: Microsoft Press, 2003. – C.48-313.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2018-12-19 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: