Задания  к  курсовым  работам



2011.11.27

МиНиСТЕРСТВО Образования и НАУКИ УКРАиНы

Запорожский национальный технический университет

Факультет информатики и вычислительной техники

 

 

 

 

 

Объектно-ориентированное программирование

Методические указания к курсовой работе

Для студентов

 специальности 6.040303 "Системной анализ"

Всех форм обучения

 

 

2012


 

   Программирование. Методические указания к курсовым работам для студентов направления подготовки 6.040303 "Системный анализ" области знаний 0403 "Системные науки и кибернетика"/

   Сост. Пинчук В.П., - Запорожье: ЗНТУ, 2012.- 32 с.

 

Составитель:         В.П. Пинчук, доцент, канд. физ.-мат. наук,

 

 

Рецензент:    Н.И. Белая, доцент, канд. физ.-мат. наук,

 

 

Ответственный за выпуск: Г.В. Корнич, профессор

 

 

                          Утверждено на заседании кафедры                                   вычислительной математики,
                              протокол  № __ от  __. ___   2012 г.

 

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


Содержание

 

1 Содержание курсовой работы и ее  ........................................    3

2 Темы курсовых работ .............................................................    4

3 Задания к курсовым работам ..................................................    6

4. Общие методические рекомендации ......................................  30

5 Стиль записи программ ..........................................................  31

6 Литература ..............................................................................  36

Содержание курсовой РаБОТы

и ее оформление

 

   Учебной программой по дисциплине "Программирование" в 4 семестре предусмотрено выполнение курсовой работы (КР). Выполнение КР, наряду с подготовкой к выполнению лабораторных работ, и оформление КР и отчетов по лабораторным работам является основной и обязательной формой самостоятельной работы студента при изучении дисциплины. Студент, не выполнивший КР или задания по лабораторным работам, считается студентом, не выполнившим программу изучения дисциплины.

Целью КР является практическое закрепление знаний по основам современных технологий создания программных продуктов на базе идей и принципов современного программирования (включая объектно-ориентированные методы). Для выполнения КР предусматривается использование знаний и практического опыта, полученных на лекциях и лабораторных занятиях. Кроме того, задания к КР предусматривают использование определенных сведений из курса высшей математики и численных методов анализа: методы решения систем линейных уравнений, методов решения других задач линейной алгебры, методов решений нелинейных уравнений и систем, интегрирования дифференциальных уравнений и систем, методов интерполяции и аппроксимации данных, других методов обработки данных, вычисление одно- и многомерных интегралов и т.п. Предлагаемые темы КР ориентированы на соответствующее направление подготовки бакалавра/магистра.

Предлагаемые задания к КР рассчитаны на применение языка программирования C++ и интегрированной среды, позволяющей создавать консольные приложения и поддерживающие стандарт ANSI/ISO C++ (например, пакеты Borland C++ или Microsoft Visual C++). Для реализации разработанных проектов и построения эффективных программных средств рекомендуется использовать проблемно-ориентированные библиотеки и программные компоненты syst, dalmat, algraph.h, vmath, разработанные на кафедре вычислительной математики ЗНТУ.

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

   КР должна быть оформлена в соответствии с действующими стандартами и правилами. При записи текстов программ необходимо четко выдерживать стиль ЗНТУ (см. раздел 5 настоящего руководства). Рекомендуется следующая структура КР:

   - титульная страница;

     - задание;

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

   - тексты программ и программных компонентов

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

     - заключение;

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

 

ТЕМы курсовых работ

 

   Предлагаемые темы курсовых работ охватывают весь основной материал 2, 3, 4 семестров курса "Программирование".

 

1. Класс, представляющий структуру данных вида "строка
 обобщенных символов"

2. Классы для работы с числовыми матрицами и векторами

3. Программные компоненты для решения задач линейной алгебры

4. Класс для работы с бинарными кодами произвольной длины

5. Класс для работы со структурами типа "Связный список"

6. Класс для работы со структурами типа "Двухсвязный список"

7. Класс "Очередь" на основе одномерного массива

8. Класс "Очередь" на основе связного списка

9. Класс "Множество" на основе динамического массива

10. Класс для работы со структурами типа "Мультимножество"

11. Класс для работы со структурами типа "Словарь"

