Автор: Пользователь скрыл имя, 23 Марта 2012 в 14:31, курсовая работа
В идеальном случае подход к разработке программы делится на три части: вначале получить ясное понимание задачи, потом выделить ключевые идеи, входящие в ее решение, и наконец выразить решение в виде программы.
Объект - это совокупность данных и способов работы с ними. Инкапсуляция - это механизм объединения и защиты данных и кода. Объект - это то, что поддерживает инкапсуляцию. Объединение кода и данных представляет собой "черный" ящик. Объект характеризуется свойствами. Свойства объекта - это данные, методы обра-щения с данными объекта, события, на которые объект может реагировать.
1. Ключевые положения объектно-ориентированного программирования.
2. Расширения файлов, принятые в среде разработки C++Builder 6.
3. Алгоритм создания программного кода на C++.
4. Создание и сохранение нового проекта.
5. Открытие и использование менеджера проектов.
6. Планирование работ - список to-do list.
7. Задание информации о версии программы.
8. Работа с формами.
1. Включение в проект новой формы.
2. Просмотр форм и модулей без включения их в проект.
3. Размещение компонентов на форме.
4. Repository - Депозитарий - Хранилище форм и проектов.
9. Инструментальные средства поддержки разработки кода.
1. Применение Code Insight - знатока кода.
2. Исследователь классов ClassExplorer.
3. Поддержка разработки, встроенная в окно редактора кода.
4. Справочная система C++Builder и программа ее конфигурирования OpenHelp.
10. Отладка приложений.
1. Компиляция и компоновка проекта.
2. Сообщения компилятора и компоновщика.
3. Выполнение приложения по шагам.
4. Точки прерывания.
5. Использование окна инспектора отладки bug Inspector.
11. Разработка графического интерфейса пользователя.
1. Требования к интерфейсу пользователя приложений для Windows.
1. Ключевые положения объектно-ориентированного программирования.
2. Расширения файлов, принятые в среде разработки C++Builder 6.
3. Алгоритм создания программного кода на C++.
4. Создание и сохранение нового проекта.
5. Открытие и использование менеджера проектов.
6. Планирование работ - список to-do list.
7. Задание информации о версии программы.
8. Работа с формами.
1.
2.
3.
4.
9. Инструментальные средства поддержки разработки кода.
1.
2.
3.
4.
10. Отладка приложений.
1.
2.
3.
4.
5.
11. Разработка графического интерфейса пользователя.
1.
Приложение № 1 "Палитра компонентов"
В идеальном случае подход к разработке программы делится на три части: вначале получить ясное понимание задачи, потом выделить ключевые идеи, входящие в ее решение, и наконец выразить решение в виде программы.
Объект - это совокупность данных и способов работы с ними. Инкапсуляция - это механизм объединения и защиты данных и кода. Объект - это то, что поддерживает инкапсуляцию. Объединение кода и данных представляет собой "черный" ящик. Объект характеризуется свойствами. Свойства объекта - это данные, методы обра-щения с данными объекта, события, на которые объект может реагировать. Данные объекта представляются полями или записями. Внутри объекта коды и данные могут быть закрытыми (private) для этого объекта или от-крытыми (public). Источниками событий могут быть действия пользователя или результат работы самих объ-ектов. К числу действий пользователя можно отнести: перемещение курсора мыши, нажатие кнопок мыши или клавиш клавиатуры. Обработчик событий отлавливает прерывания осуществляемых действий пользователя или работы других объектов и согласно свойств и методов, определенных у объекта, выполняет запрограммированное событие. Если событие произошло, то выводится соответствующее сообщение.
В C++Builder все объекты компонентов размещаются в объектах - формах. Для каждой формы, которую вы проектируете в своем приложении, C++Builder создает отдельный модуль. Именно в модулях и осуществляется программирование задачи. В обработчиках событий объектов - форм и компонентов, вы помещаете все свои алгоритмы. В основном они сводятся к обработке информации, содержащейся в свойствах одних объектов, и задании по результатам обработки свойств других объектов. При этом вы постоянно обращаетесь к методам различных объектов.
1. Структура программы является динамическим образованием, меняющемся в процессе работы программы.
1.1. С целью организации динамического распределения памяти во все объекты заложены методы их создания - Конструкторы и уничтожения - Деструкторы.
1.2. Включать объекты в свою программу можно двумя способами:
- вручную включать в нее соответствующие операторы (это приходится делать не очень часто) или
- путем визуального программирования, используя заготовки - компоненты.
1.2.1. Типы объектов и, в частности, компонентов библиотек C++Builder оформляются в виде классов. Классы - это типы, определяемые пользователем. В классах описываются свойства объекта, его методы и события, на которые он может реагировать.
1.3. Существует возможность создавать модули, не привязанные к конкретным формам. Чтобы создать в Вашем проекте новый модуль, не связанный с какой-либо формой, надо выполнить команду File => New => Other и в открывшемся окне New Items на странице New щелкнуть на пиктограмму Unit.
1.3.1. Полезно создавать в приложении модуль, не связанный с формой, в который помещать описание типов данных, констант, переменных, функций, используемых другими модулями.
2. В С++Builder можно разрабатывать прикладные программы двух видов - автономные выполняемые файлы *.exe и программы с поддержкой пакетов (packages) времени выполнения.
2.1. Во время отладки надо включать поддержку пакетов времени выполнения:
Project => Options => страница Packages => (1), (2):
(1) включить индикатор Build with runtime packages,
(2) включение индикатора Default обеспечит статус установки по умолчанию для всех ваших будущих проектов.
2.2. При заключительной компиляции надо выключить опцию поддержки пакетов, если Вы намерены передавать пользователям автономный выполняемый модуль.
3. С целью создания уникальных программ старайся придерживаться правила повторного использования кода.
Таблица № 1.
Расширения файлов С++Builder 6.
П/п | Расширение | Краткое описание файла с расширением |
1 | *.cpp | Файл головной функции WinMain |
2 | *.bpr | Файл установок опций проекта |
3 | *.res | Файл, содержащий ресурсы проекта |
4 | *.cpp | Файл реализации модуля |
5 | *.h | Заголовочный файл модуля |
6 | *.dfm | Файл формы, которой соотвествует файл модуля *.cpp |
7 | *.hpp | Заголовочный файл компонента |
8 | *.bpg | Файл группы проектов |
9 | *.bpl | Файл самого проекта (файл пакета) |
10 | *.bpk | Файл, определяющий компиляцию и компоновку пакета (файл пакета) |
11 | *.dsk | Файл рабочего стола проекта (файл создается, если включена опция оболочки Autosave Options / Project desktop |
12 | *.~bp | Файл резервной копии |
13 | *.~df | Файл резервной копии |
14 | *.~cp | Файл резервной копии |
15 | *.~h | Файл резервной копии |
16 | *.exe | Исполняемый файл приложения |
17 | *.obj | Объектный файл модуля |
18 | *.dll | Динамически присоединяемая DLL |
19 | *.tds | Файл таблицы символов (для отладки) |
20 | *.il? | Файлы выборочной компоновки |
21 | *.hlp | Файлы справки |
22 | *.wmf | Файл изображения или графический файл |
23 | *.bmp | Файл изображения или графический файл |
24 | *.ico | Файл изображения или графический файл |
25 | *.todo | Файл со списком задач для конкретного проекта |
Важные добавления к таблице:
1. Расширения важнейших файлов: *.cpp, *.h, *.dfm, *.bpr, *.res.
Конструирование многих программ логически можно разделить на три этапа:
(1) Этап инициализации, на котором происходит инициализация переменных программы.
(2) Этап обработки, на котором происходит ввод данных и соответствующая настройка переменных программы.
(3) Этап завершения программы, на котором происходит вычисление и вывод окончательных результатов.
В составе программного модуля выделяются:
(1) Главная функция.
(2) Заголовочные файлы. Стандартное расширение заголовочных файлов - .h.
(3) Файлы реализации. Стандартное расширение файлов реализации - .cpp.
1. В окне главного модуля *.cpp написать в комментарии написать имя файла с программой.
2. Написать комментарий, выражающий назначение программы /* назначение программы */ или //:
2.1. Комментарий в программном коде предназначен для облегчения восприятия программного кода. Комментарий можно разбить он не вызывает каких-либо действий. Синтаксис комментария в языках программирования выражается: (1), (2)
(1) в языке программирования Си : /* текст комментария */
(2) в языке программирования Си++: // текст комментария
(2.1) в языка программирования С++ допустима запись комментария в виде: /* текст комментария */
(3) ANSI-стандартом запрещено вкладывать комментарии друг в друга.
3. Включить в программный код с помощью директивы препроцессора #include (1) и / или (2) и/или (3):
(1) <:> - : стандартный заголовочный файл, т.е. файл стандартной библиотеки функций С++,
(2) ":" - : имя подключаемого файла из библиотеки функций пользователя, так называемые функции, определяемые программистом, т.е. заголовочный файл,
(3) IM - : идентификатор макроса
4. Объявить глобальные переменные с их типами, область действия которых будет область действия файла.
4.1. Написать комментарий, раскрывающий описание и назначение глобальных переменных.
5. Написать оператор (-ы) , определяющий прототип (-ы) для функции (-й) пользователя, располагающихся в файле головной функции main ( ), эти прототипы должны содержать: (1), (2), (3), (4)
(1) тип возвращаемого значения функции пользователя
(2) заголовок функции, который должен быть уникальным
(3) в круглых скобках список параметров с указанием типа возвращаемого параметра
(4) такой оператор, должен заканчиваться операцией "точка с запятой"
(5) после операции "точка с запятой" надо вставить комментарий с описанием назначения функции
5.1. Такой оператор включается после написания функции пользователя, имеющей также обязательный оператор return в своем теле, в файле головной программы. Старайтесь применять метод повторного использования кода.
6. Сформировать шаблон головной функции main ( ).
o Справочно: В написании тела программы могут возникнуть следующие типы ошибок: синтаксические, логические и/или фатальные. Определение функции имеет следующий формат: тип_возвращаемого_значения имя_функции (список_параметров, включающий тип_каждого_параметра)
{ объявления;
операторы;
}
o Справочно: Имя главной функции программного модуля определено как: (1) или (2)
(1) main - для консольных приложений (работающих с Win32);
(2) WinMain - для приложений Windows.
o Справочно: Тело программы строится из управляющих структур. Тело структуры представляет оператор, который может быть простым или составным. Приняты следующие способы соединения управляющих структур: вложение одной управляющей структуры в другую и следование управляющих структур одна за другой. Структур выбора:
Условной операции: ' ?:' ;
Структура единичного выбора: if (с одним входом и одним выходом);
Структура с двойным выбором: if / else ;
Структура со множественным выбором: switch.
Структур повторения:
Цикл: while
Цикл: do / while
Цикл: for
Выделяют следующие типы повторения:
Определенное повторение - это повторение, управляемое счетчиком.
Неопределенное повторение - это повторение, управляемое контрольным значением.
Последовательных структур
7. 6.1. Определить спецификацию главной функции main ( ): (1) или (2)
(1) (void) - это значит, что функция не возвращает никакого значения - пример, void F1(void);
(2) или ( ) - это значит, что если тип возвращаемого значения не указан, то он по умолчанию считается равным int - пример, void F1( ).
(3) Первая из приведенных записей предпочтительнее, так как делает программу более переносимой.
6.1.1. При необходимости указать тип возвращаемых значений переменных в функции main (тип1, тип2, :).
6.2. Поставить скобки "{", "}", означающие начало и конец тела головной функции main ( ).
6.2.1. В теле главной функции (и не только главной функции) допустимы следующие типы комментариев:
o Описывающие назначение переменных,
o Комментарии типа подсказки,
o Исключение из комментариев: сообщения об ошибках ввода данных.
6.3. В теле функции main ( ) {тело головной функции} объявить переменные области действия функции, а именно: (1), (2), (3), (4)
(1) перед типом переменной в случае необходимости указывается спецификатор класса памяти идентификатора
(1.1) Справочно: Каждая переменная характеризуется некоторым классом памяти, который определяет ее время жизни - период, в течение которого эта переменная существует в памяти. Спецификация класса памяти идентификатора определяет его класс памяти, область действия и пространство имен. Класс памяти, в частности, определяется местом объявления переменной. В C++Builder имеется четыре спецификации класса памяти:
o auto, registr - автоматический класс памяти с локальным временем жизни,
o extern, static - статический класс памяти с глобальным временем жизни.
(2) в случае необходимости после спецификатора класса памяти указывается модификатор const или volatile, которые сообщают компилятору об изменчивости или постоянстве определяемого объекта.
(2.1) Если переменная описана как const, то она недоступна в других модулях программы, ее нельзя изменять в других во время выполнения программы. Единственная возможность присвоить ей значение - это инициализация при определении. Объекту с модификатором const не только нельзя присваивать значения, но и для него запрещены операции инкремента (++) и декремента ( -- ). Указатель, определенный с модификатором const, нельзя изменять, однако может быть изменен объект, который им адресуется.
(2.2) Модификатор volatile отмечает, что в процессе выполнения программы значение объекта может изменяться в промежутке между явными обращениями к нему. Например, на объект может повлиять внешнее событие. Поэтому компилятор не должен помещать его в регистровую память и не должен делать никаких предположений о постоянстве объекта в те моменты, когда в про-грамме нет явных операций, изменяющих значение объекта.
(2.3) Диалекты языка С++ также включают следующие модификаторы:
o cdecl - для функций и переменных;
o pascal - для функций и переменных;
o interrupt - для функций обработки прерываний;
o near - для указателей, функций, переменных;
o far - для указателей, функций, переменных;
o huge - для указателей и функций.
Эти модификаторы предназначены для влияния на распределение памяти при размещении объектов и учета особенностей сегментной организации и адресации памяти в процессорах семейства 80х86.
(3) тип переменной (данных)
(3.1) Помните, что переменная может быть простая и вычисляемая. Поэтому для вычисляемых переменных используйте операцию приведения типов, чтобы программа корректно выполняла вычисления.
(3.2) Если программиста по каким -либо причинам не устраивает тот тип, который компилятор приписывает константе, то он может явным образом повлиять на его выбор. Для этого служат суффиксы, например, L, l (long), U, u (unsigned), которые ставятся перед типом переменной.
(4) идентификатор (имя) переменной
(4.1) Требования к идентификатору:
o Длина идентификатора должна быть больше или равна 31 символа;
o Особенности написания идентификаторов:
- Идентификатор не должен начинаться с цифры;
- Ключевые или зарезервированные слова Языка прогр. не применимы как идентификаторы;
- Идентификаторы нельзя разбивать.
o Виды идентификаторов в зависимости от регистра написания:
- в нижнем регистре,
- в верхнем регистре,
- начинающийся с заглавной буквы.
Информация о работе Практическая работа с компилятором С++Builder 6