Програма курсу за вибором Технологія програмування на С++

Вид материалаПояснительная записка

Содержание


Структура курса
2. Содержание курса
Учащиеся должны знать
Учащиеся должны приобрести навыки
Учащиеся должны уметь
2.2 Выражения и операторы (10 часов)
2.3 Управляющие инструкции программы (12 часов)
2.4 Функции (16 часов)
2.5 Массивы (22 часа)
2.6 Указатели и динамическое программирование (18 часов)
2.7 Функции и операции работы со строками (16 часов)
2.8 Структуры и объединения (10 часов)
2.9 Функции ввода-вывода (14 часов)
2.10 Принципы объектно-ориентированного программирования (10 часов)
2.11 Потоковый ввод-вывод (10 часов)
2.12 Наследование (6 часов)
2.13 Перегрузка функций и операторов (10 часов)
2.14 Директивы препроцессора (8 часов)
2.15 Полиморфизм и виртуальные функции (8 часов)
2.16 Шаблоны. Стандартная библиотека шаблонов STL (10 часов)
...
Полное содержание
Подобный материал:
Програма курсу за вибором

Технологія програмування на С++.
Автор програми: Тонне П.О., ліцей № 105 фізико-математичного профілю м.Запоріжжя


ПОЯСНИТЕЛЬНАЯ ЗАПИСКА


Исторически сложилось так, что программирование возникло и развивалось как процедурное программирование. В курсе информатики основной школы рассматриваются традиционные процедурно-ориентированные языки программирования.

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

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

Современное учебное заведение должно следить за новыми веяниями компьютерного обеспечения и способствовать внедрению различных технологий в учебный процесс. Особое место в обучении необходимо отвести объектно-ориентированному подходу в программировании, который лежит в настоящее время в основе многих наиболее распространенных систем, таких как Visual Basic, Delphi, Visual FoxPro, Java, Visual C++, Borland Builder C++ и других.

Появление в учебной программе спецкурса "Технологии программирования на С++" связано с широким спектром выбора системы программирования для обучения. Необходимо остановиться на таком языке программирования, который наиболее полно раскрывает принципы данного подхода, достаточно просто объясняет и демонстрирует основные понятия: объект, свойства, методы, события, класс, библиотека и т.д., и т.п. При выборе средства обучения акцент делается на понимание и умение использовать учащимися изученные принципы, полноту раскрытия основных понятий, а также возможности рассматриваемой системы программирования.

Кроме того, не является секретом, что 100% операционных систем и практически все приложения в последнее время разрабатываются с помощью Microsoft Visual C++ или Borland Builder C++.

Анализ существующих сред разработки программ позволяет остановиться на языке программирования C++ и средах Microsoft Visual C++ и Borland Builder C++.

C++ существенно отличается от тех, языков программирования которые на протяжении многих лет изучались в учебных заведениях. Его основное отличие в том, что структура программы предусматривает создание класса непосредственно. Методы, разработанные в собственном классе, могут реализовываться в текущей программе или же организовываться в библиотеку, которую пользователь может подключать к разработке других программ. Параллельно с созданием класса пользователь знакомится с основными понятиями объектно-ориентированного программирования, обращаясь к свойствам и методам соответствующего класса.

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

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

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

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

Причем в курсе основной школы учащиеся изучая базовые понятия языка С++, не затрагивают объектно – ориентированного программирования. Начиная с 10 класса происходит плавный переход к изучению объектно – ориентированного программирования.

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

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

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

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

Таким образом, целями обучения являются:
  • получение основных знаний о представлении данных в зависимости от архитектуры компьютера;
  • представление целых чисел со знаком и без знака с использованием различных систем счисления, чисел с плавающей точкой, символов;
  • получение базового уровня по программированию на языке С++ с использованием простых типов данных: базовых типов данных и массивов;
  • приобретение навыков использования базового набора фрагментов алгоритмов в процессе разработки программ, навыков анализа и «чтения» программ;
  • изучение основ технологии программирования и методов решения вычислительных задач и задач обработки символьных данных;
  • знакомство с основными принципами организации хранения и поиска данных, алгоритмами сортировки и поиска, понятием трудоемкости алгоритма;
  • изучение сред программирования.

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

