Проекты*

Программа для автоматизации работы с интерфейсом персонального компьютера

Работа призёра открытой городской научно-практической конференции «Инженеры будущего» в секции «Информационные технологии, программирование, прикладная математика, социальный инжиниринг» среди работ учащихся 10–11 классов

Направление работы: Программирование
Авторы работы: ГБОУ Школа имени Маяковского
Предметы: Информатика
Классы: 10 класс
Мероприятия: Открытая городская научно-практическая конференция «Инженеры будущего» 2020 года

Актуальность

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

Цель

Разработать программу, эмулирующую по сценарию пользователя движения курсора и ввода клавиатуры.

Задачи

  1. Изучить возможности существующих программ.
  2. Продумать объектно-ориентированную архитектуру программы с учётом выявленных недостатков и достоинств.
  3. Составить схему на языке моделирования UML.
  4. Описать каждый объект на языке программирования Python 3.
  5. Написать программу, используя описанные объекты.

Оснащение и оборудование, использованное при создании работы

  • Язык программирования Python
  • Библиотеки tkinter, pyautogui, pillow
  • Среда разработки – программа PyCharm
  • Облачное хранилище – сайт GitHub.

Описание

Программа будет представлять собой окно, в котором будет работать пользователь.

Метод объектно-ориентированного программирования подразумевает описание объектов программы.

Объявим класс MainWindow, в поле которого указаны размеры, заголовок и прочие параметры окна, а также переменную, содержащую объект класса Tk для его отображения. Для реализации расположения виджетов из библиотеки tkinter использован метод конфигурации grid, который позволяет располагать виджеты в виде сетки, указывая строку и столбец каждого виджета. Для хранения виджетов использован двухмерный массив. Также массивы предназначены для хранения строк (Rows), там будут храниться виджеты tkinter. В них работает пользователь, и с них мы будем считывать данные, введённые им. В окне должны быть реализованы кнопка добавления новой строки, виджет для переключения страниц, поскольку все строки на экран могут не поместиться, и кнопка сохранения файла.

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

Первым элементом в Row будет выпадающий список, из которого пользователь будет выбирать категорию команды. Для удобной реализации создан класс Chooser, который наследует свойства класса ttk.Combobox, но при его создании он сразу будет программировать себя на выполнение команд после выбора пользователем варианта из выпадающего списка.

На рисунке можно видеть, что окно будет иметь n+1 Rows, где n – количество аргументов команды. В правом нижнем углу указаны координаты расположения мыши на экране, которые обновляются при наведении мыши на них. Это сделано для того, чтобы пользователь смог сориентироваться, где в данный момент находится его курсор.

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

Результаты работы/выводы

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

Перспективы использования результатов работы

Автоматизация решений различных задач при использовании ПК.

Сотрудничество с вузом/учреждением при создании работы

ТОЦ «SAMSUNG»

Награды/достижения

Городской фестиваль «Наука. Образование. Производство». Секция «Юные техники и изобретатели» – победитель.

Мнение автора

«Считаю, что работа выполнена успешно.

Проект «Инженерный класс в московской школе» мне очень помогает в проектной деятельности и даёт возможность получать более глубокие знания по техническим предметам.

Считаю, что конференция «Инженеры будущего» даёт возможность продемонстрировать свою работу и поучиться у сверстников»