специальность 071900 - Кафедра Информационых Технологий

advertisement
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
БЕЛГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
им.В.Г.Шухова
"УТВЕРЖДАЮ"
декан факультета АПиИТ
______________ Рубанов В.Г.
«____»_____________ 2004 г.
РАБОЧАЯ ПРОГРАММА
по дисциплине
«Визуальное программирование»
специальность 071900
Информационные системы и технологии
факультет
кафедра
Белгород 2004г.
АПиИТ
ИТ
2
Рабочая программа составлена на основании государственного стандарта и учебных планов
утвержденного _____________________
Заведующий кафедрой __________________
(подпись)
"____"___________ 2004 г.
Рабочая программа утверждена на заседании кафедры
"____"_____________ 2004 г.
протокол №_____
Заведующий кафедрой____________________ Иванов И.В.
(подпись)
Ведущий преподаватель __________________ Штифанов А.И.
(подпись)
Рабочая программа одобрена методической комиссией факультета АПиИТ
"____"_______________2004 г.
Председатель методической комиссии факультета ____________ Солопов Ю.И.
(подпись)
3
1. ЦЕЛИ И ЗАДАЧИ ДИСЦИПЛИНЫ, ЕЕ МЕСТО В УЧЕБНОМ ПРОЦЕССЕ
1.1. Цель преподавания дисциплины.
Основной целью дисциплины является формирование у будущих специалистов
практических навыков по основам визуального и объектно-ориентированного
программирования, необходимых для создания сложных программных комплексов.
Ознакомление студентов с языком программирования Object Pascal, а также освоение ими
методик построения объектно-ориентированных программ.
1.2. Задачи изучения дисциплины.
В результате изучения дисциплины студенты должны:
1) знать:
– основные конструкции языка программирования Object Pascal;
– средства объектно-ориентированного программирования, их возможности,
преимущества и недостатки;
– методику объектно-ориентированного анализа и проектирования.
2) уметь:
– разрабатывать программы на языке Object Pascal, в том числе с использованием
классов;
– работать с инструментальной системой программирования Delphi,
– создавать простые программы в средах C++ Builder и Microsoft Visual C++.
1.3. Перечень дисциплин с указанием разделов (тем), усвоение которых студентам
необходимо для усвоения данной дисциплины.
Наименование
дисциплины
Информатика
Технология
программирования
Информационные
технологии
Наименование разделов (тем)
Кол-во
часов
Алгоритмизация и программирование, базы данных.
Постановка и алгоритмизация задач, принципы
объектно-ориентированного программирования
Основы построения информационных систем
2. СОДЕРЖАНИЕ ДИСЦИПЛИНЫ
2.1. Объем дисциплины.
Распределение часов по семестрам и видам занятий.
Виды занятий
Обозначе-ния
Семестр №4
Семестр №5
Всего
В неделю
Всего
В
часов
часов
неделю
Лекции
Л.
17
1
Лабораторные
Л.З.
34
2
Практические
П.З.
УИРС
УИРС
Консультации
– текущие
– по курсовой работе
КР
КР
– по курсовому проекту
КП
– предэкзамен.
Вид контроля (зачет, диф.
зачет
диф. зачет
зачет, экзамен)
Самостоятельная работа
СРС
17
34
студентов
4
2.2. Наименование тем, их содержание, объем в часах лекционных занятий.
Курс 2, семестр 4.
Тема лекции
Содержание темы
№
п/п
1
2
1.
Объектноориентированный
подход к
проектированию и
разработке программ.
Задачи курса и порядок его изучения. Роль курса в
формировании специалистов. Сущность объектноориентированного подхода. Объектный тип
данных. Переменные объектного типа.
Инкапсуляция. Наследование. Полиморфизм.
Конструкторы и деструкторы.
Кол-во
часов
4
2
2.
Среда разработчика
DELPHI
Понятие проекта. Диспетчер проектов. Главное
окно. Окно формы. Окно Инспектора объектов.
Окно кода программы. Система меню. Директивы
компилятора. Работа с редактором. Отладка
программ.
2
3.
Основы визуального
программирования.
Форма и ее модификация. Размещение нового
компонента. Событие и обработка события.
Библиотека визуальных компонентов. Создание и
оформление приложений. Ввод и выбор значений
визуальных компонентов.
2
4.
Введение в OBJECT
PASCAL.
Структура программ Delphi. Типы данных.
Управляющие структуры Object Pascal. Процедуры
и функции. Типы модулей в Delphi. Особенности
создания и обработки файлов. Динамическая
память.
2
5.
Классы общего
назначения DELPHI.
Класс обработки исключений. Класс списков. Класс
наборов строк и объектов. Класс потоков данных.
Классы для работы с графикой.
2
6.
Графические
Карандаш и кисть. Вывод текста. Процедуры
возможности DELPHI. вычерчивания графических примитивов. Вывод
иллюстраций. Метод базовой точки. Создание
файла ресурсов. Включение ресурсов в файл
выполняемой программы.
2
7.
Общие свойства
компонентов DELPHI.
2
8.
Сравнительный анализ Основные особенности Visual Basic, Visual C++. Их
существующих систем сходства и отличия от систем Delphi и С++ Builder.
визуального
программирования
3
Итого за 1 семестр
17
Иерархия компонентов DELPHI. Родительские и
дочерние компоненты. Положение, размеры и
оформление компонентов. Обработка событий.
Создание и поддержка справочной службы.
5
2.3. Лабораторные занятия. Их содержание и объем в часах
Курс 2, семестр 4.
№
Тема практического занятия
п/п
1. Изучение стандартных компонентов Delphi
2. Построение иерархии объектов
3. Построение многозадачных приложений
4. Использование потоков
5. Cписки выбора и технология “drag-and-drop”
6. Обработка исключительных ситуаций
7. Разработка компонентов
8. Создание простейшего приложения в Visual C++
Итого за 4-й семестр
Количество
часов
4
6
4
4
4
4
4
4
34
2.4. Курсовая работа, её характеристика.
Курс 3, семестр 5.
Разработка программного продукта на языке программирования Object Pascal для
операционной системы MS Windows. Примерная тематика курсовых работ:
1. Создать приложение, позволяющее осуществлять замену RGB-цветов в выбранном
графическом файле по принципу R [Rmin - Rmax], G [Gmin - Gmax], B [Bmin - Bmax]  R1G1B1
2. Разработать приложение, позволяющее проигрывать медиафайлы (использовать
возможности создания / изменения / сохранения альбомов воспроизводимых произведений).
3. Разработать приложение, позволяющее принудительно переключать разрешающую
способность дисплея (предусмотреть выдачу диагностики).
4. Разработать программу простейшей мультипликации (движение 'биллиардного шара',
использовать внеэкранный контейнер).
5. Разработать систему вывода доступных в данном каталоге файлов по заданной маске,
результат вывести в компонент TListBox.
6. Разработать утилиту, создающую окружности случайного цвета и диаметра в указанной
мышью точке экрана (предусмотреть возможность выбора кнопок мыши - левая, правая,
обе).
7. Разработать систему для определения времени реакции пользователя на возникновение
предопределенных геометрических фигур (предусмотреть сервис – например, выдачу
статистических данных).
8. Создать окно с кнопкой (или другим объектом по выбору), которую пользователь может
плавно перемещать (любым способом) в пределах окна.
9. Разработать простейший калькулятор (4 действия с целыми числами, использовать
возможности try/except для 'отлова' исключительных ситуаций).
10. Разработать систему перекодировки целых чисел между системами с основаниями 2, 10, 8
и 16.
11. Разработать калькулятор с тригонометрическими функциями (использовать возможности
try/except для 'отлова' исключительных ситуаций).
12. Создать программу для демонстрации RGB-смешивания цветов в WINDOWS
(использовать INI-файл для запоминания и восстановления цвета).
13. Создать окно без заголовка, которое тем не менее можно перемещать по экрану с
помощью мыши.
14. Разработать приложение, позволяющее отображать окно в виде эллипса (размеры
эллипса задавать посредством параметров командной строки).
15. Разработать однооконное приложение, распознающее (и индицирующее) нажатие всех
клавиш (учитывая состояния клавиш Shift, Ctrl, Alt и др. ).
6
16. Разработать приложение, индицирующее имя компонента, сгенерировавшего сообщение
(использовать любые допустимые Control’ы).
17. Создать утилиту для переименования/копирования выбранного файла (обеспечить
сохранение атрибутов файла).
18. Создать утилиту для изменения даты создания выбранного файла.
19. Разработать приложение, при попытке завершения которого выдается стандартный
предупреждающий диалог; реализовать выбор из следующих ситуаций «закрыть / свернуть
на TaskBar / ничего не делать».
20. Создать окно, на поверхности которого пользователь может рисовать непрерывную
линию путем перемещения мыши во время нажатии левой кнопки оной (предусмотреть
возможность выбора цвета л толщины линии с помощью правой кнопки мыши).
21. Создать окно, на поверхности которого пользователь может рисовать непрерывные
линии путем перемещения мыши, причем начало линии определяется нажатием левой
клавиши мыши, конец - нажатием правой.
22. Разработать систему вывода доступных в текущем каталоге файлов и подкаталогов по
заданной маске, результат вывести в компонент TComboBox.
23. Разработать выполняющееся в свернутом виде приложение, напоминающее
пользователю о слишком позднем (например, после 24 час. ) времени работы (звуком и
выдачей окна с предупреждение), предупреждение выдавать каждые 15 мин.
24. Разработать систему вывода доступных в данном каталоге файлов и подкаталогов по
заданной маске, результат вывести в многострочный редактор (TMemo).
25. Разработать приложение, управляющее (с помощью звука и выдачи соответствующих
окон) процессом приготовления блинов (вылить тесто на сковороду - обжарить с одной
стороны - перевернуть - обжарить с другой - снять), предусмотреть настройку временных
интервалов и их запоминание в INI-файле.
26. Создать приложение, вычисляющее статистику длин слов в выбранном текстовом файле
(выдать значение среднего, дисперсии, гистограмму в графике).
27. Создать приложение, оценивающее число PI с помощью метода Монте-Карло
(предусмотреть графическую интерпретацию вычислений).
28. Разработать простейшее приложение с функциональностью «тамагочи».
29. Создать приложение для вычисления дня Пасхи (алгоритм Гаусса) для выбранного
пользователем диапазона годов, результат поместить в TListBox.
30. Создать приложение, позволяющее изменять форму главного окна на полигональную
(предусмотреть возможность задания параметров многогранника).
31. Создать окно, позволяющее использовать растровый графический файл в качестве
'подложки' (фона) окна (имя файла передать через параметры командной строки, реализовать
возможность управления масштабированием изображения).
32. Создать приложение для определения, находится ли заданная точка внутри или снаружи
произвольного многоугольника (координаты вершин последнего и пробной точки выбирать
с помощью ‘мыши’).
33. Создать приложение, определяющее статистику встречаемости букв алфавита в
выбранном тексте (ввод из файла), результаты выдать в числовом и графическом
(гистограмма) виде.
34. Разработать приложение для вычисления площади круга единичного радиуса с помощью
метода Монте-Карло (дать графическую интерпретацию результатов вычислений).
35. Разработать приложение, иллюстрирующее поиск минимума заданной функции (текст
функции вводить в командной строке) методом покоординатного спуска, предусмотреть
задание начальной точки и точности поиска, процесс поиска графически иллюстрировать.
36. Разработать приложение для определения скорости печати пользователя (в
символах/мин. ), предусмотреть задание времени тестирования.
37. Разработать приложение для определения скорости печати пользователя (в словах/мин. ),
предусмотреть задание времени тестирования.
7
38. Создать приложение, допускающее выполнение только одного экземпляра данной
программы (и выдающее предупреждение при попытке старта второго).
39. Создать резидентно выполняющееся приложение, не индицируемое 'иконкой' на
TaskBar'e.
40. Разработать приложение, перехватывающее (и индицирующее) ВСЕ нажатия клавиш
клавиатуры (для последующей обработки).
41. Разработать приложение, позволяющее манипулировать (создавать, сохранять,
считывать, активизировать) OLE-объектами (расширение файлов сохранения - OLE).
42. Разработать приложение, использующее для манипулирования файлами потоки
(компонент TFileStream).
43. Создать приложение, позволяющее во время исполнения (в RunTime) модифицировать
(добавлять, уничтожать, изменять) элементы главного меню.
44. Разработать приложение, передающее (через механизм DDE) значения некоей величины
(заданное, например, положением ползунка) другому приложению (принятое значение
индицировать строкой или 'стрелкой спидометра').
45. Создать приложение, в котором пользователь имеет возможность плавно перемещать (с
помощью мыши) визуальный объект (кнопку, TComboBox, TMemo и др. ) по форме (окну).
46. Создать приложение, позволяющее стартовать другое (выбранное пользователем,
например, WinWord, Notepad и др. ) приложение в двух режимах - без ожидания и с
ожиданием завершения оного.
47. Разработать приложение, «снимающее» и «возвращающее» стрелки с/на ярлычков на
Рабочем столе Windows.
48. Создать приложение, позволяющее во время исполнения (в RunTime) модифицировать
(добавлять, уничтожать, изменять) элементы всплывающего (PopUp) меню данного окна.
49. Разработать приложение, позволяющее последовательно проигрывать все медиафайлы в
выбранном пользователем каталоге.
50. Вывести в многострочный редактор (TMemo) значения параметров командной строки
данной программы.
51. Вывести в многострочный редактор (TMemo) имена переменных среды WINDOWS с
нумерацией (С++Builder).
52. Создать окно, позволяющее изменять свои размеры в заданном диапазоне (диапазон
задавать в командной строке) и явно выражающее свое ‘нежелание’.
53. Создать резидентное (индицируемое только значком на TaskBar’e) приложение, с
заданной периодичностью ‘всплывающее’ и индицирующее текущее время.
54. Осуществить поиск заданного файла в группе каталогов, выбираемых визуальным
способом (без ввода имен с клавиатуры).
55. Создать окно, на котором имеется возможность отрисовывать прямоугольники (левая
верхняя точка - щелчок левой кнопкой мыши, правая нижняя точка - щелчок правой
кнопкой, предусмотреть возможность выбора цвета и толщины линии).
56. Создать приложение, с заданным промежутком времени индицирующее размер общего и
свободного места на выбранном логическом диске.
57. Создать перекодировщик текста из кодировок OEM в ANSI и обратно (ввод/вывод в
выбранный файл).
58. Создать приложение для индикации («показа») всех найденных в выбранном каталоге
BMP-файлов в компоненте TDrawGrid.
59. Вывести в многострочный редактор (TMemo) даты всех понедельников в заданном
диапазоне лет и месяцев.
60. Создать приложение, позволяющее ‘проигрывать’ выбранные звуковые файлы в
форматах MID и RMI (разработать возможность работы с альбомами - создание /
редактирование / сохранение / восстановление альбома).
61. Создать приложение, запоминающее размер и положение окна и восстанавливающее этот
размер при последующем старте.
8
62. Реализовать выбор цвета фона и задержки показа HINT’ов, обеспечить сохранение и
восстановление указанных параметров.
63. Создать окно с возможностью выбора пользователем формы курсора мыши из списка
доступных в системе (использовать компонент TListBox).
64. Для содержащего несколько компонентов окна предусмотреть индикацию имени
компонента, над которым в данный момент находится курсор мыши.
65. Создать приложение, информирующее пользователя о размерах экрана, числе точек на
мм текущего видеорежима и выдающего (в компонент TListBox) список установленных в
системе шрифтов.
66. Создать приложение, индицирующее размер общего и свободного места на всех
доступных логических дисках (вывод информации в компонент TStringGrid).
67. Создать приложение, определяющее число заданных дней недели (например, вторников)
в выбранном пользователем промежутке времени (год/месяц).
68. Создать однооконное приложение, которое в случае отсутствия в течение 1 мин нажатия
любой (адресованной данному окну) клавиши минимизируется на TaskBar.
69. Создать приложение, содержащее кнопку, «убегающую» от щелчка по ней мышью.
70. Создать приложение, позволяющее определить день недели для произвольной заданной
пользователем даты.
71. Создать приложение я функциями управления внешними заданиями (осуществить
возможности выбора стартуемого задания, остановки и возобновления его выполнения,
окончания его работы).
72. Разработать приложение, позволяющее настраивать дату и время создания всех файлов в
выбранном каталоге.
76. Создать приложение, позволяющее настраивать и очищать атрибуты всех выбранных по
маске файлов в заданном каталоге.
74. Разработать приложение, управляющее управлять выдвижением/закрытием дверцы
дисковода CD.
75. Создать приложение, позволяющее импортировать выбранный текстовые файл в MS
Word (применить возможности технологии OLE-automation).
76. Разработать приложение, позволяющее архивировать на дискету все файлы выбранного
каталога.
77. Разработать простейший файл-менеджер, использующий для копирования файлов
технологию Drag&Drop (перетаскивания файлов с помощью мыши).
78. Разработать приложение, индицирующее в компоненте TMemo имена всех
расположенных в данном окне Control’ов.
79. Создать приложение, позволяющее копировать в Clipboard выделенный мышью
прямоугольный фрагмент файла изображения.
80. Разработать приложение, выдающее информацию о именах, длинах, времени создания и
атрибутах всех файлов заданного каталога.
81. Разработать приложение, выдающее статистическую информацию (в виде гистограммы)
о длинах всех EXE-файлов заданного каталога (предусмотреть опции включения или
исключения подкаталогов).
82. Создать приложение, имеющие возможность передавать другому приложению
информацию (текущие координаты курсора мыши) через проецируемый в оперативную
память файл.
83. Разработать приложение, добавляющее документы в индицируемое по кнопке Start
(Пуск) меню Documets (Документы); предусмотреть возможность очистки этого списка.
84. Разработать приложение, позволяющее добавлять на DeckTop ссылку на выбранный
объект (с выбором текста подписи).
85. Создать приложение с окном, «убегающим» от щелчка по нему левой кнопкой мыши и
после пяти неудачных попыток минимизируюшемся на TaskBar.
9
86. Разработать приложение, не допускающее своей деактивизации (потери фокуса за счет
переключения на другое приложение) в течение заданного времени.
87. Разработать собственную систему контекстной помощи (без использования штатных
средств Windows).
88. Создать приложение, позволяющее инициализировать InterNet-браузер для связи с
заданным URL-aдресом.
89. Создать собственную систему отображения HINT’ов (без использования штатных средств
Windows).
90. Разработать приложение, выдающее статистическую информацию (в виде гистограммы)
о длинах всех файлов динамических библиотек в заданном каталоге (предусмотреть опции
включения или исключения подкаталогов).
91. Создать приложение, позволяющее изменять регистр символов имен найденных по маске
файлов в выбранном каталоге (включая подкаталоги заданного уровня).
2.5. График работы студентов
Курс 2, семестр 4.
№ Вид контроля Услов
ные
п/
обозна
п
чения
1 2 3
1.
2.
3.
4.
Коллоквиум
Контр.работа
Тестирование
РГЗ(ИДЗ)
5. Выполнение и
защита лаб.
работ
6. Выполнение
УИР
7. Защита УИР
8. Курсовая
работа (%)
9. Курсовой
проект (%)
10. Внеаудиторн.
чтение
11. Реферат
12. Зачет
13. Диф.зачет
14. Экзамен
кл
к
т
в(выдача)
з(защита)
з.л.р
в
з
в
Номер недели
4
5
6
з
в
7 28 39 410 511 612 713 814 915 116 117
з
в
з
в
з
в
з
в
з
УИР
З УИР
кр
кп
ТЗ
р
зач
зач
экз
з
10
Курс 3, семестр 5.
№ Вид контроля Услов
п/
ные
п
обозна
чения
Номер недели
1
1.
2.
3.
4.
Коллоквиум
Контр.работа
Тестирование
РГЗ(ИДЗ)
5. Выполнение и
защита лаб.
работ
6. Выполнение
УИР
7. Защита УИР
8. Курсовая
работа (%)
9. Курсовой
проект (%)
10. Внеаудиторн.
чтение
11. Реферат
12. Зачет
13. Диф.зачет
14. Экзамен
2
3
4
5
6
27
38
49
510 611 712 813 914 115 116 17
кл
к
т
в(выдача)
з(защита)
з.л.р
УИР
З УИР
кр
в
50
%
з
кп
ТЗ
р
зач
зач
экз
3. ОСНОВНАЯ ЛИТЕРАТУРА
1. Буч Г. Объектно-ориентированный анализ. С-Пб: Невский диалект, 2001. - 560 с.
2. Архангельский А.Я. Программирование в Delphi 6. – М.: «Бином», 2001. – 1120 с.
3. Кэнту М. Delphi 5: Для профессионалов – СПб.: Питер, 2001. – 1140 с.
4. Дарахвелидзе П., Марков Е. Delphi 4. Среда визуального программирования – СПб: BHV,
1999.
5. Марченко А. Программирование на языке Object Pascal 2.0. – Киев: ЮНИОР, 1998.
6. Холзнер С. Visual C++ 6. Учебный курс. СПб., ПИТЕР, 1999, 576 с.
4. ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА
1. Канту М., Гуч Т. Delphi 4. Руководство разработчика. Киев, “ВЕК+”, 1999.
2 Дарахвелидзе П., Марков Е. Программирование в Delphi 4.- СПб: BHV,1999.
3. Миллер Т. Пауэл Д. Использование Delphi 3. Специальное издание. -Киев:Диалектика,
1997.
4. Сван Т. Основы программирования в Delphi для Windows 95. – Киев: Диалектика, 1996.
5. Сван Т. Delphi 4. Библия разработчика. – Киев: Диалектика,1998.
6. Шилд Г. Программирование на Borland C++ . Овладейте мощью Borland С++. – М.:
Попурри, 1998. – 791 с.
7. Секунов Н.Ю. Самоучитель Visual C++ 6. – СПб.:БХВ, 1999. – 941 с.
11
8. Мешков А. Visual C++ и MFC. Серия "Мастер". СПб.:БХВ, 1999. – 1040 с.
9. C++ Builder 5. Руководство разработчика. В 2 т. Т. 1. Основы. – М.: Вильямс, 2001 – 880 с.
10. C++Builder 5. Руководство разработчика. В 2 т. Т. 2. Сложные вопросы
программирования. – М.:Вильямс, 2001. – 832 с.
5. ПРОТОКОЛ СОГЛАСОВАНИЯ РАБОЧЕЙ ПРОГРАММЫ С ДРУГИМИ
ДИСЦИПЛИНАМИ СПЕЦИАЛЬНОСТИ НА 20__/__ УЧЕБНЫЙ ГОД
Наименование дисциплины, Кафедра
Предложения об измеПринятое решение
изучение которой
нениях в пропорциях
(Протокол № ___, дата)
опирается на данную дисматериала, порядка изкафедрой,
циплину
ложения
разрабатывающей
программу
1
2
3
4
6. УТВЕРЖДЕНИЕ РАБОЧЕЙ ПРОГРАММЫ И ГРАФИКА РАБОТЫ СТУДЕНТОВ
(ГРС)
6.1. Утверждение рабочей программы без изменений
Рабочая программа и ГРС без изменении утверждена на 200__/__ учебный год.
Протокол №_______ заседания кафедры от «____» _________________ 200__ г.
Заведующий кафедрой _________________________________
Декан факультета _________________________________
Download