ориентированного программирования




 

14.1. Основные понятия объектно-ориентированного

программирования

 

Основными методами (понятиями) объектно - ориентированного программирования являются средства инкапсуляции, наследования, полиморфизма, изучаемые на базе языка C++. В языке C++ термин «функция» эквивалентен таким терминам других языков программирования, как «подпрограмма», «процедура».

Инкапсуляция (encapsulation) - это объединение данных и функций для работы с этими данными в абстрактные типы данных - классы. Инкапсуляция даёт сокрытие элементов-данных (data members) и элементов-функций (members functions) в классе с управлением доступа к ним. Переменные типа класс называются объектами (object). Состояние объекта определяется элементами-данными соответствующего класса. Поведение объекта определяется элементами- функциями соответствующего класса.

Преимущества инкапсуляции проявляются в следующем:

· Упрощение написания больших программ. В больших про-граммах большое количество функций и переменных усложняет создание и сопровождение программ. Концепция объектно-ориентированного программирования - это разделение программы на отдельные небольшие части - классы, в каждом из которых сгруппированы определенные элементы-данные и элементы-функции для их обработки.

· Управление доступом к элементам класса. Атрибуты доступа private, protected, public объявляют элементы класса соответственно закрытыми, защищенными и открытыми для доступа.

· Возможность изменения содержимого класса (например, добавление новых элементов) без изменения других частей программы, использующих этот класс.

Наследование (inheritance) - это порождение новых абстрактных типов данных (производных классов) на основе существующих абстрактных типов данных (базовых классов), причём производный класс наследует данные и функции базового класса, а также имеет собственные данные и функции. Наследование позволяет исключить множество типов данных, определяемых пользователем, и множество функций для их обработки за счет выделения одинаковых элементов из классов и помещения их в базовый класс с целью повторного их использования через механизм наследования.

Преимущества наследования проявляются в следующем:

· исключение дублирования элементов-данных и элементов-функций за счет повторного использования элементов класса в производных классах;

· упрощение программирования, т.к. наследуемые и собственные элементы класса находятся в одной иерархии классов и не разбросаны по всей программе;

· возможность оптимального моделирования связей объектов реального мира в прикладной области (например, в информационных системах в экономике и управлении) за счет иерархии классов.

Полиморфизм (polymorphism) означает способность объектов классов, связанных наследованием, реагировать различным образом на одно и то же сообщение (вызов функции класса).

Полиморфизм имеет следующие методы программирования:

· общий полиморфизм (перегрузка операций, преобразование типов, перегрузка функций);

· чистый полиморфизм (виртуальные функции, абстрактные классы);

· параметрический полиморфизм.

Перегрузка операций - это переопределение действий операций применительно к объектам конкретных классов. Преобразование типов данных при совместном их использовании тоже является одним из методов полиморфизма.

Перегрузка функции - это использование одинакового имени для функций, выполняющих похожие действия, но с разными типами данных и объявленных в одной области действия.

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

Параметрический полиморфизм - это механизм использования обобщенного определения функции или класса (шаблона) для автоматической генерации новых функций или классов для различных типов данных.

Преимущества полиморфизма проявляются в следующем:

· облегчение программирования сложных систем за счет возможности называть похожие (различающиеся только типами своих параметров) действия одним именем;

· обеспечение виртуальными функциями чистого полиморфизма, т.е. свойства использовать один и тот же оператор для вызова множества функций, но конкретная функция определяется по типу вызываемого объекта;

· механизм виртуальных функций – это возможность написания простых функций общего назначения для иерархии классов;

· обеспечение компактности программ и расширяемости иерархии классов за счет использования виртуальных функций;

· автоматическая генерация по обобщенному шаблону новых функций или классов для различных типов данных, реализуемая механизмом параметрического полиморфизма.

Объектно-ориентированное программирование принципиально отличается от процедурного программирования. Процедурное программирование основывается на алгоритмах, т.е. на функциях обработки задачи. При этом структуры данных не учитываются, как части организации программы. Объектно-ориентированное программирование основывается на понятиях прикладной области, являющихся классами. Программы строятся как иерархия классов.

