Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LAB_TP_2013.doc
Скачиваний:
82
Добавлен:
02.06.2015
Размер:
15.36 Mб
Скачать

Введение

При составлении данного учебно-методического пособия была поставлена задача – совместить изучение технологий программирования на языкеC/C++ – структурного, модульного и объектно-ориентированного с изучением и получением навыков работы в интегрированной среде разработки (ИСР) приложенийC++ Builder.

Лабораторные работы предваряет ознакомление с ИСР на примере разработки проекта для расчетов по формуле, содержащей математические функции. Сначала пользователь получает сведения о содержании проекта, его файлах, об основном окне ИСР, главном меню, инструментальных панелях, Дереве Объектов,Инспекторе Объектов. Затем пользователь создает проект, получает представление о библиотеке визуальных компонентов и её применении.

В лабораторной работе «Формирование и обработка динамических массивов» изучается работа с динамической памятью в процессе обработки одномерного и двумерного массивов. В работе используются компоненты: многостраничная панель, компоненты ввода целых чисел, индикаторы, таблица, компонент для отображения хода длительных процессов, полоса состояния, компоненты для построения графиков. Функции пользователя размещаются в файле реализации модуля формы.

В лабораторной работе «Текстовые файлы, символы, строки» используются многострочные окна редактирования для работы с текстами в простом и обогащенном форматах, компоненты-диалоги для работы с текстовыми файлами, компонент – всплывающее меню. В коде использованы функции работы со строками разных типов. Функции пользователя размещаются в файле реализации модуля формы.

Лабораторная работа «Сортировки числовых массивов. Рекурсивные функции» содержит изложение процесса создания проекта для классических сортировок числовых массивов с сохранением результатов в графических файлах. Для реализации сортировок предложены рекурсивные функции; в процессе выполнения работы вскрывается их основной недостаток – переполнение стека. В проекте разрабатывается и используется класс; объявление класса размещено в заголовочном файле модуля формы, а реализация класса – в файле реализации модуля формы. Использованы новые компоненты: главное меню, управляющая кнопка с пиктограммой, панель общего назначения. Студентам предлагается дополнить проект функциями сортировок с использованием циклов.

Лабораторная работа «Способы шифрования и дешифрования текста» предназначена для изучения алгоритмов и приложения, позволяющего шифровать и дешифровать тексты по треугольнику Паскаля, методом Гронсфельда и по матрице. Приложение содержит класс шифрования/дешифрования текста. В проекте использован модуль, не связанный с формой; объявление класса находится в заголовочном файле, а реализация класса – в файле реализации данного модуля. Результаты шифрования и информация о способе шифрования сохраняются в бинарных файлах. Для представления информации о программе и её разработчике в проект включена дополнительная форма. В приложении впервые использована инструментальная панель на основе простой панели с расположенными на ней кнопками с фиксацией и пиктограммами. Показано использованиеИсследователя классов.

В лабораторной работе «Преобразование и вычисление арифметических выражений с помощью стека» изложены алгоритмы преобразования инфиксной записи арифметических выражений в постфиксную и префиксную записи и алгоритм вычисления значения выражения по постфиксной записи. Представлены коды для реализации алгоритмов. Пользовательские типы и класс помещены в файл, не связанный с формой. В проекте впервые использованы интерфейсные компоненты: список изображений, диспетчер действий, инструментальная панель. Изложен порядок диспетчеризации действий. Цель данной лабораторной работы состоит в изучении динамической структуры данных – стек и типичного примера использования стека.

Лабораторная работа «Очередь приоритетов» представляет собой пример построения проекта для изучения реализации динамической структуры данных на основе массива структур. В проекте использован структурный тип и два класса: первый – для заявок, а второй – для очереди заявок. Продолжено изучение использования диспетчера действий при проектировании интерфейса проекта. В заключение студентам предлагается модифицировать приложение путем переноса данных-элементов из закрытых разделов в открытые разделы классов.

