Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

курсовая

.doc
Скачиваний:
33
Добавлен:
12.04.2015
Размер:
429.06 Кб
Скачать

Курсовая работа по дисциплине "Программирование на языке высокого уровня"

Цель курсовой работы — изучение приемов формализации, составления алгоритмов и программирования при решении прикладных задач, а также глубокое овладение языком программирования C++ и приемами программирования в интегрированной среде Borland C++ Builder 5.x-6.x.

Задачи, решаемые в ходе выполнения курсовой работы:

  1. Получение точных формулировок решаемых вопросов.

  2. Нахождение оптимальных путей решения.

  3. Разбиение исходной задачи на ряд более мелких подзадач.

  4. Составление алгоритмов решения подзадач.

  5. Написание программы на языке C++.

  6. Отладка и тестирование программы.

  7. Получение и обобщение контрольных результатов после выполнения программы, документирование работы.

Общие требования к курсовой работе.

  1. Работа представляется в виде документа, называемого пояснительной запиской.

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

  3. Пояснительная записка оформляется в соответствии с ГОСТ на условные обозначения элементов схем алгоритмов и программ (ГОСТ 19.701-90), а также методическими указаниями к составлению и оформлению отчета (№358 аб; №643 ч.з.).

  4. Пояснительная записка должна быть скреплена.

  5. Нумерация страниц пояснительной записки осуществляется с титульного листа, номер страницы на котором не ставится.

  6. Задание на курсовую работу оформляется на стандартном бланке, примерный вид которого представлен ниже (задание оформляется за одну неделю до представления работы к защите и должно учитывать как исходные требования, так и дополнительные требования, изменения и ограничения, возникшие в процессе выполнения работы).

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

Утверждаю:

зав. кафедрой ВТ Титов В.С.

Задание на курсовую работу по дисциплине "Программирование на языке высокого уровня"

Тема работы: _________________________________________________ _____________________________________________________________

Студент: Ф.И.О. группа ВМ-91

Дата выдачи задания: 18.02.2010

Срок представления к защите: 01.06.2010

Исходные данные для работы: язык программирования C++, среда разработки программ Borland C++ Builder, компьютер класса IBM PC AT, описание решаемой задачи.

Содержание пояснительной записки:

1) цель курсовой работы;

2) концептуальное или формализованное описание задачи;

3) формализованное представление концептуальной модели (при необходимости);

4) уточненное техническое задание (на настоящем бланке);

5) общая структура программы;

6) алгоритмы отдельных (наиболее важных) модулей;

7) результаты отладки и тестирования программы (описание методов отладки и примеры тестов);

8) результаты работы программы;

9) выводы;

10) библиографический список;

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

Перечень графического материала:

1) схема иерархической подчиненности программных единиц;

2) граф-схемы алгоритмов отдельных подпрограмм.

Руководитель работы: Ф.И.О. руководителя

Задание принял к исполнению Ф.И.О. студента

Требования к программам

Игровые программы.

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

3.1) описание стратегии игры на выигрыш для ЭВМ, если первый ход делает ЭВМ;

3.2) описание стратегии игры на выигрыш или ничью для ЭВМ, если игру начинает не ЭВМ.

В перечне графического материала добавляется п.3: сценарий диалога с пользователем.

Прочие требования.

  1. В процессе игры недопустимый ход человека должен отклоняться.

  2. Управление перемещением объектов должно быть удобным для игрока.

  3. В любой момент игры игрок должен иметь возможность обратиться за справкой о допустимых ходах.

  4. В меню должно быть краткое описание игры и ее правил.

  5. В любой момент по инициативе игрока он может прервать игру.

  6. После окончания игры ЭВМ должна выдавать сообщение о результате игры и предложить либо начать новую игру, либо выйти из программы.

  7. Предусмотреть демонстрационный пример.

Прикладные программы.

  1. Для программ обработки графов предусмотреть ввод и вывод графов в графическом режиме.

  2. Результаты решения также представлять графически, с использованием цветовых выделений.

Моделирующие программы.

  1. Составить структурную схему модели (схема должна быть в пояснительной записке).

  2. В процессе моделирования предусмотреть останов и выход с распечаткой промежуточных результатов.

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

  4. После моделирования на экране должны присутствовать результаты моделирования.

  5. Выводы и предложения по усовершенствованию моделируемой системы.

