Командные курсовые работы по программированию

Темы командных проектов по программированию

задачи по программированию

перейти к задачнику по программировнию

  1. Инженерный калькулятор.
    Два режима ввода: встроенная клавиатура или поле ввода строки (например, 5+sqrt(sin(3*tg(4))+10^(45))). Основные требования к программе:
    1) за основу взять калькулятор Windows 7 (все функции, 4 вида: инженерный, статистика, программист, обычный). При этом стараться не использовать стандартные функции (тригонометрические, возведение в степень и т.д.)
    1) разбор строки с выражением, проверка на корректность, в случае ошибки, подробное описание ошибки и подсказка к устранению ошибки. Например, “Ошибка, неизвестная функция arcsn. Возможно, предполагалось arsin”;
    2) нахождение определенных интегралов (не менее пяти численных методов, включая метод Монте-Карло), решение нелинейных уравнений (не менее пяти методов);
    3) операции с матрицами, нахождение определителей, решение системы линейных уравнений;
    4) построение графиков функций, интерполяция, сплайн, прогнозирование.
    5) разрешить тонкую настройку калькулятора с выбором методов вычисления;
    6) применение ООП (классы, наследование, перегрузка операторов, шаблоны)
  2. Графический редактор. Требования к программе:
    1) Неполный аналог графического редактора Paint в Windows 7.
    2) Создание отдельного режима работы редактора для создание рисунков к геометрическим задачам (аналог программы “Живая Геометрия”)
    3) Нахождение численных характеристик фигур, нарисованной пользователем (например, площади).
  3. Шифрование данных. Основные требования к программе:
    1) Шифрование и дешифрование данных с возможностью настройки методов шифрования. Общее количество алгоритмов шифрования не менее пяти. Для реализации алгоритмов использовать собственный класс для работы с длинными числами (причем предложить два варианта такого класса в зависимости от выбора способа хранения цифр длинного числа).
    2) Стеганографические алгоритмы. Скрытие данных в текстовом файле, скрытие данных в изображениях, скрытие данных в аудиофайлах.
    3) Атаки на криптосистемы (в частичной или полной неизвестности).
  4. Распознавание образов. Основные требования к программе:
    1) Распознавание графических примитивов на изображениях (круг, квадрат, треугольник и др.)
    2) Распознавание одиночных символов (буквы, цифры и др.), нарисованные пользователем.
    3) Распознавание слов, состоящих из букв и цифр известного алфавита. Для тестирования алгоритмов создать класс для генерации таких слов на картинках с возможностью настройки параметров: размер букв, длина слова, шрифт, цвет, искажения и др.
    4) Протестировать алгоритмы из предыдущих пунктов  на реальных изображениях. Модифицировать алгоритмы для конкретных данных.
    5) Распознавание лиц на фотографиях. Определение областей, в которых наиболее вероятно изображены лица. Определение данных человека по фотографии (сравнение с базой данных фото претендентов)
    6) Дополнить программу некоторыми функциями программ распознавания текстов (например, FineReader).
    7) По данным изображениям территорий с деревнями (вид сверху) определить количество домов.
  5. Анализ алгоритмов сортировки данных. Требования к программе:
    1) Реализация алгоритмов сортировки (не менее двадцати). Создание собственных классов для всех структур, применяемых в алгоритмах. Тестирование алгоритмов на различных входных данных. Построение графиков зависимостей времени от типов данных, от объема данных, от вида данных.
    2) Предельные значения объема входных данных при фиксированной верхней границе времени сортировки. Многопоточное программирование.
    3) Получение алгоритмы выбора наиболее подходящего алгоритма сортировки для конкретных данных.
  6. Работа с текстом. Основные требования к программе:
    1) Создать текстовый редактор с базовыми функциями: работа с несколькими файлами, автоматическое сохранение черновиков, поиск с настройками (замена, регистр, неточное совпадение), настройка представления текста, изменение кодировки и др.
    2) Поиск по тексту реализовать по нескольким алгоритмам, создав для них собственные классы.
    3) Возможность определять стиль данного текста (научный, публицистический и др.). Разделение данного текста на фрагменты различного стиля.
    4) Определение автора данного текста, если дана база текстов нескольких авторов.
    5) Определение уникальности (в %) данного текста в сравнении с базой текстов. Понятие уникальности определить самостоятельно (несколько вариантов). Выявить наиболее эффективное определение для данной задачи.
    6) Проверка данного текста на орфографические и пунктуационные ошибки с возможностью автоматического исправления.
    7) Поиск одинаковых слов в одном предложении или близких предложениях с заменой на синонимы. Возможность автоматической замены числа из цифр на число из слов.
    8) Подбор рифмы для данного фрагмента стихотворения с пропущенным словом.
  7. Чат. Основные требования к программе:
    1) Работа в локальной сети.
    2) Регистрация пользователей (администратор, модератор, пользователь). Возможность загрузки фото пользователя.
    3) Вывод списка онлайн-пользователей, возможность просмотра учетных данных пользователя.
    4) История сообщений пользователя (хранится на клиенте). История сообщений с модератором хранится и на сервере.
    5) Возможность блокировки пользователя модераторов на указанное время.
    6) Настройка представления текста (шрифты, цвет и т.д.).
    7) Возможность автоматического транслита (например, “привет” в “privet”).
    8) Возможность обмена файлами между пользователем.
    9) Шифрование данных.
    10) Приватная беседа, создание комнаты для нескольких пользователей.
    11) Автоматическая замена запрещенных слов на ********.
    12) Автоматическая блокировка за спам (количество сообщений в единицу времени превысило лимит).
  8. Моделирование биологических систем. Основные требования к программе:
    1) Реализация игры “Жизнь”. Классификация различных начальных состояний игры.
    2) Моделирование взаимодействия популяций с различными характеристиками. Приведем пример для двух популяций: на плоскости расположены две группы точек (красные и синие). Каждая точка характеризуется несколькими числовыми показателями (возраст, сила, здоровье, смелость, скорость и др.). Группы движутся по определенным правилам, например, одна (травоядные) в сторону некоторой области на карте (место нахождение пищи). Другая (хищники) в сторону центра тяжести группы травоядных. В случае, когда две точки из разных групп сходятся достаточно близко (менее данного числа), происходит подсчет количества точке вокруг них в окружности данного радиуса. Если количество хищников превосходит количества травоядных, то точка либо отдаляется от хищников, либо происходит схватка, результат которой зависит от здоровья, смелости, возраста, силы противников и случайных факторов. Программа моделирует данное взаимодействие с целью определения различных зависимостей. Например, соотношения размеров популяции и суммарного показателя силы популяции и исхода взаимодействия.
    3) Моделирование взаимодействия произвольного количества популяций. Отношения между популяциями: вражеские, дружеские, нейтральные.
    4) Моделирование популяций, в каждой из которых есть лидер, от поведения которого зависит состояние популяции. Введите в рассмотрение области на карте, нахождение в которых позволяет популяции аккумулировать здоровье и силу.
    5) Моделирование взаимодействия популяций по дифференциальным уравнения (модель Лотки-Вольтерра и др.).
  9. Танки. Основные требования к программе:
    1) Игра по сети или локально. Если локально, то с возможностью игры двух человек в команде с танками компьютера против другой команды из нескольких танков компьютера.
    2) На карте периодически появляются бонусы (здоровье, снаряды, скорость и др.). Периодичность и место появление (например, чаще около противника) зависит от сложности раунда.
    3) Доступна возможность создавать собственную карту для игры.
    4) Танк компьютера может играть в нескольких стилях. Например, “боязливый” старается стрелять издали и собирать побольше бонусов, “контуженный” начинает разбивать стены или выдвигается в атаку при любом количестве танков противника впереди.
    5) Кроме прохождения игры по сценариям доступен режим Survival.
    6) В процессе игры танк зарабатывает очки, которые можно потратить на покупку новой модели танка или улучшение показателей модели текущей версии.
    7) Возможность сохранения/загрузки игры.
    8) Возможность запуска игры без участия танка человека и анализ процесса игры с точки зрения биологических популяций. Сбор и анализ статистики должен привести к решению задачи прогнозирования исхода игры по начальным данным.
  10. Морской порт. Требуется создать компьютерную модель обслуживания потока заявок на разгрузку, поступающих от грузовых судов (сухогрузов и танкеров), прибывающих в морской порт. Грузовые суда прибывают в порт согласно расписанию, но возможны опоздания и досрочные прибытия. Расписание включает день и время прибытия, название судна, вид груза и его вес, а также планируемый срок стоянки в порту для разгрузки.
    Для разгрузки судов в порту используются три вида разгрузочных кранов, соответствующих трем видам грузов: сыпучим и жидким грузам, контейнерам. Число разгрузочных кранов каждого вида ограничено, так что поступающие заявки на разгрузку одного вида груза образуют очередь. Длительность разгрузки судна зависит от вида и веса его груза, а также некоторых других факторов, например, погодных условий. Любой дополнительный (сверх запланированного срока) день стояния судна в порту (из-за ожидания разгрузки в очереди или из-за задержки самой разгрузки) влечет за собой выплату штрафа (например, 2 тыс. у.е. за каждый дополнительный день простоя судна).
    При моделировании прибытия судов отклонение их от расписания рассматривается как случайная величина с равномерным распределением в некотором интервале (например, от -2 до 9 дней). Еще одной случайной величиной, изменяющейся в фиксированном диапазоне (например, от 0 до 12 дней), является время задержки окончания разгрузки судна по сравнению с обычным (зависящим только от вида груза и его веса).
    Цель моделирования работы морского порта – определение для заданного расписания прибытия судов минимально достаточного числа кранов в порту, позволяющего уменьшить штрафные суммы. Период моделирования – месяц, шаг моделирования – 1-3 дня. В параметры моделирования следует включить расписание прибытия судов, количество кранов каждого вида, диапазоны разброса случайных величин (отклонения от расписания прибытия и отклонения от обычного времени разгрузки), а также шаг моделирования.
    Визуализация моделируемого процесса должна предусматривать показ очередей у разгрузочных кранов, приход судов в порт и их отход после разгрузки. Должен быть показан также список произведенных разгрузок, в котором указывается название разгруженного судна, время его прихода в порт и время ожидания в очереди на разгрузку, время начала разгрузки и ее продолжительность. По окончании моделирования должна быть выведена итоговая статистика: число разгруженных судов, средняя длина очереди на разгрузку, среднее время ожидания в очереди, максимальная и средняя задержка разгрузки, общая сумма выплаченного штрафа.