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

Здесь содержатся лишь краткие пояснения к заданиям. Конечная постановка должна уточняться.

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

В любом случае, худший подход - это реализация всех операций в методах формы.

Редакторы

Система построения диаграмм

(2 человека)

Необходимо разработать инструмент создания диаграмм. В самом простом случае, диаграмма представляет собой множество областей, множество блоков (с текстом) и множество соединителей (возможно, с подписями). В более сложном – следует подумать об универсальной системе, когда настройками или пользователем могут быть определены различные виды блоков и различные типы соединителей.
Разработать формат сохранения диаграмм, основанный на языке XML, реализовать сохранение и загрузку диаграмм из этого формата.
Опционально – реализовать сохранение диаграмм в растровые рисунки (bmp, jpeg).
Паттерны, которые могут оказаться полезными: Builder, Visitor (для сохранения и восстановления диаграмм).

Система обработки изображений

(2 человека)

Основные возможности:

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

Редактор нот

(2 человека)

Основные возможности:

Опционально – реализовать проигрывание мелодий с использованием стандартной библиотеки MIDI.
Паттерны, которые могут оказаться полезными: Builder, Visitor (для сохранения и восстановления).
Полезные ссылки: http://promidi.by.ru/

Игры

Реверси

(2 человека)

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

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

Шахматы

(2 человека)

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

Необходимо реализовать возможность как игры двух пользователей на одной машине, так и игры по сети (на основе TCP сокетов).

Шашки

(2 человека)

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

Необходимо реализовать возможность как игры двух пользователей на одной машине, так и игры по сети (на основе TCP сокетов).

Клон Сапера

(1 человек)

Вам представляется уникальная возможность написать еще один клон знаменитого Сапера! Игра на полях разных размеров и с разным количеством мин, хронометраж, запись/воспроизведение игры.

Другое

Калькулятор

(1 человек)

a la встроенный в Windows калькулятор. Предусмотреть возможность работы с разными классами чисел (обыкновенные дроби, "длинная арифметика" и т.д.). Желательно, чтобы набор типов чисел, с которыми работает калькулятор, можно было дополнять, внеся в исходный текст минимальные изменения.

Осциллограф

(1 человек)

Моделирование работы осциллографа. Реализуете набор компонентов, генерирующих сигналы определенной формы, и предоставляете пользователю возможность «подключать» их к входам и наблюдать картину.
Паттерны, которые могут оказаться полезными: Decorator (для организации цепочки преобразований сигнала).

Сайт управляется системой uCoz