|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Создание демонстрационной версии программы, работающей ограниченное число минут
Цель: создание консольного приложения для операционной системы Windows NT, работающего ограниченное число минут. Задание: написать программу согласно варианту задания. Программа должна работать 10 минут. В программе должно быть предусмотрено меню для выбора действий, одним из которых является завершение работы программы. Вариант 1. Программа должна определять, какие символы и сколько раз встречаются в заданном пользователем текстовом файле. Вариант 2. Программа должна производить перестановку символов в заданном пользователем текстовом файле. Размер блока перестановки 10 символов. Закон перестановки должен задаваться пользователем. Вариант 3. Программа должна производить замену русских букв на латинские в заданном пользователем текстовом файле.
Для создания консольного приложения необходимо создать проект CLR Concole Application или Win32 Concole Application (пункт меню File->New->Project). В поле «Name» ввести название проекта, в поле «Location» ввести путь к каталогу, где будет создан проект (для выбора каталога можно воспользоваться кнопкой «Browse…» (рисунок 1). Поле «Solution Name» заполнится автоматически. Рисунок 1 Созданный проект будет включать в себя файлы: app.rs, resource.h – в них будут определены ресурсы, которые используются в программе. Эти файлы создаются автоматически, в них ничего изменять не надо; – stdafx.h и stdafx.cpp – эти файлы создаются автоматически для формирования заголовка предкомпиляции; – app.ico – иконка создаваемой программы; – «имя созданного проекта». cpp – файл, в котором содержится текст программы; – AssemblyInfo.cpp – в нем записаны атрибуты, которые необходимы для изменения метаданных ассемблера при создании исполняемого файла. Этот файл создается автоматически, в нем ничего изменять не надо; – ReadMe.txt – в нем записана краткая информация о файлах проекта. После создания проекта, например с именем «222», появится файл 222.срр со следующим текстом. // 222.cpp: main project file. #include "stdafx.h" using namespace System; int main(array<System::String ^> ^args) { Console::WriteLine(L"Hello World"); return 0; } Созданная программа выводит в консоль строку «Hello World». Соответственно, вместо строки Console::WriteLine(L"Hello World"); необходимо будет писать текст своей программы. Для ограничения времени работы программы необходимо создать дополнительный поток, в котором будет проверяться, сколько времени прошло от ее запуска. Для этого можно использовать класс Timer. В этом классе определены следующие свойства: Interval – интервал времени в миллисекундах, через который сработает таймер; Enabled – разрешение работы таймера. Если значение свойства равно true, работа разрешена, если false – запрещена; AutoReset – разрешение цикличности работы таймера. Если значение свойства равно false, то таймер сработает только один раз через заданный интервал времени. Если значение свойства равно true, то таймер будет срабатывать каждый раз по прошествии заданного интервала времени; Класс Timer порождает событие Elapsed – срабатывания таймера. К этому событию необходимо назначить функцию-обработчик, в которой прописать действия, которые необходимо выполнить по прошествии заданного интервала времени. Таким действием может быть завершение работы программы. Пример программы. Программа работает только три секунды. Она выводит в консоль надпись Press the Enter key to exit the program и ожидает нажатия любой клавиши. В программе создан новый класс Timer1 для описания таймера и обработчика события Elapsed. 1. #include "stdafx.h" //строка появилась автоматически 2. #using <system.dll> //библиотека для работы с таймером 3. #include <stdlib.h> //библиотека для работы с таймером 4. using namespace System; //строка появилась автоматически 5. using namespace System::Timers; //пространство имен для работы с таймером 6. 7. public ref class Timer1 //обявление класса Timer1 8. { 9. public: 10. static void Demo()//метод для инициализации таймера 11. {//создание таймера 12. System::Timers::Timer^ aTimer = gcnew System::Timers::Timer; 13. // назначить событию Elapsed обработчик OnTimedEvent 14. aTimer->Elapsed += gcnew ElapsedEventHandler(Timer1::OnTimedEvent); 15. aTimer->Interval = 3000; // Установить интервал времени в 3 секунды 16. aTimer->Enabled = true; //разрешить работы таймера a. aTimer->AutoReset=false; //таймер будет срабатывать только один раз 17. // деструктор таймера будет вызываться только после окончания работы 18. //метода Demo. 19. GC::KeepAlive(aTimer); 20. } 21. private: 22. //обработчик для события Elapsed 23. static void OnTimedEvent(Object^ /*source*/, ElapsedEventArgs^ /*e*/) 24. { 25. exit(1);//завершение программы 26. } 27. }; //конец объявления класса Timer1 28. int main()//основная функция программы 29. { 30. Timer1::Demo();//запуск таймера 31. //вывод надписи в консоль 32. Console::WriteLine("Press the Enter key to exit the program."); 33. Console::ReadLine();//ожидание нажатия клавиши 34. }
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.006 сек.) |