Объектно - ориентированное программирование особенно эффективно в нереализованных, с точки зрения программирования, прикладных областях, например, в таких, как интерактивная графика.

На основе объектно-ориентированного подхода были созданы среды программирования, например Delphi, C++ Builder, Visual C++ и др., реализующие визуальное программирование.

Визуальное программирование – это автоматическая разработка программ с использованием диалоговой визуальной среды, имеющей интерактивные средства решения типовых задач, и позволяющей в диалоге с программистом создавать готовые фрагменты исходного кода.

 

14.2. Проектирование программы

 

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

Понятия не существуют изолированно, а находятся во взаимосвязи друг с другом, поэтому, и классы разрабатываемой системы должны проектироваться не изолированно, а совместно в виде одной единицы проектирования.

Автор языка C++ Б. Страуструп ввел термин компонента в качестве единицы проектирования: «Обычно разрабатывается сразу множество взаимосвязанных классов. Такое множество часто называют библиотекой классов или компонентой».

Можно рекомендовать в качестве имен классов компоненты разрабатываемого информационного рабочего места управленческого персонала - названия основных планово-учетных документов, необходимых в разрабатываемой системе. Документы являются элементами системы управления и находятся во взаимосвязи друг с другом, поэтому, и классы разрабатываемой системы должны проектироваться совместно в виде одной единицы проектирования - компоненты.

Разработка компоненты включает следующие этапы:

- проектирование структуры компоненты, включающее проектирование структурной схемы программы, представляющей собой иерархию классов компоненты, и интерфейсов классов;

- реализация (программирование) компоненты.

Этап проектирования структуры компоненты представляет собой итерационный процесс и включает следующие подэтапы:

- Выбор классов компоненты: в качестве имен классов взять названия планово-учетных документов.

- Определение состава классов: в качестве элементов-данных взять реквизиты документа, в качестве элементов-функций - набор операций (задач) по обработке документа.

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

- Реорганизация иерархии классов, основанная на принципах декомпозиции и локализации: выделить общие элементы нескольких классов в новый базовый класс, разделить класс на несколько новых.

 

14.3. Реализация программы

 

Этап реализации программы заключается в программировании элементов-функций целых взаимосвязанных классов, начиная с базовых классов.

На основе объектно-ориентированного подхода были созданы среды программирования, например Delphi, C++ Builder, Visual C++ и др., реализующие визуальное программирование.

Визуальное программирование – это автоматическая разработка программ с использованием диалоговой визуальной среды, имеющей интерактивные средства решения типовых задач, и позволяющей в диалоге с программистом создавать готовые фрагменты исходного кода.

Использование интерфейса со свободной навигацией или интерфейса прямого манипулирования требует выбора объектно - ориентированного подхода к программированию и выбора современной среды визуального программирования, например, Visual C++, Builder C++, Delphi.

 

Контрольные вопросы

 

1. Перечислите основные понятия объектно-ориентированного программирования.

2. Приведите определение инкапсуляции.

3. Приведите определение наследования.

4. Приведите определение полиморфизма.

5. Объясните этапы разработки программ методом объектно-ориентированного программирования.

6. Опишите концепцию объектно-ориентированного проектирования

7. Что такое визуальное программирование?

 

Тестовые задания

 

ПФФ № 1 На последовательность Базовое

Этапы эволюции технологии программирования:

1: Неструктурированное (стихийное)

2: Процедурное и модульное

3: Объектно-ориентированное

4: Компонентные и CASE-технологии

ПФФ № 2 Открытое Стандартное

Компания, которая впервые использовала персональные компьютеры, была ###.

+: Apple

ПФФ № 3 Открытое Стандартное

Компьютер, который сделал персональные вычисления признанными в промышленности и бизнесе, был ###.

+: IBM PC

ПФФ № 4 Закрытое Базовое

Основными классами языков программирования, являются:

+: машинные и машинно-ориентированные языки

-: компиляторы

+: языки высокого уровня

-: редакторы

-: компоновщики

ПФФ № 5 Открытое Стандартное

Модель построения программы методом процедурного программирования является иерархия ###.

+: функций

ПФФ № 6 Открытое Стандартное