12. Класс "Стек" на основе одномерного массива

13. Класс "Стек" на основе связного списка

14. Классы для вычислений на ориентированных графах: матрица
 смежности и таблица связей

15. Класс для компактного представления неориентированных графов

16. Классы для работы с гиперграфами

17. Алгоритмы распознавания изоморфности графов, их реализация и
  исследование

18. Универсальная модель линии задержки для САПР

19. Компьютерная модель системы терморегулирования

20. Класс для интерполяции данных полиномом

21. Класс для интерполяции данных сплайнами

22. Процедура вычисления кратного интеграла методом Монте-Карло

23. Программа построения оптимального геометрического образа
графа

24. Нелинейная оптимизация методом вложенных алгоритмов.
Программная реализация и исследование

25. Программные средства многомерной интерполяции

задания  к  курсовым  работам

 

Тема 1

Класс, представляющий структуру данных вида "строка обобщенных символов"

 

1. Создать класс Astring, позволяющий программировать операции над строками обобщенных символов. Под обобщенным символом понимается объект произвольного типа (класса), для которого имеется некоторый набор стандартных осмысленных операций.

2. Предусмотреть возможность использования в качестве символа завершения строки любого назначенного символа соответствующего типа.

3. В классе предусмотреть перегрузку следующих операций:

"="  - присваивание;

"+"  - конкатенация строк, т.е. присоединение строки - правого
              операнда к строке - левому операнду;

"+=" - комбинированное присваивание, от операции "+"
              отличается тем, что результат конкатенации присваивается
              левому операнду;

">>" - вывод обобщенной строки в файл;

"<<" - ввод обобщенной строки из файла;

"==" , "!=" , "<" , "<=" , ">" , ">=" - операции сравнения.

   Учесть, что сравнение обобщенных строк выполняется на основе отношения лексикографического порядка.

   4. Предусмотреть следующие функции - члены класса:

- определение количества символов обобщенной строки;

- поиск первого вхождения заданной подстроки;

- поиск заданной подстроки (первого вхождения) и его замена на другую подстроку;

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

- поиск всех вхождений заданной подстроки и замена каждого на заданную подстроку;

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

   5. Написать демонстрационно-тестирующую программу. Выполнить тестирование разработанных програмных средств.

 

 

Тема 2

   Классы для работы с числовыми матрицами и векторами

 

1. Создать классы: matrix - двухмерный числовой динамический массив с переменными размерами (прямоугольная матрица), vector - одномерный числовой динамический массив с переменным размером.

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

    3. Для создания объектов, правильного их удаления, инициализа-ции предусмотреть соответствующие конструкторы и деструкто­ры. Предусмотреть также конструктор копирования.

4. Создать перегруженные операции:

   - динамическое присваивание, символ "=" ;

   - приведение массива к заданным размерам с обнулением его
      элементов, символ "=";

   - транспонирование матрицы, символ "~" ;

   - умножение матриц, символ "*" ;

   - поэлементное сложение и вычитание матриц и векторов,
     символы "+" , "-" ;

   - умножение матрицы на вектор, символ "* " .

   - вывод в файл, символ ">>" ;

   - ввод из файла, символ "<<" .

5. В каждом из классов предусмотреть функцию поиска максимального по абсолютной величине элемента.

6. Разработать демонстрационно-тестирующую программу. Выполнить тестирование созданных программных средств.

   Методические указания

Транспонированием матрицы называют замену строк столбцами, а столбцов - строками. Если A - исходная матрица, то элементы транспонированной матрицы AT определяются по такому правилу:

ATi k = Aki .

При этом если исходная матрица А имеет размеры n´m, то транспонированная матрица AT будет иметь размеры m´n.

Умножение прямоугольных матриц выполняется по следующему правилу: если A = B*C, где B - матрица с размерами n´m, а матрица C имеет размеры m´p, то

 , i = 1.. n, k = 1.. p .

Результирующая матрица А будет иметь размеры  n´p.

Умножение матрицы А с размерами n´m на вектор X с размером m дает в итоге вектор с размером n:

, i = 1.. n .

Умножение вектора X на матрицу A дает в результате также вектор:

, k= 1.. m .

 

 

Тема 3


Дата добавления: 2018-04-15; просмотров: 392; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!