Объектами изучения являются:
  • стандарт языка С++ с базовыми типами данных и массивами;
  • базовые фрагменты алгоритмов, алгоритмы обработки строк, приближенных (итерационных) вычислений, поиска и сортировки;
  • система программирования Borland C++ Builder и Microsoft Visual C++;
  • типы данных, производные типы данных, контекстное определение типа данных в С++, указатели, структуры, функции, управление памятью в С++;
  • рекурсивные алгоритмы и структуры данных – деревья;
  • указатели на функции, динамическое связывание алгоритмов, итераторы;
  • иерархические структуры данных;
  • двоичные файлы произвольного доступа, структуры данных в файлах – массивы;
  • массивы указателей, списки, деревья;
  • таблицы и индексные файлы баз данных, их организация;
  • машинно-зависимое программирование на С++, модели памяти, указатели;
  • прерывания и квази-параллельные процессы, резидентные программы.


Структура курса


В следующей таблице представлена структура курса с разбивкой по часам и годам обучения.



п/п

Тема

Часы по годам обучения

8 класс

9 класс

10 класс

11 класс

1

Типы данных в С++

8










2

Выражения и операторы

10










3

Управляющие инструкции программы

12










4

Функции

16










5

Массивы

22










6

Указатели и динамическое программирование




18







7

Функции и операции работы со строками




16







8

Структуры и объединения




10







9

Функции ввода-вывода




14







10

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







10




11

Потоковый ввод-вывод







10




12

Наследование







6




13

Перегрузка функций и операторов







10




14

Директивы препроцессора







8




15

Полиморфизм и виртуальные функции







8




16

Шаблоны. Стандартная библиотека шаблонов STL







10




17

Основы работы с C++ BUILDER







4




18

Визуальная разработка приложений баз данных







2

6

19

Использование визуальных компонентов










6

20

Графические компоненты










6

21

Интегрированная среда разработки VISUAL STUDIO










4

22

Программирование в Windows и MFC. Классы структуры приложения










6

23

Обработка сообщений и команд










6

24

Меню и диалоговые окна










8

25

Основные и дополнительные элементы управления. Строки состояния и панели инструментов










8

26

Работа с текстом и графикой










6

27

Архитектура «документ/представление»










4

28

Система помощи приложения










4

29

WIN32 API










4







68

68

68

68



2. СОДЕРЖАНИЕ КУРСА


2.1. Типы данных в С++ (8 часов)


2.1.1 История развития языков программирования высокого уровня: Фортран, Бейсик, Паскаль, Си, С++, их особенности. Язык С++ как средство программирования архитектуры компьютера. Основы работы в системах программирования Borland C++ Builder и Microsoft Visual C++.

2.1.2 Пример простейшей С++-программы создания меню для вычисления площади плоских фигур. Особенности синтаксиса. Комментарии в программах. Понятие о потоках ввода – вывода.

2.1.3 Понятие типа данных и переменной. Определение переменных в С++. Базовые типы данных char,int,long как машинные слова. Особенности типа данных char. Байт, слово. Знаковая и беззнаковая формы представления чисел в С++. Представление чисел с плавающей запятой. Константы.

2.1.4 Преобразование базовых типов данных в выражениях: действия, порядок. Явные и неявное преобразования.

Учащиеся должны знать:

- историю развития языков программирования высокого уровня;

- типы данных языка С++;

- синтаксис потокового ввода-вывода;

- действия и их порядок;

- типы переменных и константных выражений.

Учащиеся должны приобрести навыки:

- в явном и неявном преобразовании типов данных;

- комментировании программ при их разработке;

- в работе с системой проектировки программ Microsoft Visual C++;

- в использовании константных выражений.

Учащиеся должны уметь:

- проектировать простейшие программы составления меню;

- использовать потоковый ввод-вывод для ввода и вывода переменных;

- оперировать константами различных типов.


2.2 Выражения и операторы (10 часов)


2.2.1 Выражения и операции (обзор и классификация): арифметические, сравнения, логические, машинно-ориентированные, присваивания, адресные, выделения составляющего типа данных. Особенности выполнения операций на С++ (совместимость, приоритеты, направление выполнения, действие и результат). Особенности выполнения арифметических операций и операций присваивания.

2.2.2 Операция "запятая". Операции сравнения, логические операции.

2.2.3 Выражения и операторы. Роль ";" как ограничителя. Операторы инкремента и декремента.

Учащиеся должны знать:


- классификацию выражений и операций;

- особенности выполнения операций в С++ - программах;

- роль символа “;” как ограничителя;

- операторы инкремента и декремента;

- операции сравнения и логические операции.

Учащиеся должны приобрести навыки:


- в проектировке конструкций инкремента и декремента;

- в безошибочной записи выражений и операций;

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

Учащиеся должны уметь:


- вычислять произвольные арифметические выражения с использованием констант и переменных различных типов.


