Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Использование таймера в консольном приложении



 

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

#include " stdafx.h"

#include < windows.h>

#include < stdio.h>

#include < conio.h>

 

HANDLE gDoneEvent;

VOID CALLBACK TimerRoutine(PVOID lpParam, BOOLEAN TimerOrWaitFired){

if (lpParam == NULL){

printf(" TimerRoutine lpParam is NULL\n" );

}

else {

// lpParam points to the argument; in this case it is an int

// printf(" Timer routine called. Parameter is %d.\n", *(int*)lpParam);

if(TimerOrWaitFired) {

// printf(" The wait timed out.\n" );

}

else {

printf(" The wait event was signaled.\n" );

}

}

SetEvent(gDoneEvent);

}

int main()

{

HANDLE hTimer = NULL;

HANDLE hTimerQueue = NULL;

SYSTEMTIME lt;

int arg = 123;

do {

// Use an event object to track the TimerRoutine execution

gDoneEvent = CreateEvent(NULL, TRUE, FALSE, NULL);

if (NULL == gDoneEvent) {

printf(" CreateEvent failed (%d)\n", GetLastError());

return 1;

}

// Create the timer queue.

hTimerQueue = CreateTimerQueue();

if (NULL == hTimerQueue){

 

printf(" CreateTimerQueue failed (%d)\n", GetLastError());

return 2;

}

// Set a timer to call the timer routine in 1 seconds.

if (! CreateTimerQueueTimer( & hTimer, hTimerQueue,

(WAITORTIMERCALLBACK)TimerRoutine, & arg, 1000, 0, 0)){

printf(" CreateTimerQueueTimer failed (%d)\n", GetLastError());

return 3;

}

// TODO: Do other useful work here- например очистить экран и вывести текущее время

system(" cls" );

GetLocalTime(& lt);

printf(" The local time is: %02d: %02d: %02d \n", lt.wHour, lt.wMinute, lt.wSecond);

// Wait for the timer-queue thread to complete using an event

// object. The thread will signal the event at that time.

if (WaitForSingleObject(gDoneEvent, INFINITE)! = WAIT_OBJECT_0)

printf(" WaitForSingleObject failed (%d)\n", GetLastError());

CloseHandle(gDoneEvent);

// Delete all timers in the timer queue.

if (! DeleteTimerQueue(hTimerQueue))

printf(" DeleteTimerQueue failed (%d)\n", GetLastError());

}

while (! _kbhit() ); // ожидание нажатия любой клавиши

return 0;

}

 

1.10. Работа с отладчиком Visual C++

 

Точка останова на строке исходного кода ставится в отладчике VS.Net C++ очень просто. Загрузите файл с исходным кодом, поместите курсор напротив строки, на которой нужно поставить точку останова и щелкните левой кнопкой мыши. Этот процесс называется установкой location breakpoint ( точка останова). При выполнении кода, соответствующего этой строке, отладчик остановится в этой точке.

