Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа Рус ООП.doc
Скачиваний:
6
Добавлен:
17.08.2019
Размер:
190.98 Кб
Скачать

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

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

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

Тема 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 .

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]