Обучающие программы.

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

3.1) описание стратегии обучения;

3.2) описание методики оценки знаний обучаемого.

В перечне графического материала добавляется п.3: сценарий диалога с пользователем.

Прочие требования.

  1. В процессе обучения недопустимый ход обучаемого должен отклоняться.

  2. Управление программой должно быть удобным как для обучаемого, так и для преподавателя, контролирующего обучение.

  3. В любой момент обучаемый должен иметь возможность обратиться за справкой.

  4. В любой момент по инициативе обучаемого он может прервать обучение.

  5. После окончания обучения ЭВМ должна выдавать сообщение о результатах обучения.

  6. Преподаватель должен иметь возможность изменять содержание курса обучения и вопросы для проверки знаний.

Задание на курсовую работу. Вариант 1.

Игровая программа. Топологическая игра.

Описание игры.

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

Два игрока по очереди отмечают по единичному ребру этой решетки. (В программе желательно закрашивать эти ребра.) При этом первый игрок может отметить своим ходом любое ребро, а каждое последующее отмеченное ребро должно соединяться с предыдущим отмеченным ребром. Таким образом, один конец получающейся в результате последовательности (траектории) отмеченных ребер остается фиксированным, в то время как второй конец с каждым ходом удлиняется на единицу. Для одного из игроков выигрыш заключается в том, чтобы сделать пересечение траектории, а для другого — в том, чтобы не допустить пересечения (т.е. замкнуть траекторию без пересечения).

Задание на курсовую работу. Вариант 2.

Игровая программа.

Описание игры.

Тридцать две фишки расставляются так, как показано ниже, на все клетки, кроме центральной.

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

Задание на курсовую работу. Вариант 3.

Игровая программа. Игра "Бридж-ит".

Описание игры.

Полем для игры служат два "симметрично вложенных" друг в друга прямоугольника А и В размером m(m1) каждый, заполненные соответственно кружками и крестиками:

Играют два игрока. Первому из них соответствует прямоугольник (поле) А, второму — прямоугольник В. Элементы поля А — кружки, поля В — крестики. Очередной ход заключается в том, чтобы соединить два смежных элемента своего поля горизонтальным или вертикальным отрезком прямой, не пересекая ранее проведенных отрезков противника. Ходы делаются поочередно. Выигрывает тот, кто первым построит ломаную, соединяющую две противоположных вершины своего прямоугольника.

Задание на курсовую работу. Вариант 4.

Игровая программа. Игра "Гекс" на неориентированном графе.

Описание игры.

В игре участвуют два игрока. Полем для игры служит произвольный неориентированный граф , где V — множество вершин; E — множество ребер. В начале игры в графе G выделяются две произвольные вершины s и t. Далее игроки поочередно выбирают по одной вершине из множества ; вершины, выбранные игроком 1, «окрашиваются» при этом в синий цвет, а выбранные игроком 2 — в красный. Игра продолжается до тех пор, пока не будут окрашены все вершины из множества . Игрок 1 (игрок 2) выигрывает тогда и только тогда, когда в графе G найдется маршрут из s в t, проходящий только через синие (красные) вершины.

Задание на курсовую работу. Вариант 5.

Игровая программа. "Переключательная игра Шеннона на ребрах".

Описание игры.

В игре участвуют два игрока. Полем для игры служит произвольный неориентированный граф , где V — множество вершин; E — множество ребер. В начале игры в графе G выделяются две произвольные вершины s и t. Далее игроки поочередно выбирают по одному ребру из множества E; ребра, выбранные игроком 1, «окрашиваются» при этом в зеленый цвет, а выбранные игроком 2 — в красный. Игра продолжается до тех пор, пока не будут окрашены все ребра из множества E. Игрок 1 (игрок 2) выигрывает тогда и только тогда, когда в графе G найдется маршрут из s в t, содержащий только зеленые (красные) ребра.

Задание на курсовую работу. Вариант 6.

Игровая программа. Игра "Гекс" на ориентированном графе.

Описание игры.

В игре участвуют два игрока. Полем для игры служит произвольный ориентированный граф , где V — множество вершин; A — множество дуг (ориентированных ребер). В начале игры в графе G выделяются две произвольные вершины s и t. Далее игроки поочередно выбирают по одной вершине из множества ; вершины, выбранные игроком 1, «окрашиваются» при этом в черный цвет, а выбранные игроком 2 — в белый. Игра продолжается до тех пор, пока не будут окрашены все вершины из множества . Игрок 1 (игрок 2) выигрывает тогда и только тогда, когда в графе G найдется путь (ориентированный маршрут) из s в t, проходящий только через черные (белые) вершины.

