Файл: Методические указания к курсовому проектированию по дисциплине Методы программирования и прикладные алгоритмы для студентов специальности 075400.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 05.12.2023

Просмотров: 42

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


Уфимский государственный авиационный технический университет

Кафедра вычислительной техники и защиты информации

Методические указания
к курсовому проектированию

по дисциплине «Методы программирования и прикладные алгоритмы»

для студентов специальности 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. Список рекомендуемой литературы

  1. Буч Г. Дж. Объектно-ориентированный анализ и проектирование. – М.: Мир, 1998. – 620с.

  2. Дунаев С.П. Доступ к базам данных. – М.: МИФИ,1999. – 490с.

  3. Ахаян Р.В., Горев А.В. Эффективная работа с СУБД. – Санкт-Петербург: Питер, 1998. – 720с.

  4. Хомоненко А.Д. Основы современных компьютерных технологий. – Санкт-Петербург: КоронаПринт, 1998. – 448с.

  5. Шилдт Г. Самоучитель С++.2–е изд. /Пер. с англ.–СПб.: БХВ –Петербург, 1997.– 512с.

  6. Шилдт Г. Справочник программиста по С/С++.: Пер. с англ.: Учебное пособие. – М.: Издательский дом «Вильямс», 2000. – 448с.

  7. Страуструп Б. Язык программирования С++ (2–ред)./Пер. с англ.–М.: Радио и связь, 1995. – 352с.

  8. Культин Н.Б. С/С++ в задачах и примерах. – СПб.: БХВ- Петербург, 2001. – 288с.

  9. Visual C++ 5.0. Руководство разработчика.: Пер. с англ./ Д. Беннет, С. Маконин, В.В. Мейфилд и др. – К.; М.; СПб.: Диалектика, 1998. – 768с.

  10. Кнут, Дональд. Эрвин. Искусство программирования, том 3. Сортировка и поиск. 2-е изд. : Пер. с англ. : Уч. пос. — М. : Издательский дом "Вильямc" 2000. — 832 с. : ил.

  11. Вирт Н. Алгоритмы + структуры данных = программы: Пер. с англ.–М.: Мир, 1985. – 406 с.

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



ПРИЛОЖЕНИЕ А

(справочное)

1. Классы (язык C++)

Важнейшие концепции объектно-ориентированного программирования (инкапсуляция, наследование, полиморфизм) отражены в новом типе данных – class, который был разработан в С++,.

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

Объектно-ориентированное программирование характеризуется тремя основными свойствами:

1. Инкапсуляция – это комбинирование записей с процедурами и функциями, манипулирующими полями этих записей. Объединение в одном классе свойств и методов называется инкапсуляцией. С данным термином тесно связаны понятия сокрытия информации и хорошо разработанного интер­фейса.

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

2. Наследование. Определение класса и его дальнейшее использование для построения иерархии порожденных классов с возможностью для каждого порожденного класса, относящегося к иерархии, доступа к коду и данным всех порождающих классов.

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

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

Тип_класса имя_класса [: базовые классы]

{ список_членов_класса

} ;

Базовые классы — список классов, разделяемых запятыми, элементы которых наследуются определяемым (про­изводным) классом.

Свойства класса
Классы содержат собственные поля данных. Если образуется объект класса, то в его распоряжение предоставляется память для свойств (данных-членов). Каждый объект, следовательно, имеет собственную копию свойств. Одновременно создание объекта использу­ется для того, чтобы инициализировать данные-члены. Эту задачу берет на себя конструктор класса. Классы задают свою собст­венную область определения, т.е. свойства уничтожаются вместе с объектом, эти действия выполняет деструктор класса.