Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Описание выбранных средств разработки




1.2.1. C++ (язык программирования)

При разработке данного курсового проекта был использован язык С++. Данный язык поддерживает такие парадигмы программирования как процедурное программирование, объектно-ориентированное программирование, обобщенное программирование, обеспечивает модульность, раздельную компиляцию, обработку исключений, абстракцию данных, объявление типов (классов) объектов, виртуальные функции. Стандартная библиотека включает, в том числе, общеупотребительные контейнеры и алгоритмы. C++ сочетает свойства как высокоуровневых, так и низкоуровневых языков. В сравнении с его предшественником — языком C, — наибольшее внимание уделено поддержке объектно-ориентированного и обобщённого программирования.

Синтаксис C++ унаследован от языка C. Одним из принципов разработки было сохранение совместимости с C. Тем не менее, C++ не является в строгом смысле надмножеством C; множество программ, которые могут одинаково успешно транслироваться как компиляторами C, так и компиляторами C++, довольно велико, но не включает все возможные программы на C.

Ключевым понятием в С++ является класс. Класс – это пользовательский тип. Классы обеспечивают сокрытие данных с помощью модификаторов областей видимости, их инициализацию, неявное преобразование пользовательских типов, динамическое задание типов, контролируемое пользователем управление памятью и средства для перегрузки операций. В языке С++ концепции контроля типов и модульного построения программ реализованы более полно, чем в С. Кроме того, С++ содержит усовершенствования, не связанные напрямую с классами: символические константы, функции-подстановки, стандартные значения параметров функций, перегрузка имен функций, операции управления свободной памятью и ссылочный тип.

Фреймворк Qt

Qt [1] – это мощный кроссплатформенный фреймворк, включающий нативные C++ библиотеки, декларативный язык для создания пользовательского интерфейса и инструменты, позволяющие разработчикам создавать прикладное программное обеспечение с использованием единого кода для всех значимых на сегодняшний день десктопных, встраиваемых и мобильных платформ, а также для устройств с операционными системами реального времени (RTOS). Qt позволяет ускорить процесс создания приложения, повысить его эффективность.

В большей степени Qt [1] используется для разработки приложений на С++, но так же может работать с такими языками, как Python, Ruby, Java, PHP и другими.

Отличительная особенность Qt от других библиотек — использование Meta Object Compiler (MOC) — предварительной системы обработки исходного кода (в общем-то, Qt — это библиотека не для чистого C++, а для его особого наречия, с которого и «переводит» MOC для последующей компиляции любым стандартным C++ компилятором). MOC позволяет во много раз увеличить мощь библиотек, вводя такие понятия, как слоты и сигналы. Кроме того, это позволяет сделать код более лаконичным. Утилита MOC ищет в заголовочных файлах на C++ описания классов, содержащие макрос Q_OBJECT, и создаёт дополнительный исходный файл на C++, содержащий метаобъектный код.

Механизм сигналов и слотов полностью замещает модель функций обратного вызова, он очень гибок и полностью объектно-ориентирован.

Сигналы и слоты могут быть соединены друг с другом, причем сигнал может быть соединен с большим количеством слотов. Слот, в свою очередь, тоже может быть соединен со многими сигналами. В случае когда слот не делает ничего, кроме отправки полученного сигнала дальше, то можно вообще обойтись без него, а просто соединить сигналы друг с другом. Методы сигналов должны быть обозначены в определении классы специальным словом signals, а слоты – slots. При этом слоты являются обыкновенными методами языка С++ и в их определении могут присутствовать модификаторы public, protected, private. Реализацию кода для сигналов берет на себя МОС. Отправка сигнала производится при помощи ключевого слова emit. Класс, содержащий сигналы и слоты, должен быть унаследован от класса QObject или от класса, унаследованного от этого класса. Сигнально-слотовые соединения всегда можно удалить (отсоединить), воспользовавшись методом disconnect(), но это нужно крайне редко, т.к. при удалении объекта автоматически уничтожаются все его соединения.

QObject – класс, по сути являющийся основным классом при программировании с использованием Qt. Конструктор класса QObject имеет два параметра: первый используется для создания объектных иерархий, а второй – для присвоения объекту имени.

Свойства объектов важны, т.к. позволяют получать информацию о классе и об объекте в процессе исполнения программы. Все объекты класса QObject или унаследованные от него классы должны создаваться динамически оператором new, а об освобождении памяти созданной объектной иерархии программист может не беспокоиться.

1.2.3. Qt Creator – интегрированная среда разработки

Qt Creator [2] - кроссплатформеннаясвободнаяIDE для разработки на С, С++ и QML. Разработана Trolltech (Digia) для работы с фреймворком Qt. Включает в себя графический интерфейс отладчика и визуальные средства разработки интерфейса как с использованием QtWidgets, так и QML.

Qt Creator поддерживает проекты систем qmake и cmake, начиная с версии 2.5 поддерживатеся autotools. Для проектов, созданных под другими системами, может использоваться в качестве редактора исходных кодов. Есть возможность редактирования этапов сборки проекта. Также IDE нативно поддерживает системы контроля версии, такие как Subversion, Mercurial, Git, CVS, Bazaar, Perforce. Начиная с версии 2.5, в поле комментария к правке поддерживается автодополнение.

Реализован ряд возможностей при работе с сигнатурами методов, а именно:

­ автогенерация пустого тела метода после его обновления;

­ возможность автоматически изменить сигнатуру метода в определении, если она была изменена в объявлении и наоборот;

­ возможность автоматически поменять порядок следования аргументов.

Среда разработки имеет графический интерфейс для следующих отладчиков: GDB, CDB и QML/JavaScript. В качестве отдельной опции реализовано отображение содержимого контейнеров, таких как QString, std::map и прочих. Поддерживаются следующие режимы отладки:

­ простой для отладки локально запущенных приложений, таких как GUI приложения на Qt;

­ терминал для отладки локально запущенных процессов, которым требуется консоль, обычно это приложения QTWidgets;

­ подключённый для отладки локальных процессов, запущенных вне Qt Creator;

­ удалённый для отладки запущенных на другой машине процессов (используя gdbserver);

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

1.2.4. Сmath – стандартная библиотека C и С++ для использования математических функций и операций

C++ реализует выполнение простых математических операций и большинство функций, все они содержатся в заголовочном файле cmath [5].

Все эти функции принимают double, если не определено иначе. Для работы с типами float и long double используются функции с постфиксами f и l соответственно. Все функции, принимающие или возвращающие угол, работают с радианами.

1.2.5. Qwt – дополнительная библиотека для построения графиков

Qwt или Qt Widgets for Technical Applications [4] — набор Qt-виджетов и вспомогательных классов, необходимых для создания графического представления числовых данных. Помимо виджета для двумерного отображения данных (QwtPlot) он включает в себя классы для отображения данных в разных масштабах осей, различные стили отображения кривых и маркеров на виджете QwtPlot, а также некоторые другие вспомогательные виджеты.






Поделиться с друзьями:


Дата добавления: 2016-12-03; Мы поможем в написании ваших работ!; просмотров: 430 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Не будет большим злом, если студент впадет в заблуждение; если же ошибаются великие умы, мир дорого оплачивает их ошибки. © Никола Тесла
==> читать все изречения...

2602 - | 2280 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.007 с.