Задание на курсовую работу. Вариант 7.

Игровая программа. Игра "Обобщенная география".

Описание игры.

В игре участвуют два игрока. Полем для игры служит произвольный ориентированный граф , где V — множество вершин; A — множество дуг (ориентированных ребер). В начале игры в графе G выделяется произвольная вершина . Далее игроки поочередно выбирают по одной дуге из множества A. Первая выбранная дуга имеет своим началом вершину , а каждая последующая дуга должна иметь своим началом концевую вершину последней выбранной до этого дуги. Игрок, который первым окажется не в состоянии выбрать новую дугу, проигрывает.

Задание на курсовую работу. Вариант 8.

Игровая программа. Игра "Кейли".

Описание игры.

В игре участвуют два игрока. Полем для игры служит произвольный неориентированный граф , где V — множество вершин; E — множество ребер. Игроки поочередно выбирают по одной вершине из множества V, причем выбранная вершина и все ей смежные выбрасываются из графа. Выигрывает тот из игроков, кто удалит из графа последнюю вершину.

Задание на курсовую работу. Вариант 9.

Игровая программа. Игра "Максимальное взвешенное паросочетание".

Описание игры.

В игре участвуют два игрока. Полем для игры служит произвольный неориентированный граф (где V — множество вершин; E — множество ребер), ребра которого взвешены положительными целыми числами. Игроки поочередно выбирают по одному ребру из множества E так, чтобы выбираемое ребро не имело общих концевых вершин с ранее выбранными. Каждый игрок суммирует веса всех выбранных им ребер. Выигрывает тот игрок, суммарный вес ребер которого первым превысит заданную границу h.

Задание на курсовую работу. Вариант 10.

Игровая программа. Игра "Накрывающее множество".

Описание игры.

В игре участвуют два игрока. «Полем для игры» служит семейство подмножеств C некоторого (базисного) множества B. Игроки поочередно выбирают новые элементы из множества B до тех пор, пока для каждого подмножества из C не будет выбран хотя бы один элемент. Игрок, ход которого приводит к этой ситуации, проигрывает.

Задание на курсовую работу. Вариант 11.

Прикладная программа. Выделение вершинного покрытия графа.

Описание задачи.

Заданы граф , где V — множество вершин; E — множество ребер, и положительное целое число , — мощность множества V. Выделить в графе G вершинное покрытие мощности не более K. Если такого покрытия не существует, выдать соответствующее сообщение. Предусмотреть графическое представление исходного графа и цветовое выделение найденного покрытия.

Вершинным покрытием графа называется подмножество его вершин такое, что хотя бы один конец каждого ребра из множества E принадлежит .

Задание на курсовую работу. Вариант 12.

Прикладная программа. Выделение доминирующего множества графа.

Описание задачи.

Заданы граф , где V — множество вершин; E — множество ребер, и положительное целое число , где — мощность множества V. Выделить в графе G доминирующее множество мощности не более K. Если такого множества не существует, выдать соответствующее сообщение. Предусмотреть графическое представление исходного графа и цветовое выделение найденного множества.

Доминирующим множеством графа называется подмножество его вершин такое, что каждое ребро из множества E имеет один конец в подмножестве , а другой — в подмножестве .

Задание на курсовую работу. Вариант 13.

Прикладная программа. Выделение семейства доминирующих подмножеств в графе.

Описание задачи.

Заданы граф , где V — множество вершин; E — множество ребер, и положительное целое число , где — мощность множества V. Выделить в графе G заданное число z доминирующих подмножеств мощности не более K. Если таких подмножеств не существует, выдать соответствующее сообщение. Предусмотреть графическое представление исходного графа и цветовое выделение полученных подмножеств.

Доминирующим подмножеством графа называется подмножество его вершин такое, что каждое ребро из множества E имеет один конец в подмножестве , а другой — в подмножестве .

Задание на курсовую работу. Вариант 14.

Прикладная программа. Раскраска графа.

Описание задачи.

