МУ им. С.Ю. Витте, высокоуровневые методы программирования (курсовая работа)
Узнать стоимость этой работы
16.02.2026, 20:19

Тема курсовой работы у всех обучающихся единая – «Разработка программного продукта для решения прикладных задач». Данная тема указывается на титульном листе.

Решение прикладной задачи выполняется по варианту. Варианты определяются исходя из ID студента.

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

Введение

1. Анализ заданий курсовой работы

1.1. Анализ методических указаний, входных и выходных данных к заданиям курсовой работы

1.2. Анализ индивидуальных требований и формирование итоговых условий по всем заданиям курсовой работы

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

1.4. Выводы по первой главе

2. Разработка программного продукта для решения прикладных задач.

2.1. Создание модуля шифрования (Задание №1)

2.1.1. Построение алгоритмов шифрования, расшифровки и тестирования

2.1.2. Описание и исходный код реализации на языке программирования

2.1.3. Примеры тестирования и отладки

2.1.4. Скриншоты результатов работы

2.2. Создание приложения для работы с модулем

2.2.1. Описание объектов и функций интерфейса

2.2.2. Описание реализации объектов и функций интерфейса

2.2.3. Тестирование и отладка

2.2.4. Скриншоты результатов работы

2.3. Создание Web-сервиса на основе модуля

2.3.1. Планирование адресов и типов запросов на Web-сервисе

2.3.2. Описание и исходный код обработки запросов на Web-сервисе

2.3.3. Тестирование и отладка

2.3.4. Скриншоты результатов работы

2.4. Создание административного приложения для Web-сервиса

2.4.1. Планирование административного приложения для Web-сервиса

2.4.2. Описание и исходный код реализации приложения на языке программирования

2.4.3. Тестирование и отладка.

2.4.4. Скриншоты результатов работы

2.5. Выводы по 2 главе

3. Разработка требований к техническим средствам реализации программного обеспечения для решения прикладных задач

Выводы

Список литературы

Структура курсовой работы должна включать в себя следующие составные части:

– титульный лист (приложение 3);

– оглавление (приложение 4);

– введение;

– текст работы, структурированный по главам (параграфам, разделам);

– заключение;

– список литературы;

– приложения (при необходимости).

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

Оглавление должно быть создано с помощью инструмента «Автосодержание» текстового редактора и собираться автоматически из заголовков глав и параграфов.

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

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

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

Задачи указывают на основные направления работы и начинаются с совершенных глаголов: рассмотреть…, охарактеризовать…, проанализировать…, оценить…, выявить…, разработать…, спроектировать…, автоматизировать…, разработать рекомендации…, предложить методику…, повысить экономическую эффективность… и т.п.

Основные разделы курсовой работы – четыре главы (по одной на каждое задание) и параграфы, которые содержат систематизированное изложение и результаты решения поставленной задачи. В главах и параграфах излагаются теоретические аспекты задачи, приводятся алгоритмы, за счет которых реализуется требуемый функционал. Приводятся тестовые примеры и результаты их выполнения в реализованных приложениях. Представляются основные скриншоты, показывающие работу приложений. В каждом разделе обязательно выкладывается исходный код, решающий поставленную задачу, так как задания сформулированы таким образом, чтобы их возможно было решить в рамках одного модуля, без использования внешних бинарных ресурсов. Рекомендуется логическое разбиение модуля на функции и классы согласно требованиям PEP8, однако работоспособность кода каждого приложения при переносе в один файл должна сохраняться. Код модулей при копировании в файл формата Word должен отличаться от форматирования обычного текста (можно просто сохранять исходное форматирование и подсветку из среды разработки), что повышает его читаемость в тексте пояснительной записки.

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

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

– нормативные правовые акты;

– учебники, учебные пособия, монографии, комментарии к законодательству, словари, энциклопедии;

– научные статьи, материалы из периодических изданий;

– диссертации, авторефераты диссертаций;

– материалы юридической практики, справочно-статистические материалы;

– электронные ресурсы.

 

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

Общие ключевые требования ко всем заданиям (при нарушении баллы за задание обнуляются):

- Для реализации заданий 1, 2 и 4 можно использовать библиотеки, встроенные в Python

- Для реализации задания 3 так же используется библиотека flask

- В заданиях 1-3 необходимо использовать свой студенческий ID - 8 цифр вида 7ххххххх.

Задание № 1

Модуль шифрования

БЕЗ ГРАФИЧЕСКОГО ИНТЕРФЕЙСА

формулировка

Реализуйте функцию сохранения зашифрованных сообщений

Создайте модуль Python, в котором будет две функции - encrypt и decrypt. Функция encrypt должна получать на вход текстовое сообщение, шифруя его с помощью кода Цезаря (сдвиг вправо на заданное число символов).

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

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

