Описание
Эта программа сочетает в себе функциональность будильника и сканера файлов. Она предназначена для выполнения двух основных задач: установки будильника на заданное время и последующего сканирования файлов в указанной директории в поисках файлов по заданному шаблону.
UML диаграмма
Особенности:
- Будильник: Пользователь может установить конкретное время, в которое программа активирует оповещение.
- Сканер файлов: После срабатывания будильника программа начинает рекурсивный поиск файлов в заданной директории, обрабатывает найденные файлы и, при необходимости, создаёт новые файлы с результатами.
Использование
- Настройка времени будильника:
- Пользователю будет предложено ввести часы и минуты для установки будильника. Время вводится в 24-часовом формате.
- Указание директории для поиска файлов:
- После настройки будильника пользователь должен указать директорию, в которой будет осуществляться поиск файлов.
Примеры использования:
Введите час будильника (0-23): 14
Введите минуты будильника (0-59): 30
Введите директорию для поиска файлов: C:\Documents
Технические требования:
- Система: MS-DOS или совместимая операционная система.
- Компилятор: Требуется компилятор C++, поддерживающий старые заголовочные файлы, такие как
iostream.h
,conio.h
,dos.h
.
Сборка и запуск:
Для компиляции программы используйте любой компилятор C++, который поддерживает заголовочные файлы, используемые в программе. Программа запускается из командной строки или через исполняемый файл в среде MS-DOS.
Важное замечание:
Эта программа написана для образовательных целей и предназначена для использования в среде, которая поддерживает старые стандарты и библиотеки C++. В современных операционных системах её функциональность может быть ограничена.
Некоторые пояснения по программе:
В этом коде на C++ реализованы две основные функции: будильник и рекурсивный поиск файлов для их обработки. Рассмотрим каждую часть кода по отдельности:
Подключение библиотек:
#include <iostream.h> #include <dos.h> #include <stdio.h> #include <conio.h> #include <string.h> #include <dir.h> #include <io.h> #include <fcntl.h> #include <sys\stat.h>
Здесь подключаются библиотеки для работы с вводом-выводом, обработки даты и времени, файловой системы и низкоуровневой работы с файлами.
Функция
alarmClock
:void alarmClock(int hour, int minutes) { struct time t; while(1) { gettime(&t); if(t.ti_hour == hour && t.ti_min == minutes) { cout << "__________\n" << "ALARM! It's time to start the task!" << endl; break; } } }
Функция
alarmClock
ожидает наступления определенного времени (часы и минуты), и когда это время наступает, выводит сообщение о срабатывании будильника и прерывает цикл.Функция
processFile
:void processFile(const char* filePath) { int Handle = open(filePath, O_RDONLY | O_BINARY); if (Handle != -1) { float data[10]; int bytesRead = read(Handle, data, sizeof(data)); cout << "Opened " << filePath << " and read " << bytesRead << " bytes.\n" <<"__________\n"; close(Handle); ... // Здесь идет дальнейшая обработка информации о файле и создание файла .res } else { cout << "Error opening " << filePath << "\n"; } }
В этой функции открывается файл, из него читаются данные, выводится информация о файле, меняется расширение файла на
.res
и создается новый файл с этим расширением, содержащий прочитанные данные.Функция
findFilesRecursively
:void findFilesRecursively(char* basePath, const char* searchPattern) { char path[200]; struct find_t fileInfo; ... // Здесь происходит рекурсивный поиск файлов по шаблону и их обработка }
Функция ищет файлы в указанной директории и её поддиректориях, соответствующие шаблону. Для файлов, не являющихся поддиректориями, вызывается
processFile
.Главная функция
main
:int main() { int hour, minutes; char directory[200]; cout << "Enter the hour of the alarm (0-23): "; cin >> hour; cout << "Enter the minutes of the alarm (0-59): "; cin >> minutes; cout << "Enter the directory to search for files: "; cin >> directory; alarmClock(hour, minutes); findFilesRecursively(directory, "virus.dat"); // Поиск файлов virus.dat getch(); // Ожидание нажатия клавиши return 0; }
В
main
собираются данные от пользователя (время будильника и директория поиска), активируется будильник и начинается поиск файлов с помощьюfindFilesRecursively
.
Описание
Программа сочетает в себе функциональность будильника и сканера файлов. Предназначена для выполнения двух основных задач, установки будильника на заданное время и последующего сканирования файлов в указанной директории в поисках файлов по заданному шаблону.