Заданы граф , где V — множество вершин; E — множество ребер, и положительное целое число , где — мощность множества V. Раскрасить вершины графа K красками так, чтобы ни одно его ребро не имело соцветных концов. Если такая раскраска невозможна, выдать на экран соответствующее сообщение. Предусмотреть графическое представление исходного графа и цветовое выделение его вершин на экране.

Задание на курсовую работу. Вариант 15.

Прикладная программа. Разбиение графа.

Описание задачи.

Задан неориентированный граф , где V — множество вершин; E — множество ребер. Разбить множество ребер E графа G на два непересекающихся подмножества и так, чтобы ни один из графов или не содержал ни одного полного подграфа с множеством вершин мощности три и выше. Если подобное разбиение невозможно, вывести соответствующее сообщение. Предусмотреть графическое представление исходного графа и цветовое выделение графов и .

Полный (под)граф — граф, в котором все вершины попарно смежны.

Задание на курсовую работу. Вариант 16.

Прикладная программа. Множество вершин, разрезающих контуры.

Описание задачи.

Заданы ориентированный граф , где V — множество вершин; A — множество дуг, и положительное целое число , где — мощность множества V. Выделить в графе G подмножество вершин , содержащих хотя бы одну вершину каждого контура, такое, что . Если такого множества нет, вывести соответствующее сообщение. Предусмотреть графическое представление исходного графа и цветовое выделение вершин из .

Задание на курсовую работу. Вариант 17.

Прикладная программа. Разбиение графа на лес.

Описание задачи.

Заданы неориентированный граф , где V — множество вершин; E — множество ребер, и положительное целое число , где — мощность множества V. Разбить граф G на непересекающихся по вершинам ациклических подграфов. Если разбиение невозможно, выдать соответствующее сообщение. Предусмотреть графическое представление исходного графа и цветовое выделение найденных подграфов.

Задание на курсовую работу. Вариант 18.

Прикладная программа. Разбиение графа на клики.

Описание задачи.

Заданы неориентированный граф и положительное целое число , где — мощность множества V. Разбить граф G на непересекающихся по вершинам полных подграфов (клик). Если разбиение невозможно, выдать соответствующее сообщение. Предусмотреть графическое представление исходного графа и цветовое выделение всех клик.

Полным называется (под)граф, в котором каждая пара вершин соединена ребром.

Задание на курсовую работу. Вариант 19.

Прикладная программа. Выделение клики.

Описание задачи.

Заданы неориентированный граф , где V — множество вершин; E — множество ребер, и положительное целое число , где — мощность множества V. Выделить в исходном графе клику с числом вершин не менее K. Если такой клики в графе нет, выдать соответствующее сообщение. Предусмотреть графическое представление исходного графа и цветовое выделение найденной клики.

Под кликой неориентированного графа понимается всякий максимальный полный подграф.

Задание на курсовую работу. Вариант 20.

Прикладная программа. Выделение независимого множества графа.

Описание задачи.

Заданы неориентированный граф , где V — множество вершин; E — множество ребер, и положительное целое число , где — мощность множества V. Выделить в исходном графе независимое множество с числом вершин не менее K. Если такого множества в графе нет, выдать соответствующее сообщение. Предусмотреть графическое представление исходного графа и цветовое выделение найденного независимого множества.

Под независимым множеством неориентированного графа понимается всякое максимальное подмножество его множества вершин, в котором ни одна пара вершин не соединяется ребром.

Задание на курсовую работу. Вариант 21.

Прикладная программа. Выделение планарных подграфов.

Описание задачи.

Заданы неориентированный граф , где V — множество вершин; E — множество ребер, и положительное целое число , где — мощность множества E. Выделить в исходном графе подмножество ребер мощности не менее K, порождающее планарный подграф. Если такого подмножества в графе нет, выдать соответствующее сообщение. Предусмотреть графическое представление исходного графа и цветовое выделение ребер из .

Планарный граф — граф, который можно изобразить на плоскости без пересечения ребер.

Задание на курсовую работу. Вариант 22.

Прикладная программа. Кубический подграф.

Описание задачи.

Задан неориентированный граф , где V — множество вершин; E — множество ребер. Выделить в исходном графе подмножество ребер максимальной мощности, порождающее кубический подграф. Если такое подмножество выделить невозможно, выдать соответствующее сообщение. Предусмотреть графическое представление исходного графа и цветовое выделение ребер из .