Коваленко Л.А. ВКР на тему «Разработка конструктора нейронных сетей». Глубокая проверка на плагиат.
сообщении об ошибке выводится: «Ни один блок кода не выбран для очистки вывода» с кнопкой
«Ок».
3.Если хотя бы один открытый проект есть и хотя бы один блок кода выбран, то отображается окно подтверждения «Подтвердить очистку вывода выбранных блоков кода?» с кнопками «Да» и «Нет».
4.Если «Да», то:
1)В поле со статусом выводится «Подождите, пока очистка вывода блоков не будет завершена...»;
2)Вывод всех выбранных блоков в списке блоков очищается, вывод скрывается.
3)Статус проекта: «Не сохранен».
4)В поле со статусом и в логгер выводится «В проекте [название] очистка вывода выбранных блоков завершена».
5. Если «Нет», то отмена действия.
6. В случае ошибки выводится сообщение об ошибке «Не удалось очистить вывод: [описание ошибки]».
«Удалить выбранные блоки» 1. Если открытых проектов нет, то в поле со статусом, в логгер и во всплывающем сообщении об
ошибке выводится: «Список проектов пуст» с кнопкой «Ок».
2. Если хотя бы один открытый проект есть, но блоки не выбраны, то во всплывающем сообщении об ошибке выводится: «Ни один блок не выбран для удаления» с кнопкой «Ок».
3. Если хотя бы один открытый проект есть и хотя бы один блок выбран, то отображается окно подтверждения «Подтвердить остановку и удаление выбранных блоков?» с кнопками «Да» и «Нет».
4. Если «Да», то:
1)В поле со статусом выводится «Подождите, пока остановка и удаление блоков не будет завершено...»;
2)Из очереди выполнения удаляются выбранные блоки кода.
3)Выполняющей среде посылается сигнал о прерывании выполнения блока кода, если он был выбран.
4)Выбранные блоки удаляются из списка блоков.
5)Статус проекта: «Не сохранен».
6)В поле со статусом и в логгер выводится «В проекте [название] удаление выбранных блоков завершено».
5. Если «Нет», то отмена действия.
6. В случае ошибки выводится сообщение об ошибке «Не удалось удалить выбранные блоки: [описание ошибки]».
2.1.4 Функции блоков кода Основные функции блоков кода приведены в таблице 2.3.
Таблица 2.3 — Основные функции блоков кода Функция Описание «Запустить»
Блок кода должен содержать кнопку, посредством которой можно его запустить.
1.Если ядро не было запущено, то оно запускается.
2.В очередь добавляется блок на выполнение.
«Остановить» Блок кода должен содержать кнопку, посредством которой можно остановить его выполнение.
1.Отображается окно подтверждения «Подтвердить остановку блока кода?» с кнопками «Да» и «Нет».
2.Если «Да», то:
1)Если блок кода выполняется, то его выполнение прерывается, из очереди удаляются все блоки, которые были добавлены в очередь после него.
2)Если блок кода не выполняется, но находится в очереди, то из очереди удаляются все блоки,
11
Коваленко Л.А. ВКР на тему «Разработка конструктора нейронных сетей». Глубокая проверка на плагиат.
которые были добавлены в очередь после него, а также он сам. 3. Если «Нет», то отмена действия.
«Удалить» Блок кода должен содержать кнопку, посредством которой можно его удалить.
1.Отображается окно подтверждения «Подтвердить остановку и удаление блока кода?» с кнопками «Да» и «Нет».
2.Если «Да», то:
1)Если блок кода выполняется, то его выполнение прерывается, из очереди удаляются все блоки, которые были добавлены в очередь после него.
2)Если блок кода не выполняется, но находится в очереди, то из очереди удаляются все блоки, которые были добавлены в очередь после него, а также он сам.
3)Блок удаляется из списка блоков.
4)Статус проекта: «Не сохранен».
3. Если «Нет», то отмена действия. «Скрыть/показать вывод»
Блок кода должен содержать кнопку, посредством которой можно скрыть/показать его вывод.
1.Если вывод был скрытым, то он становится видимым.
2.Если вывод был видимым, то он становится скрытым. Горячие клавиши, используемые в блоке кода:
• Tab, текст не выделен — в текущей строке кода добавляется отступ.
• Tab, текст выделен — в каждой выделенной строке кода добавляется отступ.
• Shift-Tab, текст не выделен — в текущей строке кода удаляется отступ.
• Shift-Tab, текст выделен — в каждой выделенной строке кода удаляется отступ.
• Ctrl+C, текст не выделен — текущая строка кода копируется.
• Ctrl+X, текст не выделен — текущая строка кода вырезается.
• Ctrl+D, текст не выделен — текущая строка кода дублируется.
• Ctrl+D, текст выделен — выделенная часть кода дублируется.
• Backspace, текст не выделен — если левее текущей позиции пробел, то удаление отступа, иначе обычное поведение.
• Ctrl+/, текст не выделен — комментирование/раскомментирование текущей строки кода (добавление/удаление символа «#» перед печатными символами).
• Ctrl+/, текст выделен — комментирование/раскомментирование выделенных строк кода (добавление/удаление символа «#» перед печатными символами в каждой строке).
• Enter, курсор в конце строки кода — добавление новой пустой строки и добавление отступа: o Если предыдущая строка содержала «async def», «def», «class», «if», «elif», «else», «try», «except», «finally», «for», «while», «with», то количество отступов на одно больше, чем на предыдущей строке;
o Если предыдущая строка содержала «break», «continue», «raise», «return», «pass», то количество отступов на одно меньше, чем на предыдущей строке;
o Во всех остальных случаях количество отступов равно количеству отступов предыдущей строки. В качестве стиля подсветки кода в блоке кода выбран стиль JupyterLab с некоторыми изменениями. Далее указаны цвета в формате RGB-HEX для токенов языка CPython:
• Ключевое слово («keyword»): #008000;
• Встроенное название («builtin_name»): #008000;
• Декоратор: #AA22FF;
• Название класса и название функции: #0000FF;
• Свойство объекта (после точки): #0055AA;
• Слово «self»: #0055AA;
• Скобки «()[]{}», запятая «,», точка «.», двоеточие «:», точка с запятой «;»: #212121;
• Строка: #BA2121;
• Число: #008800;
• Имя: #212121;
• Оператор: #AA22FF;
12
Коваленко Л.А. ВКР на тему «Разработка конструктора нейронных сетей». Глубокая проверка на плагиат.
•Ошибочный токен: #FF0000;
•Комментарий: #6E7781;
•Обозначение кодировки: #408080.
В случае запроса данных со стороны среды исполнения в приложении должно открываться окно с выбором способа ввода («без экранирования», «обычный, с экранированием», «байтовая строка, без экранирования», «байтовая строка с экранированием») и двумя кнопками «Ок» и «Отмена».
Кнопка «Отмена» перезапускает окно (отказаться от ввода нельзя). После нажатия на кнопку «Ок» применяется выбранный способ ввода и открывается окно с полем ввода и двумя кнопками «Ок» и «Отмена». Если запрашивается однострочный ввод, то однострочное поле ввода. Если запрашивается многострочный ввод, то многострочное поле ввода. Кнопка «Отмена» закрывает окно и повторно открывает окно с выбором способа ввода. В зависимости от примененного ранее способа ввода зависит преобразование введенного текста в конечный результат:
•«Без экранирования» означает, что управляющие символы не будут заменяться на соответствующие им текстовые подстановки. Например, последовательность «\n» не будет преобразована в два символа «\n», вместо этого она будет означать перевод строки.
Исходная последовательность должна быть «\\\n», чтобы быть преобразованной в два символа
«\n».
•«Обычный, с экранированием» означает, что управляющие символы будут заменяться на соответствующие им текстовые подстановки. Например, последовательность «\n» будет означать два символа «\n».
•«Байтовая строка, без экранирования» означает, что символы воспринимаются как ASCII, а экранирование отключено.
•«Байтовая строка, с экранированием» означает, что символы воспринимаются как ASCII, а экранирование включено.
Если преобразование невозможно, то должно выводиться сообщение об ошибке «Ошибка ввода: [описание ошибки]» с кнопкой «Ок». После нажатия на «Ок» должен происходить переход обратно к окну выбора способа ввода.
Если преобразование успешно, то конечный результат должен отправляться обратно, в среду исполнения.
2.1.5 Функции блоков текста Основные функции блоков текста приведены в таблице 2.4.
Таблица 2.4 — Основные функции блоков текста Функция Описание
«Редактировать как HTML»
Блок текста должен содержать кнопку, посредством которой можно редактировать текст в формате HTML.
1. При выборе функции «Редактировать как HTML» открывается окно с полем ввода многострочного текста и с двумя кнопками «Ок» и «Отмена».
2. В поле ввода многострочного текста вставляется HTML-код текста из текстового блока.
3. Если «Ок», то HTML-код применяется к тексту текстового блока и окно закрывается; статус проекта: «Не сохранен».
4. Если «Отмена», то окно закрывается без применения изменений. «Редактировать как Markdown»
Блок текста должен содержать кнопку, посредством которой можно редактировать текст в формате Markdown.
1. При выборе функции «Редактировать как Markdown» открывается окно с полем ввода многострочного текста и с двумя кнопками «Ок» и «Отмена».
2. В поле ввода многострочного текста вставляется Markdown-код, преобразованный из HTMLкода текста из текстового блока.
3. Если «Ок», то Markdown-код преобразуется в HTML-код, который применяется к тексту текстового блока и окно закрывается; статус проекта: «Не сохранен».
4. Если «Отмена», то окно закрывается без применения изменений.
13
Коваленко Л.А. ВКР на тему «Разработка конструктора нейронных сетей». Глубокая проверка на плагиат.
«Обновить вид» Блок текста должен содержать кнопку, посредством которой можно обновить его вид.
1.Принудительно подстраивает размеры изображений в тексте под размер блока.
2.Перерисовывает графический элемент.
«Удалить» Блок текста должен содержать кнопку, посредством которой можно его удалить.
1.Отображается окно подтверждения «Подтвердить удаление текстового блока?» с кнопками «Да» и «Нет».
2.Если «Да», то блок удаляется из списка блоков; статус проекта: «Не сохранен».
3.Если «Нет», то отмена действия.
«Вставить текст из буфера обмена как текст без форматирования» Является пунктом контекстного меню редактора текстового блока.
1.Если в буфере обмена есть текст, то он вставляется в текущую позицию; статус проекта: «Не сохранен».
2.Если в буфере обмена нет текста, то ничего не вставляется; статус проекта не меняется.
«Вставить текст из буфера обмена как HTML»
Является пунктом контекстного меню редактора текстового блока.
1.Если в буфере обмена есть текст, то он вставляется в текущую позицию как HTML-код; статус проекта: «Не сохранен».
2.Если в буфере обмена нет текста, то ничего не вставляется; статус проекта не меняется.
«Вставить текст из буфера обмена как Markdown»
Является пунктом контекстного меню редактора текстового блока.
1.Если в буфере обмена есть текст, то он вставляется в текущую позицию как Markdown-код; статус проекта: «Не сохранен».
2.Если в буфере обмена нет текста, то ничего не вставляется; статус проекта не меняется.
2.1.6 Функции настроек приложения Основные функции настроек приложения приведены в таблице 2.5.
Таблица 2.5 — Основные функции настроек приложения Функция Описание
«Шрифт заголовков» На форме должно быть 2 изменяемых поля ввода:
1.Название шрифта: выбор из списка шрифтов.
2.Размер шрифта: число, от 6 до 28.
Должна быть кнопка «Применить», применяющая изменения к заголовкам всех блоков всех проектов.
Должна быть кнопка «Отменить», отменяющая изменения. «Шрифт блоков текста» На форме должно быть 2 изменяемых поля ввода:
1.Название шрифта: выбор из списка шрифтов.
2.Размер шрифта: число, от 6 до 28.
Должна быть кнопка «Применить», применяющая изменения ко всем блокам текста всех проектов.
Должна быть кнопка «Отменить», отменяющая изменения. «Шрифт блоков кода» На форме должно быть 2 изменяемых поля ввода:
1.Название шрифта: выбор из списка шрифтов.
2.Размер шрифта: число, от 6 до 28.
Должна быть кнопка «Применить», применяющая изменения ко всем блокам кода всех проектов. Должна быть кнопка «Отменить», отменяющая изменения.
«Перечитать файл настроек»
Перечитывает файл настроек «settings.ini» из директории с приложением и обновляет внешний
14
Коваленко Л.А. ВКР на тему «Разработка конструктора нейронных сетей». Глубокая проверка на плагиат.
вид приложения со всеми элементами в соответствии с указанными настройками. Файл настроек «settings.ini» в директории приложения:
•Основные настройки: «MainWindow-Settings». o Ширина: число, от 100 до 2000.
o Высота: число, от 100 до 2000. o Стиль элементов: строка.
o На весь экран: булево («True» или «False»).
•Настройки шрифта: «Font-Settings».
o Название шрифта заголовков: строка.
o Размер шрифта заголовков: число, от 6 до 28. o Название шрифта текста: строка.
o Размер шрифта текста: число, от 6 до 28. o Название шрифта кода: строка.
o Размер шрифта кода: число, от 6 до 28. 2.1.7 Функции инструментов
Основные функции инструментов приведены в таблице 2.6. Таблица 2.6 — Основные функции инструментов Функция Описание «Выбор цвета»
1.Открывается системное диалоговое окно выбора цвета с кнопками «Ок» и «Отмена».
2.Если «Отмена», то отмена выбора.
3.Если «Ок», то выбранный цвет копируется в буфер обмена и отображается информационное сообщение «Параметры цвета скопированы в буфер обмена».
Формат копируемого текста:
# CMYK: (, , , )
# RGB: (, , )
# HSL: (, , )
# HSV: (, , )
«Выбор файлов»
1.Открывается системное диалоговое окно выбора нескольких файлов с кнопками «Открыть» и «Отмена».
2.Если «Отмена», то отмена выбора.
3.Если был выбран хотя бы один файл и нажата кнопка «Ок», то в буфер обмена копируется список выбранных файлов для использования его в коде на Python, а затем отображается информационное сообщение «Список выбранных файлов скопирован в буфер обмена». Формат копируемого текста:
[
r"",
r"",
r"",
]
2.1.8 Функции списка разделов Основные функции списка разделов приведены в таблице 2.7.
Таблица 2.7 — Основные функции списка разделов Функция Описание «Добавить раздел»
Является пунктом контекстного меню списка разделов, контекстного меню раздела и контекстного меню шаблона.
1. Отображается окно ввода названия раздела «Введите название раздела (тип шаблона)» с
15
| 14 |
| 1511 |
| 2N4264RE |
| 3773 |
| 3901 |
| 4 Врожд ВГ. Фульмин |
| 4 ПРАКТИКА |
| 4 работа |
| 49 |
| 4лаба (с данными) |