2.3 Управляющие инструкции программы (12 часов)


2.3.1 Классификации управляющей логики программы - последовательность, условные конструкции.

2.3.2 Циклические конструкции. Особенности синтаксиса и выполнения операторов: break, continue, return.

Учащиеся должны знать:


- классификацию управляющей логики программы – последовательность и условные конструкции;

- синтаксис и особенности выполнения циклических конструкций и операторов break, continue, return.

Учащиеся должны приобрести навыки:


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

- в применении циклических конструкций различных типов, отказе итераций выходов из циклических конструкций.

Учащиеся должны уметь:


- проектировать программы с использованием условных и циклических конструкций;

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


2.4 Функции (16 часов)


2.4.1 Функции. Параметры и аргументы функций. Результат функции.

2.4.2 Локальные и глобальные переменные. Области видимости переменных.

2.4.3 Операция ::. Классы памяти. Автоматические переменные. Регистровые переменные. Внешние переменные и функции.

2.4.4 Статические переменные. Переменные класса volatile. Новый стиль заголовков. Пространства имен.

2.4.5 Встраиваемые функции Рекурсивные функции.

2.4.6 Математические функции и функции округления.

Учащиеся должны знать:


- синтаксис объявления и определения функций;

- правила передачи параметров функций;

- различие между глобальными и локальными переменными;

- общие понятия рекурсивных функций.

Учащиеся должны приобрести навыки:


- в использовании оперции ::;

- в применении автоматических, регистровых, внешних переменных и функций;

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

Учащиеся должны уметь:


- проектировать программы с использованием нескольких функций;

- использовать параметры функции;
  • проектировать программы с использованием рекурсии.


2.5 Массивы (22 часа)


2.5.1 Инициализация массивов. Одномерные массивы.

2.5.2 Многомерные массивы.

2.5.3 Массивы в качестве параметров функций.

Учащиеся должны знать:


- основные понятие и виды массивов, ошибки, возникающие при работе с массивами;

- правила передачи массивов в качестве параметров функций.

Учащиеся должны приобрести навыки:


- в выборе типа и использовании массива для решения задачи;

Учащиеся должны уметь:


- проектировать программы с использованием одномерных и многомерных массивов;

- использовать массивы в задачах сортировки различными методами;

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


2.6 Указатели и динамическое программирование (18 часов)


2.6.1 Понятие и разыменовывание указателей. Арифметика указателей.

2.6.2 Применение к указателям оператора sizeof. Указатели на указатели.

2.6.3 Указатели на функции . Ссылки. Передача параметров по ссылке и по значению. Использование указателей с ключевым словом const.

2.6.4 Динамическое выделение массивов. Функции malloc, calloc, free и операторы new и delete.

Учащиеся должны знать:


- основные понятия указателей;

- синтаксис и особенности оператора sizeof.

Учащиеся должны приобрести навыки:


- в разыменовывании и использовании арифметики указателей;

- в использовании в программах оператора sizeof для вычисления необходимого размера памяти;

- в применении указателей на указатели и указатели на функцию, использовании указателей с ключевым словом const;

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

Учащиеся должны уметь:


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

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


2.7 Функции и операции работы со строками (16 часов)


2.7.1 Массивы символов в С++. Типы Cstring и AnsiString. Определение длины строки. Копирование и конкатенация строк.

2.7.2 Сравнение строк. Преобразование и обращение строк.

2.7.3 Поиск символов и поиск подстрок.

2.7.4 Функции преобразования типа.

Учащиеся должны знать:


- основные понятие и представления строковых величин;

- типы Cstring и AnsiString;

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

Учащиеся должны приобрести навыки:


- в сравнении, преобразовании и обращении строк;

- в поиске символов и подстрок;

- в использовании функций преобразования типа.

Учащиеся должны уметь:


- проектировать программу вывода кириллицы в консольном режиме;

- решать задачи с использованием методов обработки текстовой информации.


2.8 Структуры и объединения (10 часов)


2.8.1 Структуры и операции с ними. Структуры как аргументы функций.

2.8.2 Массивы структур. Указатели на структуры. Передача по ссылке членов массивов структур.

2.8.3 Объединения и операции с ними. Пользовательские типы данных.

2.8.4 Функции работы с датой и временем.

Учащиеся должны знать:


- основные понятия и представления структур и массивов структур;

- основные понятия объединений;

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

Учащиеся должны приобрести навыки:


- в создании структур и объединений;

- в создании различных пользовательских типов данных;

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

Учащиеся должны уметь:


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


2.9 Функции ввода-вывода (14 часов)