В лабораторной работе «Двунаправленный неоднородный список с однородными подсписками» продолжается изучение динамических структур данных на основе использования взаимосвязанных блоков динамической памяти, выделяемой по мере поступления разнотипных данных во время выполнения приложения. В проекте используется четыре пользовательских класса: базовый, два производных и класс, интегрирующий базовый и производные классы. В интерфейсной части проекта впервые использован более мощный диспетчер действий - с полосами действий: полосой главного меню и инструментальными панелями.

В лабораторной работе «Бинарное упорядоченное дерево» изучается нелинейная динамическая структура данных – бинарное упорядоченное дерево поиска. В проекте использованы два класса: для узла дерева и для бинарного дерева, причем последний объявлен дружественным первому. Даны основные функции работы с деревом и продемонстрировано их использование. Интерфейс подобен интерфейсу в предыдущей работе.

В лабораторной работе «Иерархия : точка, круг, цилиндр» изучается пример иерархии с прямым открытым наследованием. Для демонстрации возможностей полиморфизма в лабораторной работе рассмотрено два варианта иерархии. Виртуальные функции находятся во втором варианте. В первом варианте для отображения объектов использовано приведение типов указателей базовых классов к указателям производных классов, во втором – полиморфизм, реализованный при помощи виртуальных функций-элементов.

Ознакомление с Интегрированной Средой Разработки (ИСР) C++Builder 6

Интегрированная Среда Разработки(IntegratedDevelopmentEnvironment–IDEилиИСР) – это средав которой есть все необходимое для быстрой разработки (проектирования) сложных прикладных программ (приложений)ИСР интегрирует в себе редактор кодовотладчикинструментальные панелиредактор изображенийинструментарий баз данныхчто позволяет проектироватьзапускать и тестировать приложения

Проекты C++Builder

Проект C++Builderсостоит из форммодулей с их заголовочными файлами и файлами реализацииустановок параметров проектаресурсов и тдВся эта информация размещается в файлахМногие из этих файлов автоматически создаютсяC++Builderв процессе построения приложения:

Головной файл

проекта (.cpp)

C++Builder создает файл .cpp для головной функции WinMain, инициирующей приложение и запускающей его на выполнение

Файл опций проекта (.bpr)

Этот текстовый файл содержит установки опций проекта и указания на то какие файлы должны компилироваться и компоноваться в проект Файл сохраняется в формате XML

Файл ресурсов проекта (.res)

Двоичный файл содержащий ресурсы проекта: пикто-граммы курсоры и тп По умолчанию содержит только пиктограмму проекта Может дополняться с помощью Редактора Изображений

Файл реализации модуля (.cpp)

Каждой создаваемой пользователем форме соответствует текстовый файл реализации модуля используемый для хранения кода Пользователь может создавать модули не связанные с формами

Заголовочный файл модуля (.h)

Каждой создаваемой пользователем форме соответствует не только файл реализации модуля но и его заголовочный файл с описанием класса формы Пользователь может и сам создавать необходимые заголовочные файлы

Файл формы (.dfm)

Это двоичный или текстовый файл который C++Builder создает для хранения информации о фор-мах пользователя Пользователь может смотреть этот файл в текстовом виде или в виде формы Каждому файлу формы соответствует файл модуля (.cpp)

Заголовочный файл компонента (.hpp)

Файл создается при создании пользователем нового компонента Пользователю также часто приходится подключать к проекту эти файлы из библиотеки компонентов C++Builder расположенные в каталоге Include\VCL

Файл группы проектов (.bpg)

Текстовый файл создаваемый в C++Builder при созда-нии пользователем группы проектов

Файлы пакетов (.bpl и .bpk)

Эти двоичные файлы используются C++Builder при ра-боте с пакетами: .bpl – файл самого пакета .bpk – файл определяющий компиляцию и компоновку пакета

Файл рабочего стола проекта (.dsk)

В этом текстовом файле C++Builder хранит информа-цию о последнем сеансе работы с проектом: открытых окнах их размерах и положении Благодаря этому файлу в новом сеансе работы пользователь сразу видит тот же экран который был в предыдущем сеансе Файл создается только при включении опции Опции автосохранения |Рабочий стол проекта ( на странице Предпочтения–многостраничного окна Опции среды общих настроек среды вызываемого командой Инструменты|Опции среды)

Файлы резервных копий (.~bp, .~df, .~cp, .~h)