Модель построения программы методом объектно-ориентированного программирования является иерархия ###.

+: классов

ПФФ № 7 На соответствие Сложное

Соответствие между методом программирования и моделью - иерархией

1: Процедурное A: функций
2: Объектно-ориентированное B: классов
  C: файлов

ПФФ № 8 Открытый Стандартное

### цикл программы - это совокупность процессов от создания программы до окончания ее эксплуатации.

+: Жизненный

ПФФ № 9 Закрытое Базовое

Основными этапами решения задач на ЭВМ являются:

-: техническое задание

+: постановка задачи и определение спецификаций

-: приемка программы

+: проектирование и реализация программы

-: технический проект

ПФФ № 10 Открытое Стандартное

### - это обеспечение дружественного интерфейса для работы пользователя.

+: Дружественность

ПФФ №11 На последовательность Сложное

Эволюция моделей жизненного цикла программы:

1: каскадная

2: с промежуточным контролем

3: спиральная

ПФФ № 12 На последовательность Базовое

Последовательность этапов жизненного цикла программы:

1: постановка задачи

2:спецификация программы

3:проектирование

4:реализация

ПФФ № 13 Открытое Стандартное

Этап постановки задачи заканчивается разработкой технического ###.

+: задани#$#.

ПФФ № 14 Открытое Базовое

###задачи - это процесс формулирования назначения программы и основных требований к ней.

+: Постановка

ПФФ № 15 Открытое Стандартное

### программы - это полное и точное описание функций и ограничений программы.

+: Спецификация

ПФФ № 16 Открытое Стандартное

### программы - это процесс разработки структурной схемы программного обеспечения с проектированием компонентов и их взаимосвязей.

+: Проектирование

ПФФ № 17 Открытое Стандартное

### программы - это процесс программирования компонентов программы на языке программирования, их тестирования и отладки.

+: Реализация

ПФФ № 18 На соответствие Стандартное

Соответствие между этапами и результатом работы

 

1: Тестирование A: Обнаружение ошибок
2: Отладка B: Исправление ошибок
  C: Приемка программы

ПФФ № 19 Закрытое Стандартное

Основные способы записи алгоритма решения задачи:

+: способ блок-схем

+: алгоритмические языки

-: язык XML

-: язык HTML

-: унифицированный язык моделирования

ПФФ № 20 Закрытое Сложное

Системные программные средства:

+: операционные системы

-: СУБД

-: электронные таблицы

ПФФ № 21 На соответствие Стандартное

Соответствие между критериями качества программы и пояснением:

1: Мобильность A: Независимость от программных и технических средств
2: Надежность B: Устойчивость в работе
3: Эффективность C: Оценка расходов вычислительных ресурсов
4: Дружественность D: Обеспечение дружественного интерфейса для работы пользователя
5: Модифицируемость E: Способность к внесению изменений
  F: Возможность интеграции с другими программами

ПФФ № 22 Закрытое Стандартное

Классификация программных продуктов по функциональному признаку:

+: системные

-: бухгалтерские

+: прикладные

-: сервисные

-: экспертные

ПФФ № 23 На соответствие Базовое

Соответствие между группами и типами программных продуктов:

1: Системные A: Операционные системы, оболочки и утилиты
2: Прикладные B: Среды разработки, системы программирования, отладочные средства, CASE-средства
  C: Автоматизированные системы управления технологическими процессами реального времени

ПФФ № 24 Закрытое Сложное

Среды разработки программ:

+-: Visual C++

-: Rational Rose

+: Delphi

-: Windows XP

-: UML

ПФФ № 25 Закрытое Стандартное

Среда разработки Microsoft Studio 2005 служит для создания программ на языках программирования:

+: C++ и C#

-: Ada

+: Basic и Java

-: Pascal

-: Perl

ПФФ № 26 Закрытое Стандартное

Отличие модели программирования в Windows от MS DOS:

+: обработка сообщений

-: символьный интерфейс, управляемый клавиатурой

-: обращение ко всем аппаратным средствам вывода

ПФФ № 27 Открытое Стандартное

