Распределение тем по курсовым работам БИСТ-211
Задание для курсовой работы по ООП БИСТ 2-й курс
На выбор студента предлагается сделать следующие задания
1. Низкая сложность. Задание на тройку-четверку: Оформить все лабораторные работы по своему варианту с отчетом, комментариями, код в приложении. Знать код, уметь его объяснить, знать теоритическую часть и уметь её объяснить. В теоретическую часть надо описать информацию по всем пропущенным лекциям и отлично знать материал. Если курсовой сдается после начала сессии, то максимальная оценка за него – тройка.
2. Средняя сложность. Задание на четверку-пятерку. Необходимо написать игру. В результате выполнения работы должно быть: техническое задание, исходный код программы, руководство пользователя, отчет и непосредственно работающая игра. Код должен быть написан с соблюдением основных принципов ООП (как минимум должна быть инкапсуляция, множество классов, а не один большой класс). Какую игру делать - студенты выбирают самостоятельно из списка, нельзя делать одну игру двум студентам из одной группы. Можно выбрать любой язык для реализации. Для допуска к защите курсовой работы должны быть выполнены все лабораторные работы кроме любой одной. Техническое задание должно быть сдано до 23 апреля.
3. Высокая сложность. Задание на пятерку. Необходимо сделать программу, где вводятся начальные данные, проводятся расчеты в соответствии с определенным документом и выводится отчет в формате Microsoft Word. В результате выполнения работы должно быть: исходный код программы, руководство пользователя, отчет и правильно работающая и законченная программа. Допуск к защите курсовой работы возможен без защиты половины лабораторных работ.
Задания средней сложности
Все программы должны предоставлять следующие возможности:
· начало игры на чистом поле, сброс предыдущей игры;
· сохранение текущей игры в любой момент игры в файл, восстановление состояния игры из файла;
· отмену ходов;
· контроль правильности ходов игрока(ов);
· определение конца игры;
· возможность задания произвольного размера поля (если применимо);
· управление как с клавиатуры так и мышью ++;
· настройку клавиш управления++;
· использование горячих клавиш++;
· индикацию текущего счета (если применимо);
· ведение списка чемпионов для каждого размера поля;
В результате выполнения работы вы должны предоставить
1. техническое задание
2. исходный код программы
3. руководство пользователя
4. отчет
Порядок выполнения работы
Работа выполняется в три этапа
- Написание технического задания. Познакомившись с ТЗ, любой человек сможет представить, зачем нужна эта программа, как она будет выглядеть и функционировать; какова будет архитектура программы и особенности ее реализации. Также, ТЗ должно содержать план работы по выполнению курсовой.
Техническое задание пишется в свободной форме. Но на его последующие изменения накладывается серьезное ограничение: все что написано в техническом задании, должно быть реализовано в программе и все, что будет реализовано в программе, должно быть отражено в техническом задании. На защите курсовой вы должны будете обосновать каждое отступление от этого правила, в противном случае баллы будут снижаться. Все последующие изменения, вносимые в ТЗ после того, как оно сдано, должны выполняться только с ведома и разрешения преподавателя.
Техническое задание может, например, содержать такие разделы:
- Обзор. Здесь можно рассмотреть назначение программы; требования к программе; ограничения, накладываемые на реализацию; выбрать платформу, язык программирования и т.п.
- Модель программы. Здесь должно быть подробное словесное описание пользовательского интерфейса программы, ее поведения.
- Архитектура программы. Здесь должна быть подробно расписана иерархия классов, используемых в программе, их интерфейсы и взаимодействие. Для большей наглядности можно использовать рисунки и диаграммы.
- Форматы и протоколы. Здесь описываются форматы файлов, которые будут использованы в программе. Если программа будет иметь поддержку сети, то также определяется прикладной протокол взаимодействия клиента и сервера.
Если программа будет использовать базу данных, то здесь должна быть описана структура базы данных.
В этом пункте ОСОБОЕ внимание обращайте на стандарты. Не изобретайте велосипедов! Для любых задач, с которыми вы можете столкнуться в процессе выполнения работы уже существуют готовые решения, протоколы, форматы и т.п, являющиеся международными или национальными стандартами. Проведите исследование на предмет наличия таких стандартов, применительно к области вашей работы.
- Тестирование. Для каждого разрабатываемого модуля программы должны быть приведены тесты, которыми вы будете проверять корректность работы этого модуля.
- План работы. Здесь должен быть по пунктам расписан порядок выполнения работы. Какие компоненты программы в каком порядке будут реализовываться и т.п.
- Программная реализация. Написание и тестирование самой программы, в соответствии с ТЗ.
- Документирование. Написание инструкций по сборке и установке программы, руководство пользователя.
1. Логическая игра “Крестики-нолики” на заданном поле
Приложение является реализацией известной логической игры “Крестики-нолики” В данной реализации предусматривается игра двух игроков на заданном поле. Цель игры: построить непрерывную линию из пяти или более фишек (крестиков или ноликов) по горизонтали, вертикали или диагонали.
Возможны два режима игры, когда выигрывает тот, кто первым построит линию, или кто больше наберет очков за определенное количество времени. Во втором случае количество построенных линий не ограничено, каждая фишка в линии приносит игроку одно очко. Приложение должно обеспечивать начало новой игры на чистом поле, а также проверку соответствия действий игроков правилам игры и условия окончания игры.
2. Логическая игра “Цепь”
Данное приложение является реализацией известной логической игры. В данной реализации предусматривается игра двух игроков на квадратном поле фиксированного размера. Цель игры - построить непрерывную линию, соединяющую горизонтальные или вертикальные (для каждого из игроков соответственно) стороны игрового поля, причем линия считается непрерывной, если фишки граничат друг с другом по горизонтали, вертикали или диагонали. Выигрывает тот игрок, который первым построит свою линию.
Приложение должно обеспечивать начало новой игры на чистом поле, а также проверку соответствия действий игроков правилам игры и условия окончания игры. Роль одного из игроков (по выбору пользователя) может выполнять компьютер.
3. Логическая игра “Точки”
Данное приложение является реализацией известной логической игры. В данной реализации предусматривается игра двух игроков на квадратном поле фиксированного размера. Цель игры . заполнить максимальное количество клеток игрового поля своими фишками. Игроки выполняют ходы по очереди. Ход игрока заключается в произвольной установке линии на границе двух ячеек, причем, если какая-либо ячейка оказывается со всех четырех сторон обрамлена линиями, то она отмечается фишкой данного игрока, а самому игроку предоставляется дополнительный ход, и т.д. Игра заканчивается, когда все игровое поле оказывается заполнено фишками. Выигрывает тот игрок, чьих фишек на поле больше на момент окончания игры.
Приложение должно обеспечивать начало новой игры на чистом поле, а также проверку соответствия действий игроков правилам игры и условия окончания игры. Роль одного из игроков (по выбору пользователя) может выполнять компьютер.
4. Логическая игра “Мозаика”
Разрабатываемое приложение представляет собой программную реализацию популярной игры .Мозаика. (.Puzzle.), цель которой заключается в создании игроком полного изображения путем упорядочивания его фрагментов последовательным перемещением и соединением соответствующих сторон.
Приложение должно обеспечивать:
a. просмотр исходного изображения во время игры, а также поиск подходящих друг к другу фрагментов (функция подсказки);
b. возможность перемещать фрагменты за пределы рабочего поля или в другое окно и обратно для улучшения наглядности.
Следует учесть, что при создании новой игры все фрагменты должны быть разъединены и размещены беспорядочно в области рабочего поля или в области, отведенной специально для фрагментов. При использовании отдельной области для отображения фрагментов может быть применена ее прокрутка и изменение масштаба.
5. Логическая игра “Шарики”
Разрабатываемое приложение представляет собой программную реализацию известной логической игры. Цель игры состоит в том чтобы набрать максимальное количество очков. Суть игры состоит в следующем: на игровом поле отображаются круги разного цвета, игроку предлагается создать линию из кругов одинакового цвета, расположенных по горизонтали или по вертикали, созданная линия .сгорает.. Причем линия может .сгореть., только в том случае если количество элементов в ней равно 3. После этой процедуры пустые места на игровом поле заполняются новыми элементами. Линию можно создать путем перестановки по горизонтали или по вертикали соседних элементов. Игра заканчивается тогда когда не возможно создать ни одной линии.
Приложение должно обеспечивать возможность задания количества цветов элементов (кругов).
Следует учесть что цвета кругов выбираются произвольным образом исходя из заданного количества. Кроме того, линии (3 и более элементов) получаемые при произвольной расстановки элементов “сгорают”.
6. Логическая игра “Морской бой”
Разрабатываемое приложение представляет собой программную реализацию известной логической игры.
Приложение должно обеспечивать:
· Расстановку .кораблей. на игровом поле 10х10
· Выбор противника (человек, компьютер).
· Изменение интерфейса в зависимости от выбора противника.
· Фиксацию имен противников и число побед.
7. Логическая игра “Реверси”
Разрабатываемое приложение представляет собой программную реализацию логической игры “Реверси”. Игра идет на поле произвольного размера. Два игроки поочереди устанавливают фишки своего цвета на поле. Фишку можно ставить только на те клетки, рядом с которыми уже стоят фишки. Если между установленной фишкой и какой либо другой фишкой того же цвета находятся фишки другого цвета, все они меняют свой цвет.
8. Логическая игра “Водопроводчик”
Суть игры заключается в постройке трубопровода от одного края игрового поля к другому за определенное время.
Играет один игрок. Компьютер предлагает очередной узел трубопровода, игрок может присоединить его к концу трубопровода, предварительно повернув его нужной стороной. В определенный момент времени с начала игры, в трубопровод начинает подаваться вода, которая медленно заполняет трубопровод. Если трубопровод будет заполнен до того, как игрок закончит строительство - игрок проиграл.
9. Логическая игра “Сокобан”
Разрабатываемое приложение представляет собой программную реализацию известной логической игры “Сокобан”.
Играет один игрок. Игрок последовательно переходит от одного уровня к другому, по мере выполнения заданий. Уровень представляет собой лабиринт, в котором в беспорядке расставлены ящики. Игрок должен толкая ящики человечком расположить их на своих местах (места отмечены на лабиринте). Человечек может толкать только один ящик. Если ящик упирается в стену, то дальше его толкать нельзя.
10. Логическая игра “Тетрис”
Программа представляет собой тетерис на поле произвольного размера.
Прорама должна предоставлять возможность выбирать размер фигур (4, 5, 6, 7 клеток). Скорость падения управляется автоматически, в зависимости от времени игры.
11. Логическая игра “Break House” *
Широко распространенная во времена БК-0010-01 и Spectrum игра.
Игрок переходит от уровня к уровню. Каждый уровень представляет собой клеточное игровое поле - лабиринт. Клетка может быть проходной, или на ней может стоять блок. Блоки могут быть многоклеточными. Также, имеются движущиеся по простым траекториям (вперед-назад) блоки, если движущийся блок прижмет игрока к стене или другому блоку - игрок будет раздавлен.
12. Логическая игра “Рикошет”
Игровое поле содержит источник лазера, набор целей, набор зеркал. Зеркала и цели выставляются на поле случайным образом в начале игры. Каждое зеркало может проворачиваться в любом направлении с шагом 30гр. Игрок должен поворачивая зеркала по очереди сжечь все цели.
13. Логическая игра “Авеле”
Разрабатываемое приложение представляет собой программную реализацию африканской игры “Авеле” (другое название “Манкала”).
Игровое поле состоит из двух рядов, по 6 лунок в каждом. Каждая лунка в начале игры содержит 4 камня. Нижний ряд принадлежит игроку, верхний - его противнику.
Игроки делают ходы по очереди. Для хода игрок берет камни из любой своей непустой лунки, и раскладывает их по одному в каждую следующую лунку, двигаясь против часовой стрелки. Начальная лунка всегда пропускается. Если игрок кладет последний камень в лунку противника И лунка содержит 2 или 3 камня (включая только что положеный) то игрок собирает камни из лунок, двигаясь по часовой стрелке, до тех пор, пока два вышеприведенных условия соблюдаются.
Если игрок не может сделать очередной ход, он собирает все оставшиеся камни, игра заканчивается и определяется победитель.
14. Логическая игра “Шашки”
Разрабатываемое приложение представляет собой программную реализацию известной логической игры “Шашки”.
15. Логическая игра “Уголки”
Известная игра на шашечном поле.
16. Логическая игра “Шахматы”
Известная игра. Учить игре в шахматы компьютер не нужно. Достаточно реализовать игру двух человек за одним компьютером.
17. Игра «Лабиринт»
В программе автоматически генерируется лабиринт. В лабиринте можно управлять персонажем, который умеет перемещаться вверх/вниз/влево/вправо. Цели игры: пройти из левого верхнего угла в правый нижний.
Пример реализации: Карта состоит из двухмерной матрицы. Каждая клеточка может быть занята или свободна. Занятая клеточка зарисовывается черным. Свободная - белым. Лабиринт должен создаться таким образом, чтобы из левого верхнего угла можно было попасть по свободным клеточкам (перемещаясь вверх/вниз/влево/вправо) в правый нижний угол.
Задания высокой сложности
1. Программа для расчета коэффициента естественной освещенности
Есть документ СП 23-102-2003, в нем описана методика расчетов. Есть несколько примеров расчетов.
Программа должна содержать таблицы с данными из документа «СП 23-102 2003». Интерфейс для ввода входных данных. При нажатии кнопки программа должна генерировать отчет с расчетами в документ Microsoft Word. Отчет формируется на основе шаблона.
Распределение тем по курсовым работам БИСТ-211