- •Ф.Ф. Павлов технология программирования
- •Санкт-Петербург
- •090103 – Организация и технология защиты информации
- •Содержание
- •Раздел 1 Создание программных приложений………………..…..7
- •Тема 1. Технология программирования. Основные понятия........7
- •Тема 3. Объектно-ориентированный подход
- •Тема 4 Объектно-ориентированное проектирование
- •Раздел 3 «Перспективные направления в области создания технологий программирования» содержит 3 темы: технология ActiveX, технологии доступа к базам данных, технологии для работы в Internet.
- •Раздел 1. Создание программных приложений
- •Тема 1. Технология программирования.
- •1.1. Этапы эволюции технологии программирования
- •1.2. Жизненный цикл и этапы разработки программ
- •1.3. Постановка задачи и спецификация программы
- •1.4. Проектирование и реализация программы
- •2.1 Структура программы
- •2.2 Структура функции
- •2.3. Типы данных
- •2.4. Средства управления экраном и клавиатурой
- •2.5 Средства управления файлами
- •Тема 3. Объектно-ориентированный подход
- •3.1. Сущность объектно-ориентированного подхода
- •3.2. Инкапсуляция
- •3.3. Наследование
- •3.4. Полиморфизм
- •Тема 4. Объектно-ориентированное проектирование
- •4.1. Постановка задачи и определение спецификаций
- •4.2. Проектирование структуры программы
- •4.3. Проектирование файлов интерфейсов классов
- •4.4. Проектирование файлов реализации классов
- •Раздел 2. Особенности программирования в Windows
- •5.1. Система окон разработки и система меню
- •5.2. Библиотека классов mfc
- •5.3. Сообщения – реакция на события
- •Тема 6. Создание Windows-приложений
- •6.1. Консольные приложения
- •6.4. Диалоговые приложения
- •Тема 7. Ввод-вывод информации
- •7.1. Управление клавиатурой
- •7.2. Управление курсором
- •7.3. Управление мышью
- •Тема 8. Программирование интерфейса приложений
- •8.1. Система меню
- •8.2. Система диалоговых окон и элементов управления
- •Тема 9. Программирование файловой обработки
- •9.1. Файловая обработка объектов класса mfc
- •9.2. Файловая обработка объектов классов пользователя
- •9.3. Файловая обработка с классом cFile
- •Тема 10. Технология программирования в Widows
- •10.1. Проектирование структуры программы,
- •10.2. Создание классов предметной области
- •10.3. Создание диалоговых окон
- •10.4. Создание диалоговых окон базы справочных
- •10.5. Создание ведомости результатов
- •Раздел III. Прогрессивные технологии
- •Тема 11. Технология ActiveX
- •11.1. Концепция технологии ActiveX
- •11.2. Создание приложения-контейнера
- •11.3. Создание приложения-сервера
- •Тема 12. Поддержка баз данных
- •12.1. Технологии доступа к данным
- •12.2. Создание приложения с базой данных
- •Тема 13. Программирование для Internet
- •13.1. Технологии для работы в Internet
- •13.2. Приложение в стиле браузера
- •13.3. Приложение с протоколом http в WinInet
- •13.4. Приложение с протоколом ftp в WinInet
- •Раздел 1 «Создание программных приложений»:
- •Раздел 2 «Особенности программирования в Windows»:
- •Раздел 3 «Прогрессивные технологии программирования»:
- •Извлечение из рабочей программы дисциплины
- •Утверждаю
- •Рабочая программа
- •Технология программирования
- •Санкт-Петербург
- •4. Содержание разделов и тем дисциплины
- •Раздел 1. Создание программных приложений
- •Тема 1. Технология программирования. Основные
- •Тема 4. Технология объектно-ориентированного
9.2. Файловая обработка объектов классов пользователя
Рассмотрим сериализацию данных классов пользователя.
Пусть создан новый класс пользователя СData. Включим в класс документа Clab4_2Doc объект нового класса DataObject:
Попытаемся выполнить все операции для сериализации. Проблема возникает в том, что нельзя воспользоваться функцией Serialize(). Придется запрограммировать процесс сериализации.
Общий принцип ООП состоит в том, что объект класса должен работать со своими собственными данными. Поэтому, необходимо добавить элемент-функцию Serialize () в новый класс.
Для сериализации данных класса пользователя необходимо выполнить следующие операции:
- Объявить класс, производный от CObject.
- В объявление класс включить макрос DECLARE_SERIAL (<имя класса>), служащий для включения дополнительных членов, которые необходимы для сериализации.
- Включить в реализацию класса (в файл CData.cpp) макрос IMPLEMENT_SERIAL. Этот макрос сопряжен с предыдущим: он обеспечивает реализацию сериализации. Три аргумента макроса – это имя класса, имя базового класса, номер схемы (1 или 0).
- Перегрузить функцию Serialize (), унаследованную от базового класса, т.е. добавить функцию Serialize () в класс пользователя.
//CData.h
сlass CData : public CObject
{//...
CString data;
DECLARE_SERIAL (CData) ;
…
void Serialize (CArchive& archive) ;
} ;
//CData.cpp
void CData :: Serialize (CArchive& archive) ;
{
CObject :: Serialize (archive) ; // Стандартный прием.
if (archive.IsStoring())
{
archive<<data ; // data - элемент класса CData
}
else
{
archive>>data ;
}
}
IMPLEMENT_SERIAL (CData,CObject,0) ;
Для элементов класса CData сериализация выполнена.
Для выполнения сериализации объекта класса (в нашем примере это DataObject) следует вызвать функцию Serialize () класса CData внутри функции Serialize () документа, например,:
void Clab4_2Doc :: Serialize (CArchive& ar)
{
DataObject.Serialize(ar) ;
}
Цель работы - чтение и запись с диска не стандартных объектов MFC, объектов классов пользователя (лаб. работа lab4_2 – [7, c.43]). Пусть имеется собственный класс CData. Выполнить файловую обработку.
Для создания приложения lab4_2 выполнить этапы:
- Создание проекта lab4_2 (SDI-приложение),
- добавление нового класса в проект,
- ввод данных с клавиатуры,
- вывод текущего состояния документа,
- модификация собственного класса,
- создание новой версии Serialize() собственного класса,
- вызов Serialize нового класса внутри Serialize() документа.
Скомпилировать и протестировать приложение
9.3. Файловая обработка с классом cFile
Метод обработки файлов с использованием класса CFile позволяет создавать базы данных любого типа, иметь любой доступ к данным файла.
Цель работы - использование класса CFile для файлов любых типов (лаб. работа lab4_3 – [7, c.47]).
Приложения на базе диалогового окна не имеют класса документа и встроенного меню File с командами Save As, Open, New. Часто необходимы нестандартные операции файловой обработки, не соответствующие технологии сохранения и восстановления данных.
Класс CFile имеет все функции, необходимые для обработки файлов любых типов с последовательным или прямым доступом.
Создадим приложение на базе диалогового окна.
Начальное состояние окна – два текстовых поля и кнопка с надписью Запись и чтение файла. В первом верхнем текстовом поле имеется строка с результатами олимпиады: “1 Иванов 20 2 Петров 19 3 Сидоров 18”, второе нижнее текстовое поле – пустое.
При щелчке на кнопке Запись и чтение файла строка записывается в файл spisok.dat, затем читается из файла и выводится во второе текстовое поле.
Для создания приложения lab4_3 выполнить этапы:
- создание проекта lab4_3 (Диалоговое приложение),
- объявление переменных для хранения данных,
Спроектируем содержимое файла данных spisok.dat с фиксированной длиной записи 20 байтов:
Номер записи Место Фио Баллы
0 1 Иванов 20
1 2 Петров 19
2 3 Сидоров 18
Объявим для хранения данных в ОП массив char OutString[3][20], а для вывода - временный массив char InString[20].
- добавление элементов управления в диалоговое окно,
- связывание элементов управления диалогового окна с
функциями-обработчиками сообщений
- связывание переменных класса с элементами окна,
- запись в файл,
- чтение файла,
Скомпилировать, запустить и протестировать приложение.
Контрольные вопросы
Что такое сериализация?
Как сделать сериализацию для стандартных объектов?
Как сделать сериализацию для нестандартных объектов?
Как пользоваться классом CFile для файловой обработки?
Перечислите этапы обработки с классом CFile.
Объясните назначение основных функций класса CFile.