### интерфейс - это совокупность программных и аппаратных средств, обеспечивающих взаимодействие пользователя с компьютером.

+: Пользовательский

ПФФ № 28 Закрытое Сложное

Типы пользовательских интерфейсов:

+: меню и со свободой навигацией

+: прямого манипулирования

-: контекстное меню

-: окна

-: сообщения

ПФФ № 29 Открытое Стандартное

### - это регламентированный обмен информацией между пользователем и компьютером в реальном масштабе времени.

+: Диалог

ПФФ № 30 Закрытое Сложное

Типы диалога:

+: управляемые программой

-: табличной формы

+: управляемые пользователем

-: фразовые

-: директивные

ПФФ № 31 Закрытое Сложное

Формы диалога:

+: фразовая и директивная

-: управляемая программой

-: меню

-: управляемая пользователем

+: табличная

ПФФ № 32 На соответствие Базовое

Соответствие между технологией пользовательских интерфейсов WIMP и элементами графических интерфейсов:

1: W - Windows A: Окна
2: I - Icons B: Пиктограммы
3: M - Mouse C: Мышь
4: P – Pop-up D: Всплывающие меню
  E: Меню

ПФФ № 33 Закрытое Стандартное

Классификация окон:

+: приложения и диалога

-: всплывающие

-: выпадающие

+: меню и информационные

-: пиктограммы

ПФФ № 34 Закрытое Стандартное

Классификация пиктограмм:

+: программные

-: меню

+: панели инструментов

-: всплывающие

-: выпадающие

ПФФ № 35 На последовательность Базовое

Последовательность выполнения программ при решении задачи на ЭВМ:

1. Редактор

2. Компилятор

3. Компоновщик

4. Загрузчик

ПФФ №36 Открытое Стандартное

Язык С - язык создания операционной системы ###.

+: UNIX

ПФФ №37 Открытое Базовое

Язык ### был разработан Виртом для изучения процедурного программирования в университетах.

+: Pascal

ПФФ №38 Открытое Сложное

Язык Ada, позволяющий программистам определять множество действий, выполняющихся параллельно, обладает возможностью ###.

+: многозадачность#$#

ПФФ №39 Открытое Стандартное

Программа ### в языке С++ выполняется перед началом этапа компиляции.

+: препроцессор

ПФФ № 40 Закрытое Базовое

Программа, объединяющая результаты работы компилятора с библиотечными функциями для создания исполняемого модуля, называется:

-: компилятор

-: редактор

+: компоновщик

ПФФ № 41 Открытое Базовое

Выполнение программы на C++ начинается с функции ###.

+: main()

ПФФ № 42 Открытое Базовое

Каждый оператор заканчивается символом ###.

+:;

ПФФ № 43 Открытое Стандартное

Тело блока в С++ окаймляется символами ###.

+: {}

ПФФ № 44 Закрытое Стандартное

Управляющая последовательность, которая вызывает перемещение курсора к началу следующей строки, является:

-: \t

+: \n

-: \r

ПФФ № 45 На соответствие Сложное

Соответствие между стандартными типами данных и их значениями:

1: char A: 0-256
2: short int B: -32768-+32767
3: unsigned short int C: 0-65536
4: int и long int D: -2*10^9-+2*10^9
5: unsigned long int E: 0-4*10^9
6: float F: 1.28*e-38-3.4*e38
7: double G: 2.2*e-308-1.8*e308
  H: 0-127

ПФФ № 46 Закрытое Стандартное

Операторы, которые прибавляют 1 к целой переменной x:

- x=1;

+: x++;

-: --x;

+: x+=1;

-: x=1-x;

ПФФ № 47 Закрытое Стандартное

Операторы, которые прибавляют 1 к целой переменной x:

- x=1;

+: ++x;

-: --x;

+: x=x+1;

-: x=1-x;

ПФФ № 48 На соответствие Сложное

Соответствие между спецификаторами и названиями классов памяти

1: extern A: Внешний
2: static (вне блока) B: Внешний статический
3: auto C: Внутренний
4: register D: Внутренний регистровый
5: static (внутри блока) E: Внутренний статический
6: new-delete F: Динамический
  G: Статический

