Файл: Методические указания к курсовому проектированию по дисциплине Методы программирования и прикладные алгоритмы для студентов специальности 075400.doc
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 05.12.2023
Просмотров: 42
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Уфимский государственный авиационный технический университет
Кафедра вычислительной техники и защиты информации
Методические указания
к курсовому проектированию
по дисциплине «Методы программирования и прикладные алгоритмы»
для студентов специальности 075400 –
Комплексная защита объектов информатизации
Семестр 4
Доцент., к.т.н. Селиванова М. В.
Зав. кафедрой ВТиЗИ,
проф., д.т.н. Васильев В.И.
Уфа – 2001
Содержание
Уфимский государственный авиационный технический университет
Кафедра вычислительной техники и защиты информации
Методические указания
к курсовому проектированию
по дисциплине «Методы программирования и прикладные алгоритмы»
для студентов специальности 075400 –
Комплексная защита объектов информатизации
Семестр 4
Доцент., к.т.н. Селиванова М. В.
Зав. кафедрой ВТиЗИ,
проф., д.т.н. Васильев В.И.
Уфа – 2001
Содержание
1. Цели и задачи курсовой работы .................………………………….…… | 3 |
2. Тематика курсовых работ.......………..........................……………………. | 3 |
3. Порядок выполнения курсовой работы…………………………………... | 5 |
4. Основные требования к выполнению и оформлению курсовой работы…………………………………………………………………….…… | 5 |
5. Оценка курсовой работы…………………………………………………... | 6 |
6. Список рекомендуемой литературы……………………………………… | 7 |
Приложение А (справочное)……………………………….………………… | 8 |
1. Цели и задачи курсовой работы
Выполнение курсовых работ направлены на формирование у обучаемых навыков самостоятельной научно-исследовательской и практической деятельности, грамотного оформления полученных результатов, умения представить результаты своей работы в виде научного доклада и защитить их в последующей дискуссии.
Целью курсовой работы по дисциплине «Методы программирования и прикладные алгоритмы» является:
-
дальнейшее развитие и закрепление знаний, полученных на лекционных и лабораторных занятиях в области методов программирования и прикладных алгоритмов; -
совершенствование практических навыков работы на ПЭВМ; -
развитие профессиональных навыков работы с CASE-средствами.
2. Тематика курсовых работ
Для выполнения курсовых работ студенты должны самостоятельно освоить объектно-ориентированный язык программирования Visual C++ с решением на нем задачи, поставленной перед ними руководителем курсовой работы. В процессе решения студенты разрабатывают математическое,
алгоритмическое и программное обеспечение, анализируют полученные результаты и делают соответствующие выводы.
В качестве перспективных задач в рамках данного направления могут быть рекомендованы:
-
анализ эффективности различных алгоритмов (сортировки, поиска, на графах ...); -
разработка универсальных программ (пакетов программ) для решения систем линейных алгебраических и дифференциальных уравнений; -
разработка графических редакторов и программ графической обработки; -
разработка баз данных (БД) средствами (функциями) объектно-ориентированных сред программирования; -
специальные задания (индивидуальные и комплексные работы) выдаются преподавателем.
Примерные темы курсовых работ:
1) Разработка прикладного алгоритма и его реализация на языке С++:
а) Написать программу-таймер, которая по истечении заданного промежутка времени, величина которого вводится с клавиатуры, выдает звуковой сигнал.
б) Разработать программу для просмотра и редактирования базы данных студентов (ФИО, оценки, полученные на занятиях и экзамене); данные хранятся во внешнем текстовом файле.
в) Реализовать алгоритм обменной поразрядной сортировки. Сортируемые последовательности генерировать случайным образом, исходные данные и результат, полученный после сортировки, представлять в виде набора точек в декартовой системе координат.
г) Реализовать алгоритмы последовательного и двух его улучшений. Определить функцию изменения времени вычисления от объема исходных данных для трех алгоритмов и О-сложность (динамический массив случайных целых чисел)
д) Реализовать алгоритм точного поиска подстроки в строке Боуера-Мура. Определить функцию изменения времени вычисления от объема исходных данных и О-сложность алгоритма (файл с исходным текстом указывает пользователь).
е) Построение графика функции по координатам точек (полином), заданных во внешнем файле, методом наименьших квадратов.
2) Разработка программы на языке С++ для построения сложных геометрических фигур на плоскости (исходные данные, вводимые пользователем приведены на схемах, кроме построения контура, выделенного утолщенной линией, необходимо осуществлять проверку исходных данных на соответствие полученному варианту – обязательное пересечение окружностей и т.п.):
а) б)
в) г)
д) е)
3) Разработка прикладного алгоритма и его реализация на языке С++(комплексный):
а) Расчет площади фигуры, ограниченной выбранными пользователем функциями (полиномы n-ой, задаваемые с помощью коэффициентов), методом Монте-Карло.
б) Построение графика функций и закрашивание вычисляемой в задании (а) площади.
3. Порядок выполнения курсовой работы
3.1. Курсовая работа выполняется студентами индивидуально в соответствии с заданием, полученным от преподавателя.
3.2. Выполнение курсовой работы фиксируется преподавателем (в процентах) в зависимости от выполнения временного графика (в течение 8 календарных недель).
3.3. Для выполнения курсовой работы студентам предоставляется время в дисплейных классах кафедры.
3.4. Руководитель курсового проектирования проводит консультации на кафедре в назначенное им время.
3.5. Защита курсового проекта осуществляется на ПЭВМ после представления студентами материалов, перечисленных в пункте 4.
4. Основные требования к выполнению и оформлению курсовой работы
4.1. Работа оформляется в принятом для научных работ виде, включает в себя текст пояснительной записки и, в качестве приложений, дискеты, содержащие программы (тексты и исполняемые файлы), данные, а также объемные приложения, включение которых в текст работы является нецелесообразным.
4.2. В процессе работы над курсовым проектом студент обязан:
-
ознакомиться с рекомендуемой литературой; -
cогласовать с руководителем курсового проекта информационные аспекты (математическую основу, технологию и инструментальные средства) для решения задачи;
-
разработать алгоритмическое и программное обеспечение (Windows application) на основе объектно-ориентированного подхода; -
решить поставленную задачу; -
оформить пояснительную записку к курсовой работе.
4.3. Пояснительная записка к курсовой работе содержит:
-
титульный лист с указанием наименования вуза, кафедры, темы курсового проекта, Ф.И.О. студента, факультета, группы, Ф.И.О. преподавателя, принявшего курсовой проект, дату выполнения курсового проекта;
-
постановку задачи и описание исходных данных; -
разработку математического обеспечения работы; -
разработку алгоритма программы в виде блок-схемы по ГОСТ 19.701-90; -
краткое описание функциональных возможностей среды программирования, в которой выполнена курсовая работа; -
описание работы программы; -
полученные результаты при решении поставленной задачи (графики, таблицы, экранные формы, отчеты и т.д.); -
выводы; -
список литературы; -
приложение, содержащее текст разработанной программы (функции).
4.4. В процессе разработки программных средств при курсовом проектировании необходимо обеспечить дружественный интерфейс для пользователя (кнопки, панели, интерактивный режим, меню, систему помощи и т.д.).
4.5. Во время защиты курсовой работы студенты должны быть готовы продемонстрировать работоспособность разработанного ими программного продукта и ответить на вопросы преподавателя.
5. Оценка курсовой работы.
Курсовая работа оценивается руководителем курсового проектирования по четырехбалльной системе (отлично, хорошо, удовлетворительно, неудовлетворительно) по каждому из следующих параметров:
-
оценка результатов работы; -
оценка оформления и срока представления работы; -
оценка защиты результатов работы.
Примечание: вместо защиты курсовой работы студент может сделать доклад на студенческой или иной научной конференции. В этом случае оценка защиты определяется руководителем курсового проектирования или заведующим кафедрой.
Окончательная оценка работы определяется как среднее арифметическое всех оценок с округлением до ближайшего целого.
6. Список рекомендуемой литературы
-
Буч Г. Дж. Объектно-ориентированный анализ и проектирование. – М.: Мир, 1998. – 620с. -
Дунаев С.П. Доступ к базам данных. – М.: МИФИ,1999. – 490с. -
Ахаян Р.В., Горев А.В. Эффективная работа с СУБД. – Санкт-Петербург: Питер, 1998. – 720с. -
Хомоненко А.Д. Основы современных компьютерных технологий. – Санкт-Петербург: КоронаПринт, 1998. – 448с. -
Шилдт Г. Самоучитель С++.2–е изд. /Пер. с англ.–СПб.: БХВ –Петербург, 1997.– 512с. -
Шилдт Г. Справочник программиста по С/С++.: Пер. с англ.: Учебное пособие. – М.: Издательский дом «Вильямс», 2000. – 448с. -
Страуструп Б. Язык программирования С++ (2–ред)./Пер. с англ.–М.: Радио и связь, 1995. – 352с. -
Культин Н.Б. С/С++ в задачах и примерах. – СПб.: БХВ- Петербург, 2001. – 288с. -
Visual C++ 5.0. Руководство разработчика.: Пер. с англ./ Д. Беннет, С. Маконин, В.В. Мейфилд и др. – К.; М.; СПб.: Диалектика, 1998. – 768с. -
Кнут, Дональд. Эрвин. Искусство программирования, том 3. Сортировка и поиск. 2-е изд. : Пер. с англ. : Уч. пос. — М. : Издательский дом "Вильямc" 2000. — 832 с. : ил. -
Вирт Н. Алгоритмы + структуры данных = программы: Пер. с англ.–М.: Мир, 1985. – 406 с. -
Вирт Н. Алгоритмы и структуры данных: Пер. с англ. – М.: Мир, 1989. – 360с.
ПРИЛОЖЕНИЕ А
(справочное)
1. Классы (язык C++)
Важнейшие концепции объектно-ориентированного программирования (инкапсуляция, наследование, полиморфизм) отражены в новом типе данных – class, который был разработан в С++,.
Классы служат для того, чтобы свойства (данные-члены) и методы для обработки этих свойств (функции-члены) объединить в один тип данных. Классы могут предоставить различные права доступа к отдельным своим членам, они могут создавать иерархии классов посредством наследования.
Объектно-ориентированное программирование характеризуется тремя основными свойствами:
1. Инкапсуляция – это комбинирование записей с процедурами и функциями, манипулирующими полями этих записей. Объединение в одном классе свойств и методов называется инкапсуляцией. С данным термином тесно связаны понятия сокрытия информации и хорошо разработанного интерфейса.
Классы должны общаться к своим свойствам преимущественно через свои методы. Эти методы образуют интерфейс между классом и программой. После выполнения описания класса для программиста важно, чтобы он мог использовать класс только через его интерфейс. О корректной обработке вызова функции и корректном поведении класса заботится сам класс.
2. Наследование. Определение класса и его дальнейшее использование для построения иерархии порожденных классов с возможностью для каждого порожденного класса, относящегося к иерархии, доступа к коду и данным всех порождающих классов.
3. Полиморфизм. Присваивание действию одного имени, которое затем совместно используется вниз и вверх по иерархии классов, причем каждый класс иерархии выполняет это действие способом, именно ему подходящим.
Объявление класса:
Тип_класса имя_класса [: базовые классы]
{ список_членов_класса
} ;
Базовые классы — список классов, разделяемых запятыми, элементы которых наследуются определяемым (производным) классом.
Свойства класса
Классы содержат собственные поля данных. Если образуется объект класса, то в его распоряжение предоставляется память для свойств (данных-членов). Каждый объект, следовательно, имеет собственную копию свойств. Одновременно создание объекта используется для того, чтобы инициализировать данные-члены. Эту задачу берет на себя конструктор класса. Классы задают свою собственную область определения, т.е. свойства уничтожаются вместе с объектом, эти действия выполняет деструктор класса.