Для того чтобы запустить программу в отладочном режиме, надо выбрать пункт меню Debug→ Start (F5)или нажать соответствующую кнопку на панели инструментов. После остановки программы на breakpoint`е можно воспользоваться пунктом меню Debug→ Step_Over (F10)для пошагового выполнения программы.

Просмотреть значение переменной можно в окне Watch (окно интерпретации), добавив туда ее имя (ввод с клавиатуры).

 

 

МЕТОДИКА ВЫПОЛНЕНИЯ

 

2.1. Базовые задания для всех бригад.

1. Создать консольное приложение.

2. В функции main() созданного приложения объявить переменную типа intи инициализировать ее значением, равным номеру бригады.

Объявить массивы символов и инициализировать их фамилиями студентов бригады.

3. Воспользовавшись объектом потокового вывода cout, вывести на экран значения указанной переменной типа intи фамилии студентов.

Перейти на новую строку.

4. Повторить вывод, воспользовавшись функцией printf().

5. В эту же функцию main() вставить строки:

int mas[ 3 ] = { 1, 2, 3 };

int mmm[ 3 ] = { 4, 5, 6 };

6. С помощью функции printf()вывести значения элементов этих массивов на экран.

2.2. Реализовать инициализацию и вывод данных структуры на экран и в текстовый файл - индивидуальное задание для бригад - Таблица 1. Количество элементов структуры равно 5.

 

Варианты индивидуального задания

Таблица 1 Структуры данных и условия отбора записей

 

№№ бри-гад   Структура   Поля   Условие отбора
Дом Площадь, кол-во этажей, год постройки Кол-во этажей свыше
Человек Имя, фамилия, год рождения Год рождения свыше
Точка x, y, цвет х более
Школьник Фамилия, имя, возраст Возраст менее
Студент Фамилия, имя, курс Курс более
Автомобиль Марка, мощность, год выпуска Мощность свыше
Отрезок X1, y1, x2, y3 x1 более
Круиз Страна, продолжитель-ность, стоимость Стоимость менее
Работник Имя, фамилия, зарплата Зарплата более
Работник Имя, фамилия, № отдела № отдела более

 

2.3.Написать программу, которая выводит на экран и в файл записи созданной структуры данных, удовлетворяющие заданному с клавиатуры значению условия. Имя файла вводить с клавиатуры. Условия отбора приведены в таблице 1.

2.4. Подготовить отчет о работе в соответствии с п.3.

2.5. Распечатать отчет на принтере любого типа

2.6. Готовый отчет представить преподавателю для отметки о выполнении работы

Работа считается выполненной, если выполнены все перечисленные выше пункты.

 

ОТЧЕТ О РАБОТЕ

Готовится в письменном виде с помощью доступного текстового процессора. Содержание отчета:

1. Титульный лист с названием работы, ее номером, номером группы, бригады, фамилиями студентов и преподавателей. См. след. страницу.

2. Листинги разработанных приложений командной строки.

3. Результаты, полученные при выполнении индивидуального задания.

 

КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Порядок создания консольного приложения на языке С++.

2. Пример консольного приложения для вывода на экран строки символов.

3. Русификация приложений.

4. Типы переменных.

5. Объявление и инициализация массивов.

6. Указатели и массивы.

7. Использование объектов класса string

8. Определение структур.

9. Ссылочные переменные

10. Потоковый ввод/вывод

11. Консольный ввод-вывод средствами языка С

12. Вывод строк Unicode

13. Операторы проверки условия

14. Операторы цикла

15. Ввод-вывод в файл

 

Литература

1. Липачев Е.К. Технология программирования. Базовые конструкции С/C++. Казанский университет. 2012.-142 с.


Поделиться:



Популярное:

  1. Анализ прибыли и рентабельности с использованием международных стандартов
  2. АППРОКСИМАЦИЯ ДАННЫХ С ИСПОЛЬЗОВАНИЕМ МЕТОДА НАИМЕНЬШИХ КВАДРАТОВ
  3. Аэробика с использованием оборудования
  4. Виды кровотечений, их характеристика. Временная остановка кровотечений. Использование подручных средств для остановки кровотечений. Виды повязок, их наложение
  5. Визуальный дизайн: использование компонентов
  6. Вопрос 3. Использование теорий личности в процессе консультирования женщин
  7. Графический (раздаточный) материал, их виды и использование
  8. Графический метод с использованием характеристик для мгновенных значений
  9. Диспетчеризация задач с использованием динамических приоритетов
  10. Зарисовка макета архитектурного сооружения с использованием высокой точки зрения
  11. Иммунитет и его виды. Использование явлений иммунитета в диагностике и профилактике инфекционных болезней.
  12. Использование B-деревьев в базах данных


Последнее изменение этой страницы: 2016-05-03; Просмотров: 670; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.015 с.)
Главная | Случайная страница | Обратная связь