Это соответственно файлы резервных копий для файлов проекта формы реализации модуля и заголовочного Если пользователь что-то безнадежно испортит в своем проекте он может соответственно изменить расширения этих файлов и таким образом вернуться к предыдущему не испорченному варианту

Следующая группа файлов создается компилятором:

Исполняемый

файл (.exe)

Это исполняемый файл проектируемого приложения Он является автономным исполняемым файлом для которого больше ничего не требуется если только пользователь не использует библиотеки содержащиеся в пакетах DLL, OCX и тд

Объектный файл модуля (.obj)

Это откомпилированный файл модуля (.cpp) который компонуется в окончательный исполняемый файл

Динамически присоединяемая библиотека (.dll)

Этот файл создается в случае если пользователь проектирует свою собственную DLL

Файл таблицы символов (.tds)

Двоичный файл используемый отладчиком в процессе отладки приложения

Файлы выбороч-ной компоновки (.il?)

Файлы с расширением начинающемся с il (.ilc, .ild, .ilf, .ils), позволяют повторно компоновать только те файлы которые были изменены после последнего сеанса

C++Builderможет использовать файлыWindows:

Файлы справки (.hlp)

Это стандартные файлы справки Windows, которые мо-гут быть использованы приложением C++Builder

Файлы изображе-ний или графи-ческие файлы (.wmf, .bmp, .ico)

Эти файлы обычно используются в приложениях Win-dows для создания привлекательного и дружественного пользовательского интерфейса

Из всех перечисленных файлов (а могут использоваться еще и другие) важнейшими являются файлы .cpp,.h,.dfm,.bpr,.res. Это файлыкоторые необходимо перенести на другой компьютерчтобы продолжить на нем работу над проектомВсе остальные файлыC++Builderсоздаст автоматически в процессе компиляции проекта и его отладки

Главной частью приложения является головной файл .cpp (файл проектаисходный файл проекта) с функциейWinMain, с которой начинается выполнение программы и которая обеспечивает инициализацию других модулейОна создается и модифицируетсяC++Builderавтоматически в процессе разработки приложенияИмякоторое дает пользователь файлу проектакогда сохраняет егостановится именем исполняемого файла

Все изменения файла проекта при добавлении новых формизменении имен форм и тпподдерживаютсяC++BuilderавтоматическиДля просмотра исходного файла проекта надо выполнить командуПроект|Вид источника. Но обычно просмотр не требуется

Информация о формах C++Builderхранится в трех файлах:.dfm,.cpp, и.h. Информация о внешнем виде формыее размерахместоположении на экране и тдхранится в файле с расширением.dfm, который по умолчанию имеет текстовый видДля хранения файла формы в двоичном виде нужно щелкнуть на форме правой кнопкой мышии во всплывшем меню выключить индикаторТекст DFM.

Основной файлс которым работает пользователь– это файл реализации модуля.cpp, в котором хранится кодсоответствующий данной формеВ текстовом заголовочном файле с расширением.h хранится объявление класса используемой формыВесь основной текст этого файлаC++Builderформирует автоматически по мере проектирования пользователем формыНо иногда требуется вручную вводить в этот файл объявления каких-то функцийтиповпеременныхВC++Builderзаголовочный файл загружается в окноРедактора Кодаавтоматически

Имена всех файловописывающих модульодинаковыЭто имя задает пользователькогда в первый раз сохраняет модуль

Рекомендуется создавать в приложении модульне связанный с формойв который помещают описания типовконстантпеременныхфункцийиспользуемых другими модулямиЭто способствует хорошей структурированности программыподдерживает единое понимание типовконстантпеременных во всех модулях и уменьшает количество взаимных ссылок модулей друг на другаТем самым упрощается модификация и сопровождение программы

Чтобы создать в проекте новый модульне связанный с какой-либо формойнадо выполнить командуФайл|Новый|Другоеи в открывшемся многостраничном окнеНовые элементыдважды щелкнуть на пиктограммеМодуль страницыНовый.

По окончании работы над проектом следует удалить вспомогательные файлы – .obj,.res, .tds, .il?,~*. Объем файлов.tdsможет быть очень большим (мегабайты)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]