Лабораторная 1. Кросс-платформенная объектно-ориентированная информационная система
Разработать кроссплатформенную объектно-ориентированную информационную систему, аналогичную
InfoWin и
InfoLin.
Система должна содержать абстрактный класс-модель TInfoModel, со следующим набором методов:
- вывод в стандартный поток вывода информационного блока по его идентификатору.
- получение имени файла для хранения информации по идентификатору информационного блока.
- сохранение блока информации в соответствующем ему файле.
- сохранение всей информации в соответствующих файлах.
- получение информации об авторе.
- получение информации об операционной системе.
- получение информации о процессоре
- получение информации об оперативной памяти.
- получение списка запущенных процессов.
- получение списка файлов и каталогов в домашнем каталоге пользователя и всех вложенных подкаталогах
- получение информации об сетевом адресе текущего компьютера
- получение информации о доступности двух рядом стоящих компьютеров
- получение списка учетных записей пользователей данного компьютера
Студент имеет право определять дополнительные методы и поля.
Способ идентификации информационного блока студент выбирает самостоятельно (число, строка и т.п.)
Следует самостоятельно определить, какие методы класса должны быть абстрактными, какие - статическими, какие полиморфными.
От указанного класса должны порождаться 3 новых, реализующие соответственно:
TInfoFile - Сбор необходимой информации из заранее подготовленных файлов.
TInfoCacheFile - Абстрактный класс для сбора необходимой информации с возможностью кэширования.
TInfoWin - Сбор необходимой информации в режиме реального времени с OC Windows (с кешированием) и сохранение информации в файлах.
TInfoLin - Сбор необходимой информации в режиме реального времени с OC Linux (с кешированиеми) и сохранение информации в файлах.
Иерархия классов:
TInfoModel->TInfoFile->TInfoCacheFile->TInfoWin
|->TInfoLin
Управление системой должно быть реализовано посредством разработанного класса TInfoSystem. Конструктор Create определяет
класс, который будет применяться в дальнейшей работе (TInfoFile, TInfoWin, TInfoLin), создает и инициализирует соответствующий объект
(формальный тип объекта - TInfoModel).
Метод Run класса обеспечивает работу программы. Деструктор Destroy - завершает работу.
Система должны быть кроссплатформенной, то-есть компилироваться без модификаций исходного кода под операционные системы Windows и Linux.
При крайней необходимости разрешается пользоваться условной компиляцией. Любое применение условной компиляции должно быть обосновано.