
- •Ф.Ф. Павлов технология программирования
- •Санкт-Петербург
- •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. Технология объектно-ориентированного
8.2. Система диалоговых окон и элементов управления
Цель работы - создание ресурса диалогового окна; создание класса диалогового окна; связывание элементов управления диалогового окна с функциями-обработчиками сообщений; связывание переменных класса с элементами управления окна; отображение диалогового окна в приложении (лаб. работа lab3_2 – [7, c.32]).
В окне редактора диалоговых окон имеется палитра с инструментами (стандартными элементами управления).
Алгоритм работы приложения состоит в следующем:
- Щелкнуть на включенной заранее в меню File новой команде Dialog. Появляется диалоговое окно со стандартными кнопками OK и Cancel, с добавленной кнопкой с именем Output и добавленным пустым текстовым полем.
- Щелкнуть на кнопке Output. В текстовом поле появляется строка “Диалоговое окно”.
- Щелкнуть на кнопке OK. Диалоговое окно исчезает, появляется главное окно приложения, в котором выводится содержимое текстового поля “Диалоговое окно”.
Для создания приложения lab3_2 выполнить следующие этапы.
- создание проекта lab3_2 (SDI-приложение),
- включение новой команды Dialog в меню File,
- создание ресурса диалогового окна,
- создание класса диалогового окна,
- связывание элементов управления диалогового окна с
функциями-обработчиками сообщений,
- связывание переменных класса с элементами окна,
- переопределение функции для кнопки ОК,
- отображение диалогового окна,
Скомпилировать, запустить и протестировать приложение.
Контрольные вопросы
Как создать меню?
Что такое клавиши ускоренного вызова, акселераторы?
Зачем нужны новые кнопки на панели инструментов?
Как создать диалоговое окно в программе?
Каким образом добавляются элементы управления в диалоговое окно?
Чем отличаются переключатели и флажки?
Объясните сущность линейного регулятора.
Чем отличаются списки и комбинированные поля?
Тема 9. Программирование файловой обработки
9.1. Файловая обработка объектов класса mfc
Сериализация – это процесс сохранения и загрузки данных с диска. В VC++ имеются встроенные средства управления файлами, обеспечивающие автоматизацию сериализации собственных типов данных. Созданное с помощью AppWizard приложения имеют встроенное меню File с командами New, Open, Save as.
Функции-обработчики команд меню File сначала открывают файл, а затем вызывают элемент-функцию Serialize() класса документа приложения. Эта функция и выполняет чтение и запись данных. Пример:
void Clab4_1Doc::Serialize (CArchive& ar)
{
if (ar.IsStoring()) // cохранение (запись на диск)
{// добавить код сохранения
ar<< DataObject;
}
else
{// добавить код загрузки
ar>> DataObject;
}
}
Функция принимает ссылку на объект класса CArchive. Класс CArchive осуществляет передачу документов в архив и обратно.
Функции базового ввода-вывода класса CArchive:
- UINT Read(void* lpBuf, UINT nMax); //чтение с диска
- void Write(const void* lpBuf, UINT nMax); //запись на диск
- операторы <<,>>. //операторы записи и чтения;
- Bool ReadString(CString& pString); //чтение строки
- Bool WriteString(CString& pString); //запись строки
- GetFile(); //статус
- IsLoading(); //проверка загрузки: не 0 - хорошо; 0 - плохо
- IsStoring(); //проверка сохранения: не 0 - хорошо; 0 - плохо
Элемент-функция IsStoring () класса CArchive возвращает true, если файл открыт на запись, и false, если файл открыт на чтение.
Функция Serialize () может записывать и читать с помощью операций вставки << и извлечения >> данные, имеющие базовые типы данных: int, float, double, BYTE, WORD, LONG, DWORD.
Итак, для сериализации объектов классов MFC необходимо выполнить следующие операции:
- Создание элементов-данных класса документа.
- Инициализация этих элементов-данных в функциях класса документа OnNewDocument () и в конструкторе.
- Организация отображения документа в функции OnDraw.
- Включение элементов-функций класса представления, обеспечивающих редактирование документа.
- Добавление кода функции Serialize ().
Цель работы - чтение и запись с диска стандартных объектов MFC; работа команд меню File (лаб. работа lab4_1 – [7, c.41]).
Для создания приложения необходимо выполнить следующие операции:
- добавление элементов-данных класса документа, которые будут записываться и читаться с диска;
- инициализация этих элементов-данных в функции OnNewDocument() класса документа и в конструкторе документа;
- ввод данных с клавиатуры, если это необходимо, например, в функции OnChar() для ввода символов строки;
- организация вывода документа (функция OnDraw());
- включение в класс вида функций редактирования;
- модернизация функции Serialize() т.е. включение операторов, обеспечивающих сохранение (Save) и загрузку (Open) данных, которые представляют собой содержание документа.
Для создания приложения lab4_1 выполнить этапы:
- создание проекта lab4_1 (SDI-приложение),
- добавление элемента - данного класса документа,
- инициализация элемента-данного в конструкторе
класса и в OnNewDocument(),
- ввод данных с клавиатуры,
- вывод текущего состояния документа,
- сообщение приложению об изменении данных,
- модификация функции Serialize().
Скомпилировать, запустить и протестировать приложение.