Методические указания по организации подготовки, выполнению и защите курсовой работы по дисциплине высокоуровневые методы программирования
Скачать 1.64 Mb.
|
2.3 Разработка аналитической системы 2.3.1. Построение алгоритма решения задания с графическим интерфейсом Существует несколько подходов к решению стандартной задачи, самый известный, это, пожалуй, рекурсивный метод. Рекурсивно решение задачи «перенести башню из n−1 диска на 2-й штырь». Затем перенос самого большого диска на 3-й штырь, и рекурсивно решить задачу «перенести башню из n−1 диска на 3-й штырь». Блок схема такого алгоритма изображена на рисунке рисунке 9. Рисунок 9 – Блок схема рекурсивного алгоритма 2.4.2. Разработка программной реализации на языке программирования и с использованием дополнительных библиотек Для визуализации задачи был использован виджет Canvas из уже ис- пользованной ранее библиотеки tkinter. Правильная визуализация задачи за- ключалась в рисовании прямоугольников нужного размера и цвета и размеще- ния их на виджете. 51 Полученный интерфейс можно увидеть на рисунке 10. Рисунок 10 – интерфейс аналитической системы Исходный код с комментариями приведен в приложении 52 2.5. Тестирование и отладка Отладка происходила в среде разработки PyCharm. Окно среды разра- ботки в режиме отладки приведено на рисунке 11. Рисунок 11 – Среда разработки в режиме отладки Помимо классического режима отладки, доступного для большинства сред разработки, PyCharm имеет Python Console – консоль интерпретатора языка Python, которую иногда удобно использовать для тестирования или от- ладки функционала. Эта консоль приведена на рисунке 12. Рисунок 12 – Python Console в среде разработки 53 Тестирование программного обеспечения является неотъемлемой ча- стью жизненного цикла разработки программного обеспечения. Жизненный цикл разработки программного обеспечения – это процедурный процесс в раз- работке программного продукта. Этот процесс осуществляется серией шагов, которые объясняют в целом идею, лежащую в основе разработки программно- го продукта. Для тестирования работоспособности программы были использовано два вида тестирования: функциональное и модульное. Функциональное тестирование — тестирование ПО, главная цель кото- рого является проверка реализуемости функциональных требований приложе- ния, т.е. способность приложения в заданных критериях решать возложенные на него задачи. Этот вид тестирования проведен для всех проектов. Модульное тестирование, или юнит-тестирование (англ. unit testing) — процесс в программировании, позволяющий проверить на корректность от- дельные модули исходного кода программы. Для написания модульных тестов была использована библиотека unittest, входящая в стандартную библиотеку. Были покрыты основные логические сценарии для второго и третьего задания. Листинг тестов также приведен в приложении. Снимок экрана с написанием тестов приведен на рисунке 13. 54 Рисунок 13 – написание модульных тестов 55 2.6. Выводы по 2 главе Язык Python обладает обширной стандартной библиотекой, которая по- могает разработчику программного решать прикладные задачи разного уровня сложности и направленности. Правильное использование алгоритмов и структур данных упрощает разработку, а применение модульного тестирования позволяет разработчику следить за качеством и работоспособностью своего кода без необходимости запуска и прохождения сценариев, необходимых, чтобы проверить маленький кусочек кода. Богатая инфраструктура, сложившаяся вокруг языка Python, позволяет разработчику выбирать из множества инструментов, к примеру, среда разра- ботки PyCharm предлагает богатые возможности для отладки программного обеспечения. Существующее руководство по написанию кода на Python PEP 8 позво- ляет в том числе начинающим разработчикам писать и читать понятный код для всего огромного сообщества программистов на Python. Это руководство было использовано и при написании данной курсовой работы 56 3 РАЗРАБОТКА ТРЕБОВАНИЙ К ТЕХНИЧЕСКИМ СРЕД- СТВАМ РЕАЛИЗАЦИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ РЕШЕНИЯ ПРИКЛАДНЫХ ЗАДАЧ Минимальный состав используемых технических средств: Версия ОС: Windows 7 / 8 /10 (64bit) Процессор: Intel Core 2 Duo 2.6 GHz / AMD Athlon 64 X2 6000+ Оперативная память:4 Gb Наличие свободного места на жестком диске более 500 Мбайт. Установленный интерпретатор языка Python > 3.7. Для поддержки, дальнейшего развития и отладки рекомендуется использовать среду разработки PyCharm. 57 Выводы Основной целью данной курсовой работы являлось решение при- кладных задач. Осуществлена попытка решения предложенных задач, в хо- де решения которых были углублены знания языка Python и его инфра- структуры, были реализованы алгоритмы и графические пользовательские интерфейсы программ, использованы некоторые дополнительные библио- теки. Помимо этого, было уделено внимание тестированию и отладке про- граммного кода, что является неотъемлемой частью разработки программ- ного обеспечения. Использовано руководство PEP8 для правильного оформления кода, призванного упростить поддержку и развитие программ- ных продуктов. Получившиеся в результате разработки программы успешно выпол- няются интерпретатором языка Python. 58 Список использованной литературы 1. Доусон М. Программируем на Python / М.Доусон; пер. с англ. В.Порицкий. – С-П.:Питер, - 2019. – 416 стр. 2. МакГрат М. Python. Программирование для начинающих / М. МакГрат; пер. с англ. М. Райтман. – М.: Эксмо, 2015. – 178 стр. 3. PEP 8 - руководство по написанию кода на Python [Электронный ресурс]. – Режим доступа: https://pythonworld.ru/osnovy/pep-8-rukovodstvo-po- napisaniyu-koda-na-python.html, свободный. – Загл. с экрана (дата обраще- ния: 25.12.2020). 4. Гамма Э. Паттерны объектно-ориентированного проектирования / Э. Гам- ма, Р. Хелм, Дж. Ральф, Дж. Влиссидес / пер. с англ. А.А. Слинкин. – С-П.: Питер, - 2020 – 448 стр. 5. Копец Д. Классические задачи Computer Science на языке Python / Д. Ко- пец; пер. с англ. Е.Л. Сандицкая. – М.: Прогресс книга, - 2020. – 256 стр. 6. Хайнеман Дж. Алгоритмы. Справочник с примерами на C, C++, Java и Py- thon / Дж. Хайнеман, Г. Поллис, Ст. Селков / пер. с англ. И.В. Красиков. - М.: Вильямс, 2017. – 432 стр. 7. GUI Help/Tkinter book - Викиучебник [Электронный ресурс]. – Режим до- ступа: https://ru.wikibooks.org/wiki/GUI_Help/Tkinter_book, свободный. – Загл. с экрана (дата обращения: 25.12.2020). 8. Ханойская башня - Википедия, свободная энциклопедия [Электронный ре- сурс]. – Режим доступа: https://ru.wikipedia.org/wiki/%D0%A5%D0%B0%D0%BD%D0%BE%D0%B9 %D1%81%D0%BA%D0%B0%D1%8F_%D0%B1%D0%B0%D1%88%D0%B D%D1%8F. – Загл. с экрана (дата обращения: 25.12.2020). 9. Кент Б. – экстремальное программирование. Разработка через тестирование / пер. с англ. П. Анджан. – С-П.: Питер, 2018. – 224 стр. 59 Приложение 3 ИНДИКАТОРЫ ОЦЕНИВАНИЯ КУРСОВОЙ РАБОТЫ: Критерий Показатель соответствия Норма- тивные значе- ния (баллы) Оценка руково- дителя (баллы) Соответствие оформления кур- совой работы стандартам: ГОСТ Р 7.0.5-2008, ГОСТ 7.32.-2017, ГОСТ 7.0.100-2018 полностью соответствует 10 соответствует с незначительными отклоне- ниями 5 соответствует с существенными отклонени- ями 2 Выполнение задания №1 (работа со строками без гра- фического интерфейса) Анализ строк проведен верно, выходной файл заполняется правильными данными. 10 Строки анализируются с погрешностями, резуль- тат выводится в консоль вместо файла 5 Приведен алгоритм решения задачи в виде блок- схемы или псевдокода, но код не работоспособен. 2 Решение не предоставлено 0 Выполнение задания №2 (финансовая система с гра- фическим интерфейсом) Весь функционал работоспособен согласно зада- нию. Приведен алгоритм решения и скриншоты тестового выполнения. 15 Обмен данными с приложением осуществляется через консоль. Подсчеты баланса выполняются с ошибками 8 Приведен алгоритм решения задачи в виде блок- схемы или псевдокода, но код не работоспособен. 4 Решение не предоставлено 0 Выполнение задания №3 (разработка калькулятора) Весь функционал работоспособен согласно зада- нию. Код выполняется без загрузки дополнитель- ных библиотек. Приведен алгоритм решения скриншоты тестового выполнения. 25 Кнопки калькулятора отличаются в нажатом виде, полностью работает базовая часть калькулятора. 12 Приведен алгоритм решения задачи в виде блок- схемы или псевдокода, но код не работоспособен. 4 Решение не предоставлено 0 Выполнение задания №4 (решение расширенной зада- чи о Ханойский башнях) Весь функционал работоспособен согласно зада- нию. Код выполняется без загрузки дополнитель- ных библиотек. Перемещение колец частично анимировано. Приведен алгоритм решения скриншоты тестового выполнения. 30 Интерфейс задачи показывает перемещение колец между шпинделями, расстановку колец, однако кнопки перемещений работают некорректно. 15 Приведен алгоритм решения задачи в виде блок- схемы или псевдокода, но код не работоспособен. 4 Решение не предоставлено 0 Теоретический уровень и само- стоятельность в постановке вопросов, наличие цифрового материала, расчетов, таблиц соответствуют требованиям полностью соответствует 10 соответствует с незначительными отклоне- ниями 5 соответствует с существенными отклонени- ями 2 не соответствует 0 Критерии оценивания Оценка Диапазон критерия оценивания Отлично от 85 до 100 баллов. Хорошо от 66 до 84 баллов; Удовлетворительно от 50 до 65 баллов; Неудовлетворительно 49 балов и менее 60 Приложение 4 Руководителю образовательной программы Корольковой И.А. от студента (ки) _______ курса Факультета информационных технологий Фамилия_______________________ Имя___________________________ Отчество_______________________ ЗАЯВЛЕНИЕ Прошу Вас утвердить мне тему курсовой работы ___________________________ __________________________________________________________________________________________________________________________________________________ ________________________________________________________________________________________________________________________________________________ по дисциплине «Высокоуровневые методы программирования»_______ Контактный телефон: ____________________________________________________ Электронная почта: ______________________________________________________ Дата _____________________ Подпись _____________________ «СОГЛАСОВАНО» Руководитель образовательной программы ____________________ И.А. Королькова Научный руководитель_____________________________________________________ «____»___________202__г. |