Лабораторная 1. Кросс-платформенная объектно-ориентированная информационная система

Разработать кроссплатформенную объектно-ориентированную информационную систему, аналогичную InfoWin и InfoLin. Система должна содержать абстрактный класс-модель TInfoModel, со следующим набором методов:

  1. вывод в стандартный поток вывода информационного блока по его идентификатору.
  2. получение имени файла для хранения информации по идентификатору информационного блока.
  3. сохранение блока информации в соответствующем ему файле.
  4. сохранение всей информации в соответствующих файлах.
  5. получение информации об авторе.
  6. получение информации об операционной системе.
  7. получение информации о процессоре
  8. получение информации об оперативной памяти.
  9. получение списка запущенных процессов.
  10. получение списка файлов и каталогов в домашнем каталоге пользователя и всех вложенных подкаталогах
  11. получение информации об сетевом адресе текущего компьютера
  12. получение информации о доступности двух рядом стоящих компьютеров
  13. получение списка учетных записей пользователей данного компьютера
Студент имеет право определять дополнительные методы и поля. Способ идентификации информационного блока студент выбирает самостоятельно (число, строка и т.п.) Следует самостоятельно определить, какие методы класса должны быть абстрактными, какие - статическими, какие полиморфными.
От указанного класса должны порождаться 3 новых, реализующие соответственно:
  • TInfoFile - Сбор необходимой информации из заранее подготовленных файлов.
  • TInfoCacheFile - Абстрактный класс для сбора необходимой информации с возможностью кэширования.
  • TInfoWin - Сбор необходимой информации в режиме реального времени с OC Windows (с кешированием) и сохранение информации в файлах.
  • TInfoLin - Сбор необходимой информации в режиме реального времени с OC Linux (с кешированиеми) и сохранение информации в файлах. Иерархия классов:
    TInfoModel->TInfoFile->TInfoCacheFile->TInfoWin
    				    |->TInfoLin
    
    Управление системой должно быть реализовано посредством разработанного класса TInfoSystem. Конструктор Create определяет класс, который будет применяться в дальнейшей работе (TInfoFile, TInfoWin, TInfoLin), создает и инициализирует соответствующий объект (формальный тип объекта - TInfoModel). Метод Run класса обеспечивает работу программы. Деструктор Destroy - завершает работу.

    Система должны быть кроссплатформенной, то-есть компилироваться без модификаций исходного кода под операционные системы Windows и Linux. При крайней необходимости разрешается пользоваться условной компиляцией. Любое применение условной компиляции должно быть обосновано.