Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Использование таймера в консольном приложении ⇐ ПредыдущаяСтр 4 из 4
Приведенное ниже приложение будет использовано при выполнении следующей лабораторной работы для выполнения некоторого кода с заданным периодом. #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 Структуры данных и условия отбора записей
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 с. Популярное:
|
Последнее изменение этой страницы: 2016-05-03; Просмотров: 670; Нарушение авторского права страницы