- •Ф.Ф. Павлов языки программирования
- •Санкт-Петербург
- •230201 - Информационные системы и технологии
- •Тема 2 посвящена изучению жизненного цикла программы и основным этапам решения задач на эвм.
- •Тема 4 изучает типы пользовательских интерфейсов, классификацию диалогов и основные компоненты графических пользовательских интерфейсов.
- •Тема 8 посвящена структурам данных фиксированного размера (массивы), а также типам данных, определяемых пользователем (структуры, объединения, перечисления).
- •Тема 10 изучает динамические структуры данных: виды и способы реализации списков, динамическое выделение памяти.
- •Тема 12 затрагивает вопросы обработки файлов данных: понятия записи, файла данных и способы доступа, операции и средства обработки файлов, контроль операций обработки файлов.
- •Тема 14 вводит в технологию объектно-ориентированного программирования.
- •Раздел I Принципы программирования на языках высокого уровня
- •Тема 1. Эволюция языков программирования
- •1.1. Неструктурированное, «стихийное» программирование
- •1.2. Процедурное (модульное) программирование
- •1.3. Объектно-ориентированное программирование
- •1.4. Компонентные технологии программирования
- •Тема 2. Жизненный цикл программы и основные
- •2.1. Дружественность, жизненный цикл программы
- •2.2. Постановка задачи и спецификация программы
- •2.3. Проектирование и реализация программы
- •2.4. Способы записи алгоритма
- •2.5. Критерии качества программы
- •3.1. Классификация программных продуктов
- •3.3. Модели программирования в ms-dos и Windows
- •Тема 4. Диалоговые программы
- •4.1. Типы пользовательских интерфейсов
- •4.2. Классификация диалогов и их реализация
- •4.3. Основные компоненты графических
- •Тема 5. Программа на языке высокого уровня
- •5.1. Структура программы и функции
- •5.2. Стандартные типы данных и операции над ними
- •5.3. Адресные типы данных: указатели и ссылки
- •5.4. Стандартные библиотеки языка
- •5.5. Классы памяти
- •Раздел 2 Управляющие структуры и структуры данных
- •Тема 6. Представление управляющих структур
- •6.1. Структура следования
- •6.2. Структуры ветвления
- •6.3. Структуры повторения
- •Int kol, //счетчик введенных оценок
- •Int god; //число лет
- •Тема 7. Адресные типы данных
- •7.1. Указатели
- •7.2. Ссылки
- •Тема 8. Структуры данных фиксированного размера
- •8.1. Массивы
- •8.2. Типы данных, определяемые пользователем
- •Тема 9. Функции (процедуры)
- •9.1. Определение, прототип и вызов функции
- •9.2. Передача параметров
- •9.3. Программирование рекурсивных алгоритмов
- •Тема 10. Динамические структуры данных
- •10.1. Списки: основные виды и способы реализации
- •10.2. Динамическое выделение памяти
- •Раздел 3 Процедурное программирование
- •Тема 11. Ввод/вывод данных
- •11.1. Видеофункции библиотеки conio.H
- •11.2. Функции библиотеки потокового ввода/вывода
- •Тема 12. Обработка файлов данных
- •12.1. Записи и файлы данных
- •12.2. Операции и средства обработки файлов
- •12.3. Контроль операций обработки файлов
- •Тема 13 Технология процедурного программирования
- •13.1. Способы конструирования программ
- •13.2. Проектирование программы: методы декомпозиции и и модульного программирования
- •13.3. Реализация программы: методы структурного
- •Тема 14. Введение в технологию объектно-
- •14.1. Основные понятия объектно-ориентированного
- •14.2. Проектирование программы
- •14.3. Реализация программы
- •Утверждаю
- •Рабочая программа
- •Технология программирования
- •Санкт-Петербург
- •Тема 1. Технология программирования и этапы ее
- •Тема 2. Жизненный цикл программы и основные этапы
14.2. Проектирование программы
«Ключ к искусному проектированию можно подобрать, если непосредственно моделировать некоторые аспекты "окружающей действительности", то есть «поймать» понятия из данной прикладной области в виде классов, представить зависимости между классами формальным образом, например, в виде наследования, и проделывать это повторно на разных уровнях абстракции».
Понятия не существуют изолированно, а находятся во взаимосвязи друг с другом, поэтому, и классы разрабатываемой системы должны проектироваться не изолированно, а совместно в виде одной единицы проектирования.
Автор языка C++ Б. Страуструп ввел термин компонента в качестве единицы проектирования: «Обычно разрабатывается сразу множество взаимосвязанных классов. Такое множество часто называют библиотекой классов или компонентой».
Можно рекомендовать в качестве имен классов компоненты разрабатываемого информационного рабочего места управленческого персонала - названия основных планово-учетных документов, необходимых в разрабатываемой системе. Документы являются элементами системы управления и находятся во взаимосвязи друг с другом, поэтому, и классы разрабатываемой системы должны проектироваться совместно в виде одной единицы проектирования - компоненты.
Разработка компоненты включает следующие этапы:
- проектирование структуры компоненты, включающее проектирование структурной схемы программы, представляющей собой иерархию классов компоненты, и интерфейсов классов;
- реализация (программирование) компоненты.
Этап проектирования структуры компоненты представляет собой итерационный процесс и включает следующие подэтапы:
- Выбор классов компоненты: в качестве имен классов взять названия планово-учетных документов.
- Определение состава классов: в качестве элементов-данных взять реквизиты документа, в качестве элементов-функций - набор операций (задач) по обработке документа.
- Составление начальной иерархии классов: выявить взаимозависимость документов и спроектировать структурную схему компоненты, используя наследование и полиморфизм. Структурная схема компоненты может быть представлена ориентированным графом без петель, где узлами являются классы, а дугами - направления наследования. Простое наследование соответствует иерархической декомпозиции понятий. Множественное наследование соответствует решению функциональной задачи, когда из нескольких документов образуется новый документ.
- Реорганизация иерархии классов, основанная на принципах декомпозиции и локализации: выделить общие элементы нескольких классов в новый базовый класс, разделить класс на несколько новых.
14.3. Реализация программы
Этап реализации программы заключается в программировании элементов-функций целых взаимосвязанных классов, начиная с базовых классов.
На основе объектно-ориентированного подхода были созданы среды программирования, например Delphi, C++ Builder, Visual C++ и др., реализующие визуальное программирование.
Визуальное программирование – это автоматическая разработка программ с использованием диалоговой визуальной среды, имеющей интерактивные средства решения типовых задач, и позволяющей в диалоге с программистом создавать готовые фрагменты исходного кода.
Использование интерфейса со свободной навигацией или интерфейса прямого манипулирования требует выбора объектно - ориентированного подхода к программированию и выбора современной среды визуального программирования, например, Visual C++, Builder C++, Delphi.
Контрольные вопросы
Перечислите основные понятия объектно-ориентированного программирования.
Приведите определение инкапсуляции.
Приведите определение наследования.
Приведите определение полиморфизма.
Объясните этапы разработки программ методом объектно-ориентированного программирования.
Опишите концепцию объектно-ориентированного проектирования
Что такое визуальное программирование?
Тестовые задания
ПФФ № 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. В примерах добавляемые программистом строки программы в сгенерированный программный код помечены жирным шрифтом. Объяснения представлены в виде комментарий в текстах программ.
Список литературы
Основная литература:
Иванова Г.С. Технология программирования: Учебник для вузов.-3-е изд; перераб. и доп.-М.: Изд-во МГТУ им. Баумана, 2006
Камаев В.А., В.В. Костерин Технологии программирования: Учебник/2-е изд.-М., Высш. шк. ,2006
Гильберт С., Маккарти Б. Самоучитель Visual C++ в примерах. Учебник: Пер. с англ. –К.: Изд. «ДиаСофт», 2000.
Грегори К. Использование Visual C++ .NET. Спец. изд.: Пер. с англ. – М.: Издательский дом «Вильямс», 2002.
Павлов Ф.Ф. Технология программирования на Visual C++: Учеб. пособие. - СПб.: СПбГИЭУ, 2007.
Павлов Ф.Ф. Методы программирования в экономике: Учеб. пособие. - СПб.: СПбГИЭУ, 2004.
Технология программирования: Методические указания к выполнению лабораторного практикума на Visual C++.NET 2003: (специальность 230201). Сост. Ф.Ф. Павлов.- СПб.: СПбГИЭУ, 2008.
Дополнительная литература:
Баженова И.Ю. C++ & Visual Studio.NET. Самоучитель программиста. – М.: КУДИЦ-ОБРАЗ, 2003.
Дейтел Х, Дейтел П. Как программировать на С++: Пер. с англ. –М.: ЗАО «Изд. БИНОМ», 2001.
Кораблев В. Самоучитель Visual C++ .NET. – СПб.: Питер; Киев: Изд. Группа BHV, 2004.
Мешков А.В., Тихомиров Ю.В. Visual C++ и MFC: Пер. с англ. –СПб.: БХВ-Петербург, 2001.
Олафсен Ю., Скрайбнер К., Уайт К. и др. Visual C++ и MFC. Энциклопедия пользователя: Пер. с англ.–К.:Изд. «ДиаСофт», 2000.
Основы алгоритмизации и языки программирования: практикум на С++. Сост. Ф.Ф. Павлов.- СПб.: СпбГИЭА, 1997.
Павлов Ф.Ф. Высокоуровневые методы программирования: практикум на Visual C++: Учеб. пособие.- СПб.: СПбГИЭУ, 2001.
Павлов Ф.Ф. Высокоуровневые методы информатики и программирования: Учеб. пособие.- СПб.: СПбГИЭУ, 2001.
Павлов Ф.Ф. Высокоуровневые методы информатики и программирования: лабораторный практикум на Visual C++.NET 2003: СПб.: СПбГИЭУ, 2007.
Павлов Ф.Ф. Программирование задач производственного менеджмента: Учеб. пособие.- СПб.: СПбГИЭА, 1997.
Пирогов В.Ю. Программирование на Visual C++ .NET. – СПб.: БХВ-Петербург, 2003.
Пономарев В.В. Программирование на C++/C# в Visual Studio .NET 2003. – СПб.: БХВ-Петербург, 2004.
Разработка приложений на Microsoft Visual C++ 6.0. Учебный курс: Официальное пособие Microsoft для самостоятельной подготовки/Пер. с англ. – М.: Издательско-торговый дом «Русская Редакция», 2000.
Савитч У. Язык С++. Курс объектно- ориентированного программирования, Пер. с англ.-М.: Изд. дом «Вильямс», 2001.
Терминологический словарь
База данных – это группа связных файлов.
Визуальное программирование – разработка программ с использованием диалоговой визуальной среды, имеющей интерактивные средства решения типовых задач, и позволяющей в диалоге с программистом создавать готовые фрагменты исходного кода.
Глобальная переменная - переменная, объявленная вне блока или функции.
Диалог - регламентированный обмен информацией между пользователем и компьютером в реальном масштабе времени.
Динамические структуры данных – наборы данных, размеры которых нарастают и сокращаются во время выполнения программы.
Динамическое связывание – связывание вызова функции с определением функции во время выполнения программы.
Дружественность - обеспечение дружественного интерфейса для работы пользователя.
Жизненный цикл программы - совокупность процессов от создания программы до окончания ее эксплуатации.
Запись – это группа связных полей.
Инкапсуляция - объединение данных и функций для работы с этими данными в абстрактные типы данных - классы.
Класс - совокупность элементов-данных различных типов и элементов-функций для их обработки со спецификаторами доступа к ним.
Компонентная технология основана на модели построения программы как совокупности отдельных двоичных объектов-компонентов - физически отдельно существующих частей программы, взаимодействующих между собой через стандартные двоичные интерфейсы.
Компоновщик - программа, объединяющая результаты работы компилятора с библиотечными функциями для создания исполняемого модуля.
Локальная переменная - переменная, которая определена внутри функции или блока.
Массив - поименованная совокупность данных, состоящая из фиксированного числа элементов одинакового типа.
Метод декомпозиции - разделение программы на подпрограммы простейшей структуры и представление программы в виде иерархии подпрограмм.
Метод модульной организации - группировка подпрограмм и обрабатываемых ими данных в модули, которые программируются и компилируются отдельно.
Модуль - автономно компилируемая программная единица.
Наследование - порождение новых абстрактных типов данных (производных классов) на основе существующих абстрактных типов данных (базовых классов), причём производный класс наследует данные и функции базового класса, а также имеет собственные данные и функции.
Объединение - совокупность данных из фиксированного числа компонентов разных типов с активным только одним компонентом (одно поле).
Объектно-ориентированное программирование основано на модели построения программы как иерархии классов.
Объектно-ориентированное программирование – метод программирования, основанный на представлении программы в виде совокупности объектов, переменных типа класс.
Отладка - это исправление ошибок.
Параметрический полиморфизм - механизм использования обобщенного определения функции или класса (шаблона) для автоматической генерации новых функций или классов для различных типов данных.
Перечисление - упорядоченная последовательность идентификаторов пользователя, принимаемых переменной, имеющих целочисленные значения
Полиморфизм - способность объектов классов, связанных наследованием, реагировать различным образом на одно и то же сообщение (вызов функции класса).
Пользовательский интерфейс - совокупность программных и аппаратных средств, обеспечивающих взаимодействие пользователя с компьютером.
Постановка задачи - процесс формулирования назначения программы и основных требований к ней.
Проектирование программы - процесс разработки структурной схемы программного обеспечения с проектированием компонентов и их взаимосвязей.
Процедурное программирование основано на модели построения программы как иерархии процедур (функций).
Реализация программы - процесс программирования компонентов программы на языке программирования, их тестирования и отладки.
Рекурсивная функция – функция, которая вызывает сама себя.
Спецификация программы - полное и точное описание функций и ограничений программы.
Списки - наборы данных (узлы), связанные при помощи связующих указателей в линейную структуру данных.
Ссылка – переменная, которая является альтернативным именем другой переменной.
Структура - поименованная совокупность данных, состоящая из фиксированного числа компонентов разных типов.
Тестирование – это обнаружение ошибок
Указатель – переменная, которая содержит адрес другой переменной.
Файл – это группа связных записей.
Приложение 1 Выписка из рабочей программы
Федеральное агентство по образованию
Государственное образовательное учреждение
высшего профессионального образования
«Санкт-Петербургский государственный
инженерно-экономический университет»
Кафедра вычислительных систем и программирования