Составление, ведение и редактирование расписания – необходимый аспект деятельности любого дворца культуры. В связи с всеобщей компьютеризацией в наш век высоких технологий, возникает возможность значительно упростить и систематизировать данный процесс. Действительно, составление расписания с помощью компьютера в специальной программе позволит отказаться от бумажных блокнотов, рутинного ручного труда и исправления ошибок карандашом прямо на готовом расписании.
Во Всемирной сети Интернет можно найти программы для ведения учета дел, организации работы персонала и планирования мероприятий учреждения. Самые распространенные из них – Персональный Деловой Органайзер, Task Coach, WireNote, Штатное Расписание и т.д. Также для подобных целей многие используют офисные пакеты, такие как Microsoft Office или Open Office.
Все перечисленные продукты очень удобны, но имеют ограниченный функционал и не заточены под конкретного потребителя.
На фоне остальных решений, офисные пакеты отличаются своей гибкостью и возможностью реализовать свои потребности любому, даже самому требовательному потребителю. Для составления расписания можно воспользоваться офисным пакетом и создать таблицу с самыми разнообразными параметрами. Современные редакторы позволяют даже задать отдельный цвет фона для каждой ячейки.
Однако красота оформления не является главным параметром при составлении плана мероприятий дворца культуры.
Основная проблема, с которой сталкивается художественный руководитель дворца при планировании – это всевозможные накладки: ситуации, когда два и более кружка оказываются поставленными в одно и то же время в одну аудиторию. На самом деле, довольно сложно распределить все мероприятия так, чтобы в данное время и руководителю было удобно, и аудитория была свободна.
Для выбора способа решения обозначенных проблем, рассмотрим несколько путей.
Первый – написание макроса для Microsoft Excel (рис. 1). При введении времени проведения кружка в данной аудитории, макрос ищет строки с другими кружками, использующими ту же аудиторию, и сравнивает содержимое ячеек, содержащих время, на предмет пересечений.
Рисунок 1. Написание макроса в MS Office Excel
Если время проведения различных кружков в одной аудитории пересекается, пользователю выводится сообщение о накладке. Данный алгоритм близок к требуемому, однако сам метод решения задачи не подходит по ряду причин.
Основная причина: Office Excel – платный продукт, и для его использования в коммерческих целях, необходимо покупать лицензионную версию. Помимо того, способ написания и выполнения макросов для таблиц не позволяет правильно реализовать работу алгоритма. Учитывая вышеперечисленное, данный путь решения задачи отбрасывается.
Еще один вариант реализации – написание программы в среде программирования Microsoft Visual Studio, используя язык C# (рис. 2). Из преимуществ использования данного метода – удобство при работе с таблицами, используя C#. Из недостатков – сложность реализации необходимого алгоритма и платность полной версии среды разработки. Исходя из этого, данный вариант также отбрасывается.
Рисунок 2. Microsoft Visual Studio
Наконец, в качестве способа реализации программы рассмотрим написание продукта с нуля, используя и язык программирования С++.
Перед началом любой разработки встает проблема выбора подходящей среды. Обычно выбирают тот комплекс и те языки программирования, которые хорошо знают члены коллектива разработчиков. Выбирать новую технологию, которую предстоит осваивать в процессе разработки – риск провалить проект.
Среда разработки программного обеспечения – система программных средств, используемая программистами для разработки программных продуктов различной спецификации [1].
Существует следующая классификация свободно распространяемых сред разработки ПО [2].
-
Среды разработки веб-систем и приложений (AJAX.OOP, MooTools Code::Blocks, Codelobster PHP Edition, Geany, Ultimate++, Symfony).
Geany – это легкий кроссплатформенный GTK + текстовый редактор на основе Scintilla, который является, в том числе, интегрированной средой разработки программ (рис. 3).
Рисунок 3. Geany
Ultimate++ – кроссплатформенная среда разработки, направленная на разработку настольных приложений с использованием языка C++ (рис. 4).
Рисунок 4. Ultimate++
Symfony – открытый PHP-фреймворк, реализующий концепцию «модель-представление-контроллер» (рис. 5). Автоматизирует общие веб-задачи и представляет собой широкую пользовательскую систему связанных классов, предназначенную для разработки и управления веб-приложениями.
Рисунок 5. Symfony Profiler
-
Среды, направленные на детскую аудиторию (Algo, Alice, EToys, Scratch, Squeak). Основной целью их использования является поощрение детей изучать программирование.
Algo – это интерпретатор языка Pascal, который может изучаться в старших классах общеобразовательных средних школ. С помощью программного средства Alice, путем применения методов drag-and-drop, создаются несложные анимационные объекты с использованием готовых или дополнительно интегрированных в среду 3D-моделей.
-
Среды с поддержкой одного языка программирования (Lazarus, PyScripter, DrPython, Wing IDE).
Lazarus — свободная среда разработки ПО, имеющая открытый исходный код. Среда построена на компиляторе Free Pascal с добавлением Интегрированной Среды Разработки (IDE). Это многоцелевой инструмент программирования, позволяющий создавать программы различных типов.
-
Среды с поддержкой нескольких языков программирования (CodeLite, Dev-C++, Anjuta, Eric, Eclipse, HiAsm, Kylix, MonoDevelop, NetBeans, SharpDevelop, Xcode).
CodeLite IDE – это кроссплатформенная интегрированная среда для разработки приложений на языках C/C++ (рис. 6).
Рисунок 6. CodeLite IDE
Dev-C++ – это среда разработки на языках С и С++, работающая на операционных системах семейства Windows. Среда Dev-C++ распространяется свободно с исходными кодами (на Delphi) по лицензии GPL (рисунок 7). Среди достоинств следует выделить графический интерфейс, русскоязычное меню, наличие встроенного отладчика GDB, а также возможность создавать консольные и графические программы [3].
Рисунок 7. Dev-C++
Anjuta – свободная кроссплатформенная среда разработки программ на языке С/С++, ориентированная на проект GNOME (рис. 8). Входит в стандартный набор программ многих популярных дистрибутивов Linux, таких как Ubuntu, openSuse, Fedora, Mandriva и др.
Рисунок 8. Среда разработки с ласковым названием Anjuta
NetBeans IDE – среда разработки, предназначенная для создания программ на языках программирования Java, JavaFX, C/C++, PHP, JavaScript, Python, Groovy (рис. 9).
Рисунок 9. Инструмент NetBeans
SharpDevelop – средство разработки ПО, задуманное в качестве свободной легкой альтернативы Microsoft Visual Studio, содержащее эквивалентные функции для почти всех присущих Visual Studio Express функций, включая функции управления проектом, редактирование кода, применение компиляции и отладки (рис. 10).
Рисунок 10. SharpDevelop
Xcode – среда, включающая, помимо всего прочего, приложение Interface Builder, используемое при создании графических интерфейсов (рис. 11).
Рисунок 11. Xcode
Aptana Studio – кроссплатформенная IDE. Для открытого кода Cappuccino специально создан язык Objective-J. Система EventMachine представляет собой программный комплекс, предназначенный для написания широко масштабируемых приложений для Ruby (рис. 12).
Рисунок 12. Aptana Studio
Qt Creator (ранее известная под кодовым названием Greenhouse) — кроссплатформенная свободная IDE для разработки на языках программирования С, С++ и QML (представлена на рисунке 13). Разработана компанией Trolltech (Digia) для работы с фреймворком Qt.
Включает в себя графический интерфейс отладчика и визуальные средства разработки интерфейса как с использованием QtWidgets, так и QML. В версии 5 появилась возможность интеграции Android SDK и Java SDK для портирования приложений на платформу Android. Поддерживаемые компиляторы: GCC, MinGW, MSVC, Linux ICC, GCCE, RVCT, WINSCW [4].
Рисунок 13. Qt Creator
Среда разработки Qt Creator является наиболее подходящим вариантом для разработки автоматизированной системы планирования проведения мероприятий дворца культуры. Исходя из этого, необходимо подробнее ознакомиться с ее функциональными возможностями.
В наше время уже трудно представить приложение, не имеющее графического интерфейса. Это – лицо программы и основной инструмент взаимодействия пользователя с ней. Поэтому разработка пользовательского интерфейса – один из важнейших аспектов создания программы.
Для написания программного продукта с графическим интерфейсом существует множество сред разработки, одна из которых – Qt Creator.
Qt Creator имеет множество преимуществ. Главное из них – наличие бесплатной версии среды, содержащей, однако, все необходимые инструменты и функциональные возможности для решения поставленной задачи.
Qt Creator имеет тройное лицензирование:
-
Qt Commercial – коммерческая лицензия, после приобретения которой вы можете выпускать программный продукт под собственной лицензией.
-
GNU GPL – вариант для разработчиков, выпускающих бесплатные программы с открытым исходным кодом.
-
GNU LGPL – позволяет вести разработку под собственной лицензией, однако вы не можете вносить изменения в код Qt.
Таким образом, даже используя бесплатную версию, можно создать программный продукт, отвечающий требованиям поставленной задачи и не нарушающий лицензионного соглашения.
Еще одна особенность выбранной среды разработки – сигнал-слотовый подход: быстрое и удобное связывание элементов пользовательского интерфейса с выполняемыми ими функциями позволяет сделать основной алгоритм более надежным, а также добавить множество функций, упрощающих работу с программой.
Нельзя не отметить также возможность упрощенного создания пользовательского интерфейса, что позволяет сосредоточиться на написании основного алгоритма программы (представлено на рисунке 14).
Рисунок 14. Разработка интерфейса с помощью инструмента Qt Designer
Помимо этого, следует отметить также мультиплатформенность создаваемых приложений: Windows, Linux, Mac OS X (как консольные, так и с оконным графическим интерфейсом). Однако разработчики Qt на этом не остановились. В последние несколько лет была добавлена возможность портировать приложения Qt на мобильные платформы: Symbian, Maemo, MeeGo. Относительно недавно появились первые инструменты для портирования на платформу Android. Имеются сведения об удачном опыте в этой области.
Среда разработки Qt Creator основана на использовании библиотеки Qt, разработанной финской компанией Trolltech. Нынче она принадлежит корпорации Nokia. Qt реализована на языке программирования C++, и потому пользуется большой популярностью у программистов, пишущих именно на этом языке.
Также возможности C++ в Qt были значительно расширены с помощью макросов и MOC (Meta Object Compiler) путем добавления добавлены сигнал/слотов и возможности использовать в собственных классах свойства. Однако, помимо использования C++, для Python, Ruby, Php и Perl также реализованы интерфейсы взаимодействия, используемые для построения графического интерфейса пользователя.
Следует отметить такую особенность библиотеки Qt: для ее использования недостаточно знать лишь С++ – необходимо изучить множество базовых функций, отличающихся по реализации от оригинального С++ [5].
Изучив функциональные особенности среды разработки Qt Creator и используемой ею библиотеки Qt, можно сделать вывод, что данные инструменты разработчика полностью удовлетворяют требованиям к решению поставленной задачи.
Библиографический список
- Среда разработки программного обеспечения [Электронный ресурс] / Академик.ру. URL: http://dic.academic.ru/dic.nsf/ruwiki/6703. (Дата обращения 13.10.2015)
- Слуцкая, Я.И. Свободно распространяемые ресурсы для разработки программ. Научные исследования Каменец-Подольского национального университета имени Ивана Огиенко. Физико-математические науки [Текст] : Выпуск 10 / Я.И. Слуцкая, О.А. Семилуки. – Каменец-Подольский, 2013. – 265 с.
- Dev-C++ – оболочка для программирования в Windows [Электронный ресурс] / Преподавание, наука и жизнь: сайт Константина Полякова. URL: http://kpolyakov.spb.ru/school/c/devcpp.htm. (Дата обращения 12.10.2015)
- Qt Creator [Электронный ресурс] / Википедия. URL: https://ru.wikipedia.org/wiki/Qt_Creator#cite_note-3. (Дата обращения 23.01.2016)
- Библиотека Qt [Электронный ресурс]. URL: http://qt-doc.ru/. (Дата обращения 15.12.2015)