2.9.1 Потоковый ввод-вывод. Стандартные потоки. Функции ввода и вывода символов.

2.9.2 Функции ввода и вывода строк.

2.9.3 Функции файлового ввода-вывода.

2.9.4 Функции позиционирования.

Учащиеся должны знать:


- основные понятия потокового ввода-вывода;

- синтаксис функций ввода-вывода символов, строк, файлового ввода-вывода, позиционирования.

Учащиеся должны приобрести навыки:


- в использовании функций ввода-вывода символов, строк, файлового ввода-вывода, позиционирования.

Учащиеся должны уметь:


- проектировать программы, используя файловый ввод-вывод.


2.10 Принципы объектно-ориентированного программирования (10 часов)


2.10.1 Классы. Конструкторы и деструкторы.

2.10.2 Список инициализации элементов. Конструкторы по умолчанию и конструкторы копирования.

2.10.3 Указатель this. Встраиваемые (inline-) функции.

2.10.4 Статические члены классы. Константные объекты и константные функции-члены класса. Ключевое слово mutable.

2.10.5 Использование указателей на функции-члены класса.

2.10.6 Массивы объектов класса.

2.10.7 Дружественные функции и друзья класса.

Учащиеся должны знать:


- основные понятия классов, конструкторы и деструкторы, виды конструкторов;

- синтаксис статических элементов класса;

- понятия дружественных функций и друзей класса.

Учащиеся должны приобрести навыки:


- в создании классов;

- в создании конструкторов и деструкторов;

- в создании статических членов класса, константных объектов и константных функций-членов класса;

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

Учащиеся должны уметь:


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


2.11 Потоковый ввод-вывод (10 часов)


2.11.1 Предопределенные потоки.

2.11.2 Операции помещения и извлечения из потока.

2.11.3 Файловый ввод-вывод с использованием потоков.

2.11.4 Неформатируемый ввод-вывод. Функции ввода-вывода.

2.11.5 Файлы с произвольным доступом. Опрос и установка состояния потока. Ошибки потоков.

2.11.6 Переадресация ввода-вывода. Резидентные в памяти потоки.

Учащиеся должны знать:


- основные понятия и виды предопределенных потоков;

- синтаксис операций помещения и извлечения из потоков;

- функций файлового ввода-вывода с использованием потоков;

- понятия файлов с произвольным доступом.

Учащиеся должны приобрести навыки:


- в использовании предопределенных потоков ввода-вывода;

- в опросе и установке состояния потока;

- в практическом использовании ошибок потоков;

- в переадресации ввода-вывода.

Учащиеся должны уметь:


- проектировать программы, с использованием предопределенных потоков ввод-вывод, помещать и извлекать из потока, производить переадресацию потоков и использовать резидентные потоки.


2.12 Наследование (6 часов)


2.12.1 Простое наследование.

2.12.3 Множественное наследование.

2.12.4 Виртуальные базовые классы.

Учащиеся должны знать:


- основные понятия и виды наследования.

Учащиеся должны приобрести навыки:


- проектировать множественное наследование и виртуальные базовые классы.

Учащиеся должны уметь:


- проектировать программы, с использованием простого и множественного наследования и виртуальных базовых классов.


2.13 Перегрузка функций и операторов (10 часов)


2.13.1 Перегрузка функций и конструкторов.

2.13.2 Создание и использования конструкторов копирования. Перегрузка и неоднозначность. Определение адреса перегружаемой функции.

2.13.3 Перегрузка операторов. Перегрузка бинарных операторов, операторов отношения и логических операторов.

2.13.4 Перегрузка оператора присваивания, унарных операторов, операторов инкремента и декремента.

2.13.5 Перегрузка оператора индексирования, оператора вызова функции и операторов доступа к членам класса.

2.13.6 Перегрузка операторов new и delete.

2.13.7 Функции преобразования типа.

Учащиеся должны знать:


- основные понятия перегрузок функций и операторов;

Учащиеся должны приобрести навыки:


- в создании и использования конструкторов копирования;

- в определении адреса перегружаемой функции;

- в перегрузке бинарных операторов, операторов отношения и логических операторов;

- в перегрузке оператора присваивания, унарных операторов, операторов инкремента и декремента;

- в перегрузке оператора индексирования, оператора вызова функции и операторов доступа к членам класса;

- в перегрузке операторов new и delete.

Учащиеся должны уметь:


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


2.14 Директивы препроцессора (8 часов)


2.14.1 Директивы.

2.14.2 Основные принципы использования файлов заголовков.