ПФФ № 49 Открытое Сложное

Локальная переменная функции сохраняет свое значение между вызовами функции, если она объявлена со спецификатором ###.

+: static

ПФФ № 50 Закрытое Стандартное

Имеются области действия идентификатора:

+: программа

-: оператор

+:файл

+: блок и функция

-: оператор

ПФФ № 51 Закрытое Стандартное

Программы можно конструировать с помощью трех типов управляющих структур:

+: следования

-: ввода

-: вывода

+: ветвления

+: повторения

ПФФ №52 Открытое Стандартное

Структура ветвления (выбора) ### используется для выполнения двух действий.

+: if#$#else

ПФФ № 53 Закрытое Базовое

Повторение операторов заданное число раз называется повторением:

-: с постусловием

+: управляемым счетчиком

-: с предусловием

+: определенным заранее

-: итерации

ПФФ № 54 Закрытое Базовое

Заранее не известное число повторений группы операторов можно запрограммировать с использованием:

- счетчика

+: метки (флага)

-: структуры ветвления

ПФФ №55 Открытое Стандартное

Структура ветвления (выбора) ### используется для выполнения многих действий.

+: switch

ПФФ № 56 На соответствие Сложное

Соответствие между описаниями структуры for и изменениями управляющей переменной:

1: for(int i=1; i<=10; i++) A: i от1 до 10 с шагом 1
2: for(int i=10; i>=1; i--) B: i от10 до 1 с шагом -1
3: for(int i=7; i<=77; i+=7) C: i от7 до 77 с шагом 7
4: for(int i=20; i>=2; i-=2) D: i от20 до 2 с шагом -2
  E: i от0 до 9 с шагом 1

ПФФ № 57 Открытое Стандартное

Указатель – это переменная, которая содержит ### другой переменной.

+: адрес

ПФФ № 58 Открытое Стандартное

### – это переменная, которая является альтернативным именем другой переменной.

+: Ссылка

ПФФ № 59 Открытое Стандартное

Операция ### – это операция, которая присваивает адрес переменной указателю.

+: адресации

ПФФ № 60 Открытое Стандартное

Операция ### – это операция, которая извлекает значение по адресу, имеющемуся в указателе.

+: разадресации

ПФФ № 61 Закрытое Базовое

Существуют два способа доступа к данным по…

+: имени переменной

- значению

+: адресу с помощью указателя или ссылки

-: типу

-: области действия

ПФФ № 62 Закрытое Сложное

Объявление и инициализация указателя:

+: int tabn, *p=&tabn;

-: int tabn, &r=tabn;

-: int tabn, h=tabn;

ПФФ № 63 Закрытое Сложное

Объявление и инициализация ссылки:

-: int tabn, *p=&tabn;

+: int tabn, &r=tabn;

-: int tabn, h=tabn;

ПФФ № 64 Открытое Базовое

### - это поименованная совокупность данных, состоящая из фиксированного числа элементов одинакового типа.

+: Массив

ПФФ № 65 Закрытое Базовое

Элементы массива имеют одни и те же:

+: имя

-: значение

-:индекс

+: тип

-: адрес

ПФФ № 66 Открытое Стандартное

### - это поименованная совокупность данных, состоящая из фиксированного числа компонентов разных типов.

+: Структура

ПФФ № 67 Открытое Стандартное

Процесс упорядоченного размещения элементов в массиве называется ###

+: сортировк#$#

ПФФ № 68 Открытое Стандартное

Определение структуры начинается с ключевого слова ###.

+: struct

ПФФ № 69 Закрытое Стандартное

Типы данных, определяемые пользователем:

+: структуры

-: массивы

+: объединения и перечисления

-: указатели

-: списки

ПФФ № 70 Открытое Сложное

### - это совокупность данных из фиксированного числа компонентов разных типов с активным только одним компонентом (одно поле).

+: Объединение

ПФФ № 71 Открытое Сложное

### - это упорядоченная последовательность идентификаторов пользователя, принимаемых переменной, имеющих целочисленные значения

+: Перечисление

ПФФ № 72 Закрытое Базовое

Прототип функции:

+: заголовок функции без тела функции

