Темы курсовых проектов по дисциплине “Программирование сетевых приложений”
Введение
Курсовой проект должен представлять собой разработку клиент-серверного (либо только клиентского, либо только серверного) приложения, реализующего либо стандартный протокол, либо протокол, разработанный студентом самостоятельно. Клиентское приложение должно иметь графический пользовательский интерфейс.
Перечень тем
1. Многопользовательский чат с поддержкой приватных сообщений
Описание: Разработка клиент-серверного чата с возможностью отправки сообщений всем пользователям и приватных сообщений. Поддержка аватаров, статусов пользователей, истории сообщений.
Технологии: TCP сокеты, Qt GUI, многопоточность, SQLite для хранения истории
Сложность: Средняя
2. FTP-клиент с графическим интерфейсом
Описание: Реализация FTP-клиента с поддержкой основных команд FTP протокола (LIST, GET, PUT, DELETE, MKDIR). Двухпанельный интерфейс для навигации по локальной и удаленной файловым системам.
Технологии: TCP сокеты, FTP протокол, Qt Widgets, QFileSystemModel
Сложность: Средняя
3. Почтовый клиент с поддержкой SMTP и POP3
Описание: Приложение для отправки и получения электронной почты. Поддержка вложений, адресной книги, HTML-писем.
Технологии: SMTP, POP3 протоколы, MIME формат, Qt Network, Qt WebEngine
Сложность: Высокая
4. Система удаленного контроля рабочего стола
Описание: Приложение для удаленного доступа к рабочему столу с возможностью передачи изображения экрана и управления мышью/клавиатурой.
Технологии: TCP/UDP сокеты, сжатие изображений, Qt GUI, захват экрана
Сложность: Высокая
5. Многопользовательская игра “Морской бой”
Описание: Сетевая реализация классической игры с поддержкой нескольких одновременных игр, рейтинговой системы и чата.
Технологии: TCP сокеты, Qt GUI, игровая логика, SQLite
Сложность: Средняя
6. Система обмена файлами P2P
Описание: Одноранговая файловая сеть с возможностью поиска и скачивания файлов. Поддержка сегментной загрузки и докачки.
Технологии: UDP/TCP, DHT протокол, Qt GUI, многопоточность
Сложность: Высокая
7. Веб-сервер с поддержкой CGI
Описание: HTTP-сервер с поддержкой статических страниц, CGI скриптов, логированием и базовой аутентификацией.
Технологии: HTTP протокол, TCP сокеты, процессы, файловая система
Сложность: Высокая
8. Клиент для обмена мгновенными сообщениями (аналог ICQ)
Описание: Приложение для обмена текстовыми сообщениями с поддержкой контакт-листа, статусов, файловых трансферов.
Технологии: TCP сокеты, Qt GUI, XML/JSON для протокола, SQLite
Сложность: Средняя
9. Система мониторинга сетевых устройств
Описание: Приложение для сканирования сети, обнаружения активных устройств, мониторинга их доступности и сбора информации.
Технологии: ICMP, ARP, TCP сканирование, Qt GUI, графики
Сложность: Средняя
10. Прокси-сервер с кэшированием
Описание: HTTP прокси-сервер с кэшированием страниц, логированием, фильтрацией контента и базовой статистикой.
Технологии: HTTP прокси, TCP сокеты, кэширование, Qt (для GUI мониторинга)
Сложность: Высокая
11. Система голосовой связи VoIP
Описание: Приложение для голосового общения по сети с поддержкой кодеков, регулировки качества звука, контакт-листа.
Технологии: UDP сокеты, аудио кодеки, Qt Multimedia, многопоточность
Сложность: Высокая
12. Клиент для сетевого времени (NTP-клиент)
Описание: Приложение для синхронизации времени с NTP-серверами с графическим отображением точности синхронизации и истории.
Технологии: NTP протокол, UDP сокеты, Qt GUI, графики
Сложность: Средняя
13. Система удаленного запуска программ
Описание: Клиент-серверное приложение для удаленного запуска и управления процессами на другом компьютере.
Технологии: TCP сокеты, процессы, Qt GUI, безопасность
Сложность: Средняя
14. Многопользовательский белый доска (Whiteboard)
Описание: Совместное рисование несколькими пользователями в реальном времени с различными инструментами и цветами.
Технологии: TCP/UDP сокеты, Qt Graphics Framework, сериализация объектов
Сложность: Средняя
15. Система резервного копирования по сети
Описание: Автоматическое резервное копирование файлов на сетевой сервер с поддержкой расписания, инкрементного копирования и шифрования.
Технологии: TCP сокеты, файловые операции, криптография, Qt GUI
Сложность: Высокая
16. Клиент для сетевого принтера
Описание: Приложение для отправки документов на сетевой принтер с поддержкой различных форматов и очереди печати.
Технологии: TCP сокеты, обработка документов, Qt GUI, очереди
Сложность: Средняя
17. Система опроса и голосования
Описание: Создание и проведение опросов с возможностью голосования нескольких участников, подсчета результатов в реальном времени.
Технологии: TCP сокеты, Qt GUI, визуализация данных, SQLite
Сложность: Средняя
18. Сетевой калькулятор с историей вычислений
Описание: Клиент-серверный калькулятор с возможностью сохранения и обмена историей вычислений между пользователями.
Технологии: TCP сокеты, Qt GUI, математические вычисления, JSON
Сложность: Низкая
19. Система обмена заметками (аналог стикеров)
Описание: Приложение для создания и обмена текстовыми заметками между пользователями сети с категоризацией и поиском.
Технологии: TCP сокеты, Qt GUI, текстовые данные, поиск
Сложность: Средняя
20. Клиент для сетевого сканера
Описание: Удаленное управление сканером с возможностью настройки параметров сканирования и получения отсканированных изображений.
Технологии: TCP сокеты, обработка изображений, Qt GUI, файловые операции
Сложность: Средняя
21. Система логирования и мониторинга серверов
Описание: Сбор и визуализация логов с нескольких серверов, оповещения о критических событиях, построение графиков.
Технологии: TCP/UDP сокеты, логирование, Qt GUI, графики, базы данных
Сложность: Высокая
22. Сетевой проигрыватель медиафайлов
Описание: Потоковая передача аудио/видео файлов с сервера клиенту с поддержкой различных форматов и буферизации.
Технологии: TCP/UDP сокеты, Qt Multimedia, потоковое вещание, буферизация
Сложность: Высокая
23. Система обмена контактами (vCard)
Описание: Приложение для обмена электронными визитками с автоматическим обновлением и синхронизацией контактов.
Технологии: TCP сокеты, vCard формат, Qt GUI, адресная книга
Сложность: Средняя
24. Клиент для сетевой базы данных
Описание: Удаленный доступ к базе данных с возможностью выполнения запросов, просмотра таблиц и экспорта данных.
Технологии: TCP сокеты, SQL протокол, Qt GUI, Qt SQL, JSON
Сложность: Высокая
25. Система бронирования и резервирования ресурсов
Описание: Приложение для бронирования переговорных комнат, оборудования или других ресурсов с календарем и уведомлениями.
Технологии: TCP сокеты, Qt GUI, календари, SQLite, уведомления
Сложность: Средняя
26. Сетевой тренажер для изучения иностранных языков
Описание: Многопользовательская система для изучения языков с карточками, тестами и рейтингом пользователей.
Технологии: TCP сокеты, Qt GUI, обучающие алгоритмы, SQLite
Сложность: Средняя
27. Система сбора и анализа опросников
Описание: Создание распределенных опросников с различными типами вопросов, сбор ответов и автоматический анализ результатов.
Технологии: TCP сокеты, Qt GUI, статистика, визуализация данных
Сложность: Средняя
28. Клиент для управления IoT устройствами
Описание: Удаленное управление и мониторинг умных домашних устройств (лампы, термостаты, датчики) по сети.
Технологии: TCP/UDP сокеты, MQTT протокол, Qt GUI, JSON
Сложность: Высокая
29. Система координатной доски для презентаций
Описание: Совместная работа с презентациями нескольких участников с возможностью аннотирования и управления.
Технологии: TCP сокеты, Qt GUI, обработка изображений, презентации
Сложность: Высокая
30. Сетевой архиватор и файловый менеджер
Описание: Удаленное сжатие, распаковка и управление архивами с поддержкой различных форматов и шифрования.
Технологии: TCP сокеты, алгоритмы сжатия, криптография, Qt GUI
Сложность: Высокая
Общие требования к курсовому проекту
- Клиент-серверная архитектура с корректным разделением функционала
- Графический интерфейс на стороне клиента (Qt или другая GUI библиотека)
- Сетевое взаимодействие через сокеты или высокоуровневые протоколы
- Обработка ошибок и некорректных ситуаций
- Логирование основных событий в приложении
- Документация кода и пользовательская документация
- Тестирование основных функций приложения
Критерии оценки
- Техническая реализация (40%) - качество кода, архитектура, обработка ошибок
- Функциональность (30%) - полнота реализации заявленных возможностей
- Интерфейс пользователя (20%) - удобство и интуитивность интерфейса
- Документация и тестирование (10%) - качество документации и тестов