2.14.3 Оператор defined.

2.14.4 Макросы. Предопределенные макросы. Операции, применяемые в директивах препроцессора.

Учащиеся должны знать:


- основные понятия директив препроцессора;

- синтаксис операций директив препроцессора.

Учащиеся должны приобрести навыки:


- в использовании файлов заголовков и макросов.

Учащиеся должны уметь :


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


2.15 Полиморфизм и виртуальные функции (8 часов)


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

2.15.2 Виртуальные и невиртуальные функции. Применение динамического полиморфизма.

2.15.3 Виртуальные деструкторы. Абстрактные классы и чисто виртуальные функции.

Учащиеся должны знать:


- основные понятия раннего и позднего связывания;

- синтаксис виртуальных и невиртуальных функций.

Учащиеся должны приобрести навыки:


- в применении динамического полиморфизма.

Учащиеся должны уметь :


- проектировать программы, используя абстрактные классы.


2.16 Шаблоны. Стандартная библиотека шаблонов STL (10 часов)


2.16.1 Назначение и состав библиотеки. Контейнеры. Последовательные контейнеры.

2.16.2 Векторы.

2.16.3 Списки.

2.16.4 Деки и операции с ними.

2.16.5 Стеки и операции с ними.

2.16.6 Очереди и операции с ними.

2.16.7 Ассоциативные контейнеры. Универсальные алгоритмы.

Учащиеся должны знать:


- назначение и состав библиотеки STL;

- набор универсальных алгоритмов.

Учащиеся должны приобрести навыки:


- в использовании операций при работе с векторами, списками, деками, стеками и очередью.

Учащиеся должны уметь:


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


2.17 Основы работы с C++ BUILDER (4 часа)


2.17.1 Первое знакомство. Визуальное проектирование. Свойства, методы и события.

2.17.2 Технология двунаправленной разработки. Использование проектных шаблонов.

2.17.3 Новые возможности языка C++. Компоненты. Объявления компонентных классов. Объявления свойств. Объявления обработчиков событий. Объявления автоматизированных свойств и методов. Быстрый вызов функций. Расширенные типы данных Delphi. Расширения стандарта ANSI C++. Идентификация типов RTTI.

2.17.4. Инструменты визуальной разработки приложений. Администратор проекта. Редактор форм. Инспектор объектов. Хранилище объектов. Разделение объектов. Включение объектов в проект. Добавление объектов к хранилищу. Проект и формы, создаваемые по умолчанию.

2.17.5 Редактор кода. Палитра компонент.

2.17.6 Стандартные компоненты. TMainlVlenu, TpopUpMenu, TLabel, TEdit, ТMеmо, TButton, TCheckBox, TRadioButton, TListBox, TComboBox, TScrollBar, TGroupВох, TRadioGroup, TPanel.

2.17.7 Компоненты Win95. TTabControl, TPageControl, TListView, TImageList, THeaderControl, TRichEdit, TStatusBar, TTrackBar, TProgressBar, TupDown, ThotKey.

2.17.8 Дополнительные компоненты. TBitBtn, TSpeedButton, TDrawGrid, HTImage, TShape, TBevel, TScrollBox.

2.17.9 Компоненты доступа к базам данных. TDataSource, ТTаble, TQuery, TStoredProc, TDatabase, TSession, TBatchMove, TUpdateSQL.

2.17.10 Компоненты управления данными. TDBGrid, TDBNavigator, TDBText, TDBEdit, TDBMemo.

Учащиеся должны знать:


- основные понятия визуального проектирования: объекты, свойства, методы и события;

- технологию двунаправленной разработки;

- инструменты визуальной разработки приложений.

Учащиеся должны приобрести навыки:


- в использовании стандартных компонент, компонент Win95, дополнительных компонент.

Учащиеся должны уметь:


- проектировать программы, используя Borland C++ BUILDER.

- находить доступ и использовать в программах следующие компоненты: TMainlVlenu, TpopUpMenu, TLabel, TEdit, ТMеmо, TButton, TCheckBox, TRadioButton, TListBox, TComboBox, TScrollBar, TGroupВох, TRadioGroup, TPanel,. TTabControl, TPageControl, TListView, TImageList, THeaderControl, TRichEdit, TStatusBar, TTrackBar, TProgressBar, TupDown, ThotKey, TBitBtn, TSpeedButton, TDrawGrid, HTImage, TShape, TBevel, TscrollBox, TDataSource, ТTаble, TQuery, TStoredProc, TDatabase, TSession, TBatchMove, TUpdateSQL, TDBGrid, TDBNavigator, TDBText, TDBEdit, TDBMemo..