-: заголовок и тело функции

-: оператор вызова функции

ПФФ № 73 Закрытое Базовое

Определение функции:

-: заголовок функции без тела функции

+: заголовок и тело функции

-: оператор вызова функции

ПФФ № 74 Закрытое Сложное

Существуют два способа передачи параметров функции по…:

-: адресу

+: значению

-: указателю

+: ссылке

-: переменной

ПФФ № 75 Закрытое Стандартное

Переменная, которая определена внутри функции или блока называется…

-: глобальной

+: локальной

-: внешней

ПФФ № 76 Открытое Стандартное

Переменная, объявленная вне блока или функции, называется ###

+: глобальн#$#

ПФФ № 77 Открытое Базовое

Оператор ### используется для передачи значения из вызываемой функции обратно в вызывающую функцию.

+: return

ПФФ № 78 Открытое Стандартное

Слово ### используется для указания, что функция не возвращает значения через оператор return или не имеет параметров.

+: void

ПФФ № 79 Закрытое Сложное

Имеются способы возвращения управления из вызванной функции в вызывающую функцию:

-: break;

+: return

-: exit

-: continue

+: скобка конца функции

ПФФ № 80 Открытое Стандартное

Функция, которая вызывает сама себя называется ###.

+: рекурсивн#$#

ПФФ № 81 Открытое Стандартное

Операция ### динамически выделяет память для объекта указанного типа.

+: new

ПФФ № 82 Закрытое Базовое

Основные виды списков:

+: стеки и очереди

-: массивы

-: структуры

+: деревья

-: объединения

ПФФ № 83 Открытое Сложное

### структуры данных – это наборы данных, размеры которых нарастают и сокращаются во время выполнения программы.

+: Динамическ#$#

ПФФ № 84 Открытое Стандартное

### - это наборы данных (узлы), связанные при помощи связующих указателей в линейную структуру данных.

+: Списки

ПФФ № 85 Закрытое Сложное

Правило стека:

-: первый пришел – первый ушел

+: первый пришел – последний ушел

-: любой пришел – любой ушел

ПФФ № 86 Закрытое Сложное

Правило очереди:

+: первый пришел – первый ушел

-: первый пришел – последний ушел

-: любой пришел – любой ушел

ПФФ № 87 Закрытое Базовое

Программа на C++ для операций потокового ввода-вывода должна включать заголовочный файл:

+: iostream.h

-: conio.h

-: math.h

ПФФ № 88 Закрытое Стандартное

Программа на C++ для использования параметризованных манипуляторов должна включать заголовочный файл:

-: iostream.h

-: fstream.h

+: iomanip.h

ПФФ № 89 Закрытое Стандартное

Манипулятор потока осуществляет переход на новую строку в выходном потоке и сброс выходного потока:

-: setw

+: endl

-: setprecision

ПФФ № 90 Открытое Сложное

Вывод в стандартный поток ошибок направляется в объекты потоков ###.

+:cerr

ПФФ № 91 Закрытое Стандартное

Для операции извлечения из входного потока используется символ:

+: >>

-: <<

-: >

ПФФ № 92 Закрытое Стандартное

Для операции вставки в выходной поток используется символ:

-: >>

+: <<

-: >

ПФФ № 93 Закрытое Базовое

Обычно связан с клавиатурой поток класса:

-: cout

+: cin

-: cerr

ПФФ № 94 Закрытое Базовое

Обычно связан с дисплеем поток класса:

-: cin

+:cout

ПФФ № 95 Закрытое Стандартное

Символы для операций извлечения и вставки:

-: ==

+: >>

-: >

-: <

+: <<

ПФФ № 96 Открытое Базовое

Программа на C++ для управления обработкой файлов потокового ввода-вывода должна включать заголовочный файл ###.

+: fstream.h

ПФФ № 97 Открытое Стандартное

### - это группа связных записей

+:Файл

ПФФ № 98 Открытое сложное

### данных- это группа связных файлов

+:База

ПФФ № 99 Закрытое Сложное

Основные методы процедурного программирования:

+: функциональная декомпозиция

-: инкапсуляция

-: наследование

+: модульное и структурное программирование

-: полиморфизм

ПФФ № 100 На последовательность Сложное

Последовательность методов процедурного программирования:

1. Функциональная декомпозиция

2. Модульная организация

3. Структурное программирование

ПФФ № 101 Закрытое Сложное

Понятия объектно - ориентированного программирования:

-: функциональная декомпозиция

+: инкапсуляция

+: наследование

-: модульное программирование

+: полиморфизм

ПФФ № 102 На последовательность Сложное

Последовательность основных этапов объектно - ориентированного программирования:

1. составление начальной структурной схемы программы как иерархию классов и определение структуры классов

2. реорганизация иерархии классов и построение структурной схемы программы

3. проектирование интерфейсов классов

4. программирование классов сверху-вниз

Заключение

Целью дисциплины было формирование у студентов теоретических знаний и практических навыков в области технологии программирования.

В результате изучения дисциплины студенты ЗНАЮТ методы и этапы технологии программирования, методы процедурного и объектно-ориентированного программирования, визуальное программирование в Windows.

Изучен материал по следующим темам рабочей программы:

1. «Технология программирования и этапы ее развития» - рассматривается понятие технологии программирования и этапы ее развития, эволюция программного обеспечения.

2. «Жизненный цикл программы и основные этапы решения задач

на ЭВМ» - 2 посвящена изучению жизненного цикла программы и основным этапам решения задач на ЭВМ: постановка задачи и спецификация программы, проектирование и реализация программы.

3. «Среды разработки программ» - рассматривается среда разработки программ: основные понятия Visual C++.NET, модели программирования в MS-DOS и Windows.

4. «Диалоговые программы» - изучает типы пользовательских интерфейсов, классификацию диалогов и основные компоненты графических пользовательских интерфейсов.

5. «Программа на языке высокого уровня» - уделяется внимание структуре программ и функциям, стандартным типам данных, библиотекам языка и,особенно, классам памяти.

6. «Представление управляющих структур программирования» - рассматривается конструирование программ с использованием основных управляющих структур: следования, ветвления и повторения.

7. «Адресные типы данных» - изучаются указатели и ссылки.

8. «Структуры данных фиксированного размера» - рассмотрены массивы, а также типы данных, определяемых пользователем (структуры, объединения, перечисления).

9. «Функции (процедуры)» - рассматриваются основные понятия функций (процедур): определение, прототип и вызов функции, передача параметров по значению и по ссылке, программирование рекурсивных функций.

10. «Динамические структуры данных» - изучает динамические структуры данных: основные виды и способы реализации списков, динамическое выделение памяти.

11. «Ввод/вывод данных» - рассматриваются видео функции библиотеки conio.h и функции библиотеки потокового ввода вывода iostream.h.

12. «Обработка файлов данных» - затрагивает вопросы обработки файлов данных: понятия записи, файла данных и способы доступа, операции и средства обработки файлов, контроль операций обработки файлов.

13. «Технология процедурного программирования» - на примере информационной мини-системы рассматриваются этапы технологии процедурного программирования.

14. «Введение в технологию объектно-ориентированного

программирования» - вводит в технологию объектно-ориентированного программирования, рассматривая основные понятия этого метода и этапы разработки программ.

 

Выполнив большой объем лабораторных работ, студенты УМЕЮТ разрабатывать программы задач на Visual C++.NET, программы информационных систем в экономике и управлении, проводить тестирование и отладку программ.

 

Студенты ИМЕЮТ ПРЕДСТАВЛЕНИЕ об основных понятиях объектно-ориентированного программирования: инкапсуляции, наследования, полиморфизма, о преимуществах и недостатках этих методов, об основных этапах технологии объектно-ориентированного программирования, о перспективах компонентных технологий и CASE-технологий.

 

Примеры реализованы средой программирования Microsoft Visual C++ 2005. В примерах добавляемые программистом строки программы в сгенерированный программный код помечены жирным шрифтом. Объяснения представлены в виде комментарий в текстах программ.

Список литературы

 

Основная литература:

 

1. Иванова Г.С. Технология программирования: Учебник для вузов.-3-е изд; перераб. и доп.-М.: Изд-во МГТУ им. Баумана, 2006

2. Камаев В.А., В.В. Костерин Технологии программирования: Учебник/2-е изд.-М., Высш. шк.,2006

3. Гильберт С., Маккарти Б. Самоучитель Visual C++ в примерах. Учебник: Пер. с англ. –К.: Изд. «ДиаСофт», 2000.

4. Грегори К. Использование Visual C++.NET. Спец. изд.: Пер. с англ. – М.: Издательский дом «Вильямс», 2002.

5. Павлов Ф.Ф. Технология программирования на Visual C++: Учеб. пособие. - СПб.: СПбГИЭУ, 2007.

6. Павлов Ф.Ф. Методы программирования в экономике: Учеб. пособие. - СПб.: СПбГИЭУ, 2004.

7. Технология программирования: Методические указания к выполнению лабораторного практикума на Visual C++.NET 2003: (специальность 230201). Сост. Ф.Ф. Павлов.- СПб.: СПбГИЭУ, 2008.

 

Дополнительная литература:

 

8. Баженова И.Ю. C++ & Visual Studio.NET. Самоучитель программиста. – М.: КУДИЦ-ОБРАЗ, 2003.

9. Дейтел Х, Дейтел П. Как программировать на С++: Пер. с англ. –М.: ЗАО «Изд. БИНОМ», 2001.

10. Кораблев В. Самоучитель Visual C++.NET. – СПб.: Питер; Киев: Изд. Группа BHV, 2004.

11. Мешков А.В., Тихомиров Ю.В. Visual C++ и MFC: Пер. с англ. –СПб.: БХВ-Петербург, 2001.

12. Олафсен Ю., Скрайбнер К., Уайт К. и др. Visual C++ и MFC. Энциклопедия пользователя: Пер. с англ.–К.:Изд. «ДиаСофт», 2000.

13. Основы алгоритмизации и языки программирования: практикум на С++. Сост. Ф.Ф. Павлов.- СПб.: СпбГИЭА, 1997.

14. Павлов Ф.Ф. Высокоуровневые методы программирования: практикум на Visual C++: Учеб. пособие.- СПб.: СПбГИЭУ, 2001.

15. Павлов Ф.Ф. Высокоуровневые методы информатики и программирования: Учеб. пособие.- СПб.: СПбГИЭУ, 2001.

16. Павлов Ф.Ф. Высокоуровневые методы информатики и программирования: лабораторный практикум на Visual C++.NET 2003: СПб.: СПбГИЭУ, 2007.

17. Павлов Ф.Ф. Программирование задач производственного менеджмента: Учеб. пособие.- СПб.: СПбГИЭА, 1997.

18. Пирогов В.Ю. Программирование на Visual C++.NET. – СПб.: БХВ-Петербург, 2003.

19. Пономарев В.В. Программирование на C++/C# в Visual Studio.NET 2003. – СПб.: БХВ-Петербург, 2004.

20. Разработка приложений на Microsoft Visual C++ 6.0. Учебный курс: Официальное пособие Microsoft для самостоятельной подготовки/Пер. с англ. – М.: Издательско-торговый дом «Русская Редакция», 2000.

21. Савитч У. Язык С++. Курс объектно- ориентированного программирования, Пер. с англ.-М.: Изд. дом «Вильямс», 2001.

 

Терминологический словарь

 

База данных – это группа связных файлов.

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

Глобальная переменная - переменная, объявленная вне блока или функции.

Диалог - регламентированный обмен информацией между пользователем и компьютером в реальном масштабе времени.

Динамические структуры данных – наборы данных, размеры которых нарастают и сокращаются во время выполнения программы.

Динамическое связывание – связывание вызова функции с определением функции во время выполнения программы.

Дружественность - обеспечение дружественного интерфейса для работы пользователя.

Жизненный цикл программы - совокупность процессов от создания программы до окончания ее эксплуатации.

Запись – это группа связных полей.

Инкапсуляция - объединение данных и функций для работы с этими данными в абстрактные типы данных - классы.

Класс - совокупность элементов-данных различных типов и элементов-функций для их обработк<



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: