ПЗ (1191596), страница 4
Текст из файла (страница 4)
Каталог Git'а – это место, где Git хранит метаданные и базу данных объектов вашего проекта. Это наиболее важная часть Git'а, и именно она копируется, когда вы клонируете репозиторий с другого компьютера.
Рабочий каталог – это извлечённая из базы копия определённой версии проекта. Эти файлы достаются из сжатой базы данных в каталоге Git'а и помещаются на диск с целью их просматривания и редактирования.
Область подготовленных файлов – это обычный файл, обычно хранящийся в каталоге Git'а, который содержит информацию о том, что должно войти в следующий коммит. Иногда его называют индексом (index), но в последнее время становится стандартом называть его областью подготовленных файлов (staging area).
Стандартный рабочий процесс с использованием Git'а:
– вносятся изменения в файлы в рабочем каталоге пользователя.
– подготавливаются файлы, добавляя их слепки в область подготовленных файлов.
– пишется коммит, который берёт подготовленные файлы из индекса и помещает их в каталог Git'а на постоянное хранение.
– если рабочая версия файла совпадает с версией в каталоге Git'а, файл считается зафиксированным. Если файл изменён, но добавлен в область подготовленных данных, он считается подготовленным. Если же файл изменился после выгрузки из БД, но не был подготовлен, то он считается изменённым.
3.2 Qt creator
Qt является кроссплатформенной средой разработки, есть реализации библиотеки для MS/Windows, Unix/X11 (Linux, Sun Solaris, HP-UX, Digital Unix, IBM AIX, SGI IRIX и пр.), Macintosh ( Mac OS X ) и Embedded платформ. Библиотека является объектно-ориентированной, базирующейся на компонентах и имеет богатое разнообразие различных визуальных элементов - виджетов (widgets), предоставляемых в распоряжение программиста. Qt распространяется в двух ипостасях - коммерческая реализация (имеются 'Qt Professional' и 'Qt Enterprise Editions' версии) и некоммерческая реализация, доступная для свободного скачивания. Библиотека включает в себя:
– среду для разработки графического интерфейса;
– компилятор мета-объектов;
– набор классов для работы.
Библиотека Qt часто используется в системе Linux, она, благодаря распространению графической оболочки KDE, стала де-факто стандартом проектирования программного обеспечения на этой платформе. К сожалению, для разработчиков Windows-приложений библиотека Qt долгое время не выходила на передний план, поскольку для Windows существовали более доступные и удобные средства быстрой разработки программ.
Преимущества модуля Qt заключается в том, в пятой версии её адаптируют для работы с Microsoft и Borland/Inprise. Во-вторых, самой Borland пришлось обратиться к Qt, когда встал вопрос о разработке межплатформенных программ. Набор универсальных компонентов CLX в Delphi/Kylix представляет собой всего лишь оболочку, позволяющую языку Object Pascal работать с определёнными на C++ классами Qt. В-третьих, версия Qt для Windows, наконец-то, стала свободной, а не только коммерческой, как это было раньше.
Рисунок 10 – Схема сборки приложения, реализованного вручную
Формы с использованием классов Qt могут создаваться вручную или с использованием специального пакета QtDesigner. При создании форм вручную программист кодирует текст программы, включая по мере необходимости вызовы объектов классов Qt. При использовании QtDesigner программист графически компонует внешний вид и связи сигналов и слотов формы, а компилятор интерфейса UIC формирует из полученного описания формы код на языке C++, обеспечивающий создание этой формы.Qt расширяет синтаксис описания классов C++ специальными средствами, обработка которых возложена на MOC. MOC обрабатывает исходный текст программы, подставляя вместо специфических конструкций реализацию заказанных свойств на С++. Соответственно на выходе MOC получается исходный код С++.
Компиляция и сборка программы осуществляется компилятором C++ и компоновщиком, доступными в рамках платформы, где осуществляется
К таким средствам в частности относятся сигналы и слоты, поддержка которых для конкретного диалога также генерируется автоматически в коде отдельной программы C++.
3.2.1 Сигналы и слоты
Рисунок 11 – Схема связывания сигналов и слотов объектов
Ключевым механизмом взаимодействия объектов в Qt являются сигналы и слоты. Каждый объект, интегрированный в систему управления Qt, т.е. описанный как Q_OBJECT, может иметь типизированные слоты, обеспечивающие прием и обработку типизированных сигналов от других объектов, и собственные сигналы, прием которых могут осуществлять другие объекты. Связь между сигналами и слотами конкретных объектов устанавливается посредством функции connect(…) (рисунок 13).Декларация сигналов и слотов осуществляется в теле класса с помощью ключевых слов signals и slots, воспринимаемых компилятором moc. Если необходимо предотвратить использование указанных ключевых слов, встречающихся в других библиотеках, то вместо них используют ключевые слова Q_SIGNALS, Q_SLOTS.
По правилам Qt один слот может принимать несколько сигналов, а один сигнал транслироваться на несколько слотов. Причем во взаимодействии участвуют не классы, а конкретные объекты, поэтому схема передачи сигналов к слотам может быть в любой момент динамически изменена.
Следует отметить, что механизм слотов не исключает возможности использования средств наследования и полиморфизма языка C++, так что любой класс Qt может быть переопределен.
3.2.2 Использование QtDesigner
Рисунок 12 – Схема сборки приложения с формами, сделанными в QtDesigner
При необходимости быстрого получения результата, проведения экспериментов по размещению объектов, общей оценки интерфейса возможно использование специального редактора интерфейсов QtDesigner. QtDesigner не накладывает никаких ограничений на средства разработки, поскольку интерфейс, созданный им, в конечном счете будет преобразован компилятором uic в код программы на языке C++, обеспечивающий создание именно этого интерфейса (рисунок 14).
Это позволяет также использовать QtDesigner для обучения принципам программирования Qt и размещения элементов в форме, т.к. результирующий код является доступным и использует те же классы Qt, которые необходимы при ручной разработке.
При использовании QtDesigner описание поведения, т.е. слотов, осуществляется программистом в отдельном файле. В Qt3.x такой файл имеет суффикс .ui.h, а в Qt4.x – .h. Сформированный QtDesigner файл .ui представляет собой XML-описание диалога.
По созданному .ui – описанию user interface compiler (uic) генерирует код программы на языке C++, где создание диалога осуществляется классами Qt. В Qt3.x формируется класс–потомок QWidget, в Qt4.x формируется самостоятельный код, обеспечивающий создание формы по вызову метода setupUi().
Диалоги, созданные в QtDesigner также могут подключаться в программу динамически посредством класса QFormBuilder или QWidgetFactory::create ("form.ui") в Qt3.x без необходимости генерации и компиляции кода их создания на С++.
3.2.3 Система документации
Библиотека Qt снабжена системой документации QtAssistant, реализованной единообразно для всех платформ, на которых возможна разработка с использованием этой библиотеки. Внешний вид приложения QtAssistant представлен на рисунке 15.
Рисунок 13 – Справочная документация – приложение QtAssistant
Для ОС Windows исполняемый файл системы документации имеет имя assistant.exe, по которому его можно запустить из консоли «Qt Command Prompt». QtAssistant предоставляет возможность навигации по разделам, по индексному указателю, а также нахождения необходимой фразы, в том числе включающей имена классов и/или методов, по контексту во всех статьях документации. Документация предоставляет несколько вариантов группировки классов и функций библиотеки, что позволяет быстро найти классы для работы, например, с сигналами и слотами, с графикой, классы контейнеры и пр.Поскольку Qt поставляется в виде исходных тестов, в качестве примеров разработки могут быть использованы как эти исходные тексты, так и многочисленные примеры, входящие в комплект поставки Qt. Исходные тексты располагаются в директории
…\Qt\4.x.x\src. Примеры располагаются в директориях …\Qt\4.x.x\examples и …\Qt\4.x.x\demos. В комплекте Qt SDK префикс имени директории…\Qt\4.x.x меняется на …\Qt\20xx.xx\qt\..
3.3 Описание программного модуля
Программа структурирована на пять блоков:
1) блок ввода исходных данных: осуществляется ввод исходных данных в диалоговом режиме;
2) блок проверки заданного сечения по условию прочности по нормальным напряжениям;
3) блок проверки заданного сечения по условию прочности по касательным напряжениям;
4) блок проверки жёсткости пролётного строения;
5) блок вывода результатов расчёта на печать.
Рисунок 17 – Главное окно программы
Рисунок 16 – Ярлык
программного модуля
Программа запускается при нажатии на ярлык (рисунок 16).Главное окно модуля (рисунок 17) содержит функциональную кнопку «Файл», поля для ввода исходных данных, поля для выбора типов конструкции, поле вывода результата, функциональные кнопки «Рассчитать» и «Сохранить в файл».
Рисунок 19 – Параметризация поля
Рисунок 18 – Расположения компановщика
Модуль отражает два основных вида восстановления мостовых конструкций: из древесины и железобетонное. Для перехода между типами опор достаточно выбрать вкладку «Железобетонное» / «Древесное».Для расположения полей были настроены специальные компановщики на форме (рисунок 18), а также наложены ограничения на максимальный размер (рисунок 19).
Ввод исходных данных осуществляется двумя способами:
– вводом значения в соответствующее поле (рисунок 20);
–выбором значения из предложенных (рисунок 21);
Рисунок 20 – Поле с вводом данных
–переключением счётчика (рисунок 22).
Ширина колеи, как показано на рисунке 21 выбирается из двух вариантов, стандартных для восстановлений подобного рода.
Рисунок 22 –Ввод исходных данных при помощи счётчика
Рисунок 21 – Выбор исходных данных
Подобные виджеты являются стандартными для среды Qt creator и находятся в списке предложенных (рисунок 23).
Поле в самом низу рабочего окна является полем вывода (рисунок 24), в нем отображаются результаты расчётов. Сам объект представляет собой textEdit.
Рисунок 23 – Список виджетов
После нажатия на кнопку «Рассчитать» выполняется главная часть программы: сбор входных данных, вычисление коэффициентов прочности и жёсткости материалов, расчёт опор и вывод результата. Эти функции представлены в блок-схеме в приложении А, часть с расчётом приведена ниже, на рисунках 25, 26.