2.18 Визуальная разработка приложений баз данных. (8 часов)


2.18.1 Организация доступа к базам данных. Механизм BDE. Конфигурация BDE.

2.18.2 Страницы Drivers, Aliases, System, Date, Time, Number. "Живые данные".

2.18.3 Использование визуальных компонент.

2.18.4 Компоненты доступа к данным. Источники данных.

2.18.5 Таблицы. Запросы.

2.18.6 Хранимые процедуры.

2.18.7 Соединения с базой данных и транзакции.

2.18.8 Компоненты управления данными.

Учащиеся должны знать:


- организации доступа к базам данных и механизма BDE;

- понятия таблиц запросов и транзакций.

Учащиеся должны приобрести навыки:


- в конфигурации BDE;

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

Учащиеся должны уметь:


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


2.19 Использование и создание визуальных компонентов (6 часов)


2.19.1 Назначение и устройство VCL. VCL для прикладных и системных программистов. Компоненты VCL.

2.19.2 Типы компонент. Стандартные компоненты. Оригинальные компоненты. Графические компоненты. Невидимые компоненты. Контейнерные компоненты. Право владения. Родительское право. Поточность.

2.19.3 Свойства компонент. Объявление свойств. Доступ к внутренним данным свойств. Свойства, обеспечивающие доступ к членам данных. Методы записи и чтения свойств. Переопределение свойств.

2.19.4 Типы свойств. Свойства типа множество. Свойства типа массив.

2.19.5 События. Определение событий. Стандартные события. Собственные события. События и сообщения Windows. Обработка событий.

2.19.6 Методы. Вызовы статических методов. Вызовы виртуальных методов.

2.19.7 Иерархия классов VCL. TObject, TPersistent, TComponent, TControl, TWinControl, TGraphicControl, TCustomControl.

2.19.8 Схема разработки компонент. Создание модуля компоненты. Наследование компоненты. Модификация существующих компонент. Создание оригинальных оконных компонент. Создание графических компонент. Создание невидимых компонент. Добавление свойств, событий и методов. Регистрация компоненты. Отладка неинсталлированной компоненты. Инсталляция компоненты на Палитру.

2.19.9 Разработка простой компоненты. Форма тестового приложения. Модуль тестового приложения. Члены данных, свойства и методы. Испытание компоненты. Инсталляция компоненты.

Учащиеся должны знать:


- назначение, устройства и компоненты VCL;

- типы компонент: стандартные компоненты, оригинальные компоненты, графические компоненты, невидимые компоненты, контейнерные компоненты;

- cтандартные события и сообщения Windows;

- иерархию классов VCL. TObject, TPersistent, TComponent, TControl, TWinControl, TGraphicControl, TCustomControl.

Учащиеся должны приобрести навыки:


- в определение собственных событий и компонент;

- в схеме разработки компонент;

- в создании модуля компоненты и наследовании компоненты;

- в модификации существующих компонент;

- в создании оригинальных оконных компонент;

- в создании графических компонент;

- в создании невидимых компонент;

- в добавлении свойств, событий и методов;

- в регистрации компоненты и отладке неинсталлированной компоненты;

- в инсталляции компоненты на Палитру.

Учащиеся должны уметь:


- проектировать программы, используя собственные события и компоненты, создавать компоненты и добавлять свойства, события и методы.





2.20 Графические компоненты (6 часов)


2.20.1 Поддержка графики в C++ Builder.

2.20.2 Использование канвы.

2.20.3 Работа с рисунками. Рисунок, графика или канва.

2.20.4 Графические файлы. Обслуживание палитр.

2.20.5 Внеэкранные битовые образы. Копирование битовых образов. Создание и обслуживание. Реакция на изменения.

2.20.6 Разработка графического приложения. Проектирование формы. Программный модуль. Спрайты.

Учащиеся должны знать:


- основы организации работы с графическими файлами.

Учащиеся должны приобрести навыки:


- в обслуживаниие палитр и внеэкранных битовые образов;

- в создании и обслуживании реакции на изменения внеэкранных битовые образов.

Учащиеся должны уметь:


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


2.21 Итегрированная среда разработки VISUAL STUDIO (4 часа)


2.21.1 Команды меню интегрированной среды.

2.21.2 Создание приложений с помощью AppWizard.

2.21.3 Параметры и окно проекта.

2.21.4 Использование ClassWizard.

Учащиеся должны знать:


- команды меню интегрированной среды.

Учащиеся должны приобрести навыки:


- в работе с интегрированной средой MS Visual Studio.

Учащиеся должны уметь:


- разрабатывать приложения с помощью AppWizard и ClassWizard.


2.22 Программирование в Windows и MFC. Класы структуры приложения (6 часов)


2.22.1 Виды и структура приложений. Типы данных в Windows. Иерархия классов в MFC.

2.22.2 Класс CObject.

2.22.3 Макросы и глобальные функции MFC. Панели сообщений и форматирование строк.

2.22.4 Классы CWinApp, CWnd и CFrameWnd.

Учащиеся должны знать:


- виды и структуру приложений;

- типы данных в Windows;

- иерархию классов в MFC.

Учащиеся должны приобрести навыки:


- в работе с макросами и глобальными функциями MFC.

Учащиеся должны уметь:


- разрабатывать приложения с помощью классов CWinApp, CWnd и CFrameWnd.


2.23 Обработка сообщений и команд (6 часов)


2.23.1 Элементы таблицы сообщений.

2.23.2 Команды обновления. Класс CCmdUI. Функции работы с сообщениями.

2.23.3 Цикл обработки сообщений. Добавление обработчиков сообщений с помощью ClassWizard.

2.23.4 Обработка сообщений окна, клавиатуры, мыши и таймера. Сообщения WM_PAINT.

Учащиеся должны знать:


- элементы таблицы сообщений;

- команды обновления;

- функции работы с сообщениями.

Учащиеся должны приобрести навыки:


- в добавление обработчиков сообщений с помощью ClassWizard.

Учащиеся должны уметь:


- разрабатывать приложения с использованием обработки сообщений окна, клавиатуры, мыши и таймера.


2.24 Меню и диалоговые окна (8 часов)


2.24.1 Создание меню с помощью редактора ресурсов. Обработчик элементов меню. Подключение меню к окну приложения.

2.24.2 Класс CMenu. Функции работы с меню. Динамическое создание меню.

2.24.3 Виды диалоговых окон. Класс CDialog. Обмен данными с окнами. Немодальный диалог.

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

Учащиеся должны знать:


- виды диалоговых окон и функции работы с меню.

Учащиеся должны приобрести навыки:


- в создание меню с помощью редактора ресурсов;

- в подключении меню к окну приложения;

- в использовании диалоговых окон.

Учащиеся должны уметь:


- разрабатывать приложения, использующие меню.


2.25 Основные и дополнительные элементы управления. Строки состояния и панели инструментов (8 часов)


2.25.1 Виды основных элементов управления. Статический элемент управления. Окно редактирования. Кнопки. Полоса прокрутки. Список. Комбинированный список.

2.25.2 Представление списка. Функции работы со списком.

2.25.3 Заголовок. Работа с элементами заголовка.

2.25.4 "Представление дерева".

2.25.5 Список изображений. Функции работы со списком изображений.

2.25.6 "Горячая клавиша", ползунок, спин-кнопка.

Учащиеся должны знать:


- виды основных элементов управления.

Учащиеся должны приобрести навыки:


- в использовании основных элементов управления.

Учащиеся должны уметь:


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


2.26 Работа с текстом и графикой (6 часов)


2.26.1 Печать и предварительный просмотр текста. Класс CPrintInfo и функция OnPrint().

2.26.2 Класс CDC и его производные. Функция.

2.26.3 Объекты и режимы рисования. Функции класса для рисования. Функция DrawState(). Отображение битовых массивов.

2.26.4 Класс CGdiObject и его функции-члены. Классы CPen, CBrush, CFont, CBitmap. Виртуальное окно.

Учащиеся должны знать:


- функции класса для рисования.

Учащиеся должны приобрести навыки:


- в использовании классов CDC, CPrintInfo, . CGdiObject, CPen, CBrush, CFont, CBitmap.

Учащиеся должны уметь:


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


2.27 Архитектура "документ/представление" (4 часа)


2.27.1 Объект-приложение в архитектуре "документ/представление". Классы CDocTemplate и CsingleDocTemplate.

2.27.2 Класс CMultiDocTemplate. Особенности MDI-приложения. Фрейм в архитектуре "документ/представление".

2.27.3 Документы. Класс CDocument. Обработка сообщений. Класс CSplitterWnd. Сохранение и загрузка документа.

Учащиеся должны знать:


- особенности MDI-приложений.

Учащиеся должны приобрести навыки:


- в использовании классов CDocTemplate, CsingleDocTemplate, CMultiDocTemplate,. CDocument, CSplitterWnd.

Учащиеся должны уметь:


- разрабатывать объект-приложения в архитектуре "документ/представление".


2.28 Система помощи приложения (4 часа)


2.28.1 Копмоненты справочной системы. Поддержка системы мастером AppWizard.

2.28.2 Системы командной и контекстной справки.

2.28.3 Файл проекта справочной системы.

Учащиеся должны знать:


- основные копмоненты справочной системы.

Учащиеся должны приобрести навыки:


- в использовании AppWizard для проектировки справочной системы.

Учащиеся должны уметь:


- разрабатывать файлы проекта справочной системы.


2.29 WIN32 API (4 часа)


2.29.1 Структурная обработка исключений.

2.29.2 Коммуникационный API WIN32.

2.29.3 Console API WIN32.

2.29.4 API сервиса удаленного доступа.

Учащиеся должны знать:


- основные понятия структурной обработки исключений.

Учащиеся должны приобрести навыки:


- в использовании Console API WIN32 для проектировки программ.

Учащиеся должны уметь:


- разрабатывать приложения с использованием библиотек WIN32 API.


3. СПИСОК ЛИТЕРАТУРЫ


1. Арсак Р.Программирование игр и головоломок. - М.: Мир, 1994.

2. Бабэ Б. Просто и ясно о Borland C++: Пер. с англ. - M.: Бином, 1996.

3. Белецкий Я. Энциклопедия языка Си. - М.: Мир, 1992.

4. Брудно А.Л., Каплан Л.И. Московские олимпиады по программированию. - М.: Наука, 1990.

5. Вирт Н. Алгоритмы и структуры данных: Пер. с англ. - М.: Мир, 1989.

6. Вирт Н. Систематическое программирование. - М.: Мир, 1977.

7. Глушаков С.В., Коваль А.В., Черепнин С.A. Программирование на Visual С++. - Харьков, Фолио, 2002.

8. Глушаков С.В., Коваль А.В., Смирнов С.В. Язык программирования С++. - Харьков, Фолио, 2002.

9. Дейкстра Э.Дисциплина программирования. -М.: , 1978.

10. Х.М.Дейтел., П.Дж.Дейтел. Как программировать на Си++. - М.: ЗАО БИНОМ, 1999.

11. Дьюхарот С., Старк К. Программирование на Си++. - Киев, НИПФ, Диасофт, 1993.

12. Зубов В.С.Справочник программиста: базовые методы решения графовых задач и сортировки. - .:Филинъ, 1999.

13. Керниган Б., Ритчи Д., Фьюер А. Язык программирования Си. Задачи по языку Си: Пер. с англ. - М.: Финансы и статистика, 1985.

14. Климова Л.М.. Основы практического программирования на языке Си. - М.: Издательство ПРИОР, 1999.

15. Кнут Д. Искусство программирования для ЭВМ. т.3. Сортировка и поиск: Пер. с англ., - М.: Мир, 1978.

16. Кушниренко А.Г., Лебедев Г.В. Программирование для математиков. - М.: Наука, 1988.

17. Липский В. Комбинаторика для программистов. - М.: Мир, 1989.

18. Новиков Ф.А. Дискретная математика для программистов. - Санкт-Петербург: Питер, 2000.

19. Ноден П., Китте К. Алгебраическая алгоритмика. - М.: Мир, 1999.

20. Окулов С.М., Пестов А.А., Пестов О.А. Информатика в задачах. - Киров: ВГПУ, 1998.

21. Подбельский В.В., Фомин С.С. Программирование на языке Си. - М.: ФиС, 1999.

22. Подбельский В.В. Язык Си++: Учеб.пособие. -М.: Финансы и статистика, 1995.

23. Рассохин Д. От Си к Си++. - М.: Издательство "ЭДЭЛЬ", 1993.

24. Рейнгольд Э., Нивергельт Н., Део Н.Комбинаторные алгоритмы. Теория и практика. - М.: Мир,1980.

25. Романов В.Ю. Программирование на языке Си++: Практический подход. -М.: Компьютер, 1993.

26. Стенли Б., Липпман. C. Си++ для начинающих (в 2 томах). - М.: ГЕЛИОН, 1993.

27.Топп У., Форд У. Структуры данных в Си++. -М.: ЗАО БИНОМ, 1999.

29. Холзнер С. Visual C++ 6: Учебный курс. - Санкт-Петербург, Питер, 1999.

30. Шень А. Программирование: теоремы и задачи. - М.: МЦНМО, 1995.

31. Эллис М., Струструп Б. Справочное руководство по языку программирования Си++ с комментариями. - М.:Мир,1992.