Методические указания

Размер сдвига определяется остатком от деления Вашего студенческого ID на 11. То есть, например, для ID 70525968 сдвиг равен 70525968 % 11, то есть 7.

Студенческий ID должен при вызове обеих функций передаваться в них как параметр по умолчанию с ключом sid. То есть функцию можно вызвать так:

encrypt("сообщение")

или так:

encrypt("сообщение", sid=70525968)

Аналогично для функции decrypt

Шифруются символы латинского и кириллического алфавитов, цифры, а так же символы пунктуации.

Считается, что символы расположены по кругу, в котором сначала идут цифры от 0 до 9, потом малые русские буквы, потом большие русские буквы, потом малые латинские, потом большие латинские, потом символы пунктуации. Символы пунктуации взяты такие же и в таком же в порядке, как в константе punctuation встроенного в python модуля string. После символов пунктуации идёт пробел, после чего круг замыкается и снова идут цифры от 0 до 9 и т.д.

То есть для студенческого ID выше, символ 'э' будет зашифрован со сдвигом 7 по описанному выше кругу, а значит алгоритм шифрования пропустит последовательность символов "эюяАБВГ" и даст символ "Д". Аналогичным образом, если шифруется символ "/" (третий с конца в string.punctuation), то алгоритм пропустит последовательность символов "|}~ 012" и выдаст '3'.

Таким образом, для студента с ID 70525968 вызов вида:

encrypt("Верю: справитесь")

должен вернуть строку "46201131213а463д", а вызов вида:

decrypt("46201131213а463д")

должен вернуть строку "Верю: справитесь"

В модуле должен быть блок

if __name__ == "__main__":

в котором тестируется работа функций encrypt и decrypt с разными вариантами вызовов, для каждой проверяется не менее 3 разных тестовых кейсов. Результаты печатаются в консоль и должны быть отражены в отчёте по курсовой работе.

Варианты вызовов берутся из файлов encrypt.txt и decrypt.txt. Результаты пишутся в файлы encrypt_result.txt и decrypt_result.txt. Содержимое файлов с результатами так же дублируется как распечатки в консоль.

Требования для задания 1:

1) Программу сохранить под именем cypher.py. Отсутствие модуля с таким названием считается критической ошибкой при проверке;

2) Функция encrypt должна находится в верхней части модуля - сразу после необходимых импортов. Функция decrypt - сразу за ней;

3) Блок if __name__ == “__main__” должен срабатывать при прямом запуске модуля cypher.py и должен выводить распечатки результатов вызова функций в не менее чем 6 тестовых кейсах;

4) Блок if __name__ == “__main__” не должен срабатывать при импорте модуля в другие модули. Такое срабатывание считается грубой ошибкой;

5) Отсутствие параметра sid, его неверное назначение, или его неверное использование в функциях считаются грубыми ошибками.

Процедура проверки

Вызов модуля напрямую с использованием проверочных вариантов файлов encrypt.txt и decrypt.txt. Импорт модуля и вызов отдельно функций encrypt и decrypt с разнообразными параметрами.

Ожидаемые результаты

При вызове модуля напрямую – распечатки результатов в файлах encrypt_result.txt и decrypt_result.txt. Результаты должны соответствовать содержмиому файлов encrypt.txt и decrypt.txt и ID студента согласно спецификации.

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

 

Задание № 2

Интерфейс для модуля шифрования

С ГРАФИЧЕСКИМ ИНТЕРФЕЙСОМ (GUI)

формулировка

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

Методические указания

Необходимо реализовать оконное приложение на tkinter.

Примерный внешний вид приложения:

Возможности приложения:

– возможность загрузить txt-файл с зашифрованными строками. Файл для загрузки выбирается в диалоговом окне, которое возникает при нажатии кнопки "загрузить файл" (по умолчанию – encrypt.txt);

– возможность увидеть расшифрованные строки на экране в нередактируемом текстовом поле;

– если сообщение больше, чем помещается в поле, то поле должно скроллится;

– если сообщение помещается в поле ввода, то интерфейс скроллинга должен быть скрыт;

– возможность добавить новую строку путём ввода этой строки во второе текстовое поле и нажатия кнопки "Добавить";

– возможность сохранить новый набор строк обратно в открытый файл, предварительно их зашифровав, путём нажатия кнопки "зашифровать и сохранить". Исходный файл при этом перезаписывается;

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

– строка состояния в нижней части окна, для сообщений об ошибках

– ошибками считаются ситуации, когда:

- открытие файла было неуспешно по любой причине (выводится "не удалось открыть файл");

- файл открылся, но в нём находятся символы, кроме шифруемого набора и символа переноса строки (если, например, ошибка на строке номер 5, выводится: "файл содержит недопустимые символы на стр. №5");

- если в момент сохранения файл недоступен для записи, выводится "файл недоступен для записи";

Аспекты функционала окна, зависящие от студенческого ID:

– количество строк в окне вывода расшифрованных сообщений расчитывается как 10 + (рекурсивная сумма цифр ID). Рекурсивная сумма цифр считается путём подсчёта суммы цифр числа, потом суммы цифр его суммы цифр, и так до тех пор, пока не останется 1 цифра. То есть, для ID 70525968 это будет 7 + 0 + 5 + 2 + 5 + 9 + 6 + 8 = 42 => 4 + 2 = 6, и в итоге 10 + 6 = 16 строк

– количество строк в окне ввода новых сообщений рассчитывается как 3 + (остаток от деления ID на 4)

– В интерфейсе программы строки текстовых полей должны быть пронумерованы. Например:

– программа импортирует модуль cypher.py из первого задания и опирается на его функционал, в том числе на шифрование с использованием студенческого id

Программу сохранить под именем app.py

Входные данные

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

Выходные данные

Программа работает и выдаёт ошибки по спецификации

 

Задание № 3

Разработка веб-сервиса

WEB-ИНТЕРФЕЙС

формулировка

Создайте сервер на flask, который при запуске будет открывать Web-сервер по стандартному для flask адресу 127.0.0.1:5000

Сервер обеспечивает Web-интерфейс к модулю шифрования, одновременно поддерживая логирование запросов.

Методические указания

Сервер должен поддерживать следующий функционал:

– GET-запрос по адресу с учётом Вашего ID, например 127.0.0.1:5000/70525968. По этому запросу должна открываться HTML-форма для ввода и сохранения сообщений из приведённого ниже шаблона:

Шаблон страницы:

<!DOCTYPE html>

<HTML>

<BODY>

<FORM method="POST">

    <LABEL>Введите сообщение:</LABEL><br>

    <TEXTAREA style="width:95%" name="text"></TEXTAREA><br>

    <INPUT type='submit' value="Отправить"></SUBMIT>

</FORM>

</BODY>

</HTML>

Внешний вид страницы:

– Обработка посланной формы (фактически POST-запрос по тому же адресу, который отправляет браузер на основании формы). Сервер должен зашифровать и сохранить текст из формы в файл messages.csv (дополняя существующую базу файлов), и вернуть пользователю страницу с подтверждением результата из приведённого ниже шаблона (полученный из формы текст передаётся в шаблон через значение msg)

Шаблон и вид страницы:

<!DOCTYPE html>

<HTML>

<BODY>

<p>Сообщение сохранено:</p>

<p>{{msg}}</p>

</BODY>

</HTML>

– Сервер хранит тексты в файле messages.csv, сохраняя не только сам текст, но так же индекс полученного сообщения, время его отправки и IP-адрес отправителя. То есть в messages.csv 4 значения на каждой строке.

– GET-запрос по адресу 127.0.0.1:5000/reset стирает все сообщения на сервере (стирает csv-файл). В браузер выходится простейший шаблон, рапортующий о выполненном сбросе (код шаблона ниже):

<!DOCTYPE html>

<HTML>

<BODY>

<p>messages.csv стёрт</p>

</BODY>

</HTML>

– Запрос по адресу 127.0.0.1:5000/get_all.json позволяет выкачать с сервера информацию о всех сообщениях в формате json. Возвращается список сообщений messages, в котором каждое сообщение кодируется как json-объект с ключами id, datetime, ip, text.
Справа: пример возможного результата при просмотре из браузера Firefox (используя встроенный функционал просмотра json-выгрузок)

Расшифровка и зашифровка сообщений производится через написанный ранее модуль cypher.py.    

Программу сохранить под именем srv.py

Папку templates с шаблонами приложить к ответу

Процедура проверки

Проверяющий запускает сервер, начинает с запроса на reset, после чего заходит на адрес по ID студента. Отправляет несколько сообщений, проверяет созданный csv-файл messages.csv, проверяет json-выгрузку.

Выходные данные

Сервер работает, создавая и модифицируя содержимое messages.csv в зависимости от спецификации.

 

Задание № 4

Приложение для управления контентом

С ГРАФИЧЕСКИМ ИНТЕРФЕЙСОМ (GUI)

формулировка

Сделать приложение, которое будет управлять содержимым csv-файла на сервере.

Методические указания

Сделайте улучшение приложения из задания 2.

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

Если csv-файл отсутствует, его можно создать из приложения, так же как текстовый файл в задании 2.                                                                                

В окне вывода расшифрованной информации нужно выводить не просто тексты, а табличку из 4 колонок, заполняемую данными из csv-файла (то есть колонки id, время выгрузки, ip-адрес и расшифрованный текст).

Добавление новой строки в приложении оформляется как полноценный пост на сервере, то есть добавляет новую строку с новым id и с отметкой текущего времени. В качестве ip-адреса указывается слово admin.

При наведении мышки на ряд в таблице, слева от ряда возникают 2 стрелочки - вверх и вниз, и крестик. При нажатии стрелочки вверх запись движется в таблице вверху, при нажатии стрелочки вниз – вниз. При нажатии крестика сообщение удаляется.

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

Приложение опирается на cypher.py при расшифровке сообщений из csv-файла и в процессе зашифровки сообщений при сохранении csv-файла.

Изменения, вносимые в messages.csv в приложении, тут же отражаются на сервере и наоборот.

Программу сохранить под именем admin.py

Процедура проверки

Проверяющий запускает сервер и административное приложение. Загружает в приложение используемый сервером файл messages.csv. Выполняет команды добавления и удаления строк в приложении, проверяет правильность форматов данных в окне приложения, в файле messages.csv, а так же правильность выгрузок с сервера.

Ожидаемый результат

Работа интерфейса admin.py согласно спецификации. Бесшовная интеграция админки и сервера.

 

Требования к оформлению курсовой работы

Курсовая работа выполняется в электронной форме и размещается обучающимся в личном кабинете в виде отдельных файлов:

- Курсовая работа в формате редактируемого файла, например: .odt, .docx, .rtf. Нельзя предоставлять курсовую работу в виде нередактируемого pdf-файла. Имя файла должно иметь следующий вид: «ФИО_КР_ВМП.*» Например: «Иванов_И.И._КР_ВМП.docx» или «Иванов_И.И._КР_ВМП_Отчет.rtf»

- zip-архив с исходным программным кодом и прочими сопутствующими файлами, например: Ivanov I.I_KR_VMP.zip



Узнать стоимость этой работы



АЛФАВИТНЫЙ УКАЗАТЕЛЬ ПО ВУЗАМ
Найти свою работу на сайте
АНАЛИЗ ХОЗЯЙСТВЕННОЙ ДЕЯТЕЛЬНОСТИ
Контрольные, курсовые, дипломы из разных ВУЗов
БУХГАЛТЕРСКИЙ УЧЕТ, АНАЛИЗ И АУДИТ
Контрольные, курсовые, дипломы из разных ВУЗов
ВЫСШАЯ МАТЕМАТИКА
Контрольные работы из разных ВУЗов
МЕНЕДЖМЕНТ И МАРКЕТИНГ
Контрольные, курсовые, дипломы из разных ВУЗов
МЕТОДЫ ОПТИМАЛЬНЫХ РЕШЕНИЙ, ТЕОРИЯ ИГР
Контрольные, курсовые, рефераты, тесты из разных ВУЗов
ПЛАНИРОВАНИЕ И ПРОГНОЗИРОВАНИЕ
Контрольные, курсовые, рефераты, тесты из разных ВУЗов
СТАТИСТИКА
Контрольные, курсовые, рефераты, тесты из разных ВУЗов
ТЕОРИЯ ВЕРОЯТНОСТЕЙ И МАТ. СТАТИСТИКА
Контрольные работы из разных ВУЗов
ФИНАНСЫ, ДЕНЕЖНОЕ ОБРАЩЕНИЕ И КРЕДИТ
Контрольные, курсовые, дипломы из разных ВУЗов
ЭКОНОМЕТРИКА
Контрольные, курсовые, рефераты, тесты из разных ВУЗов
ЭКОНОМИКА
Контрольные, курсовые, дипломы из разных ВУЗов
ЭКОНОМИКА ПРЕДПРИЯТИЯ, ОТРАСЛИ
Контрольные, курсовые, дипломы из разных ВУЗов
ГУМАНИТАРНЫЕ ДИСЦИПЛИНЫ
Контрольные, курсовые, дипломы из разных ВУЗов
ДРУГИЕ ЭКОНОМИЧЕСКИЕ ДИСЦИПЛИНЫ
Контрольные, курсовые, дипломы из разных ВУЗов
ЕСТЕСТВЕННЫЕ ДИСЦИПЛИНЫ
Контрольные, курсовые, дипломы из разных ВУЗов
ПРАВОВЫЕ ДИСЦИПЛИНЫ
Контрольные, курсовые, дипломы из разных ВУЗов
ТЕХНИЧЕСКИЕ ДИСЦИПЛИНЫ
Контрольные, курсовые, дипломы из разных ВУЗов
РАБОТЫ, ВЫПОЛНЕННЫЕ НАШИМИ АВТОРАМИ
Контрольные, курсовые работы
ОНЛАЙН ТЕСТЫ
ВМ, ТВ и МС, статистика, мат. методы, эконометрика