Введение
1 Среда разработки программного средства
1.1 Qt
1.2 C++ – универсальный язык программирования
1.3 Установка Qt Creator
2 Разработка графического интерфейса программного средства
2.1 Понятие графического пользовательского интерфейса
2.2 Qt Designer
2.3 Разработка графического интерфейса приложения
3 Разработка программного средства
3.1 UML-диаграммы классов
3.2 Структурирование программы
3.3 Алгоритм работы программы
3.4 Механизм сигналов и слотов в реализации программы
Заключение
Список используемых источников
Введение Объектно-ориентированное программирование – технология создания и использования новых типов объектов, наследующих некоторые черты ранее созданных типов объектов (объект может включать в любом сочетании данные, функции и определения типов). Определяемые пользователем типы объектов в языке С++ называют классами.
Технология объектно-ориентированного программирования явилась результатом эволюции методов программирования в направлении ярко выраженного конструктивного использования принципов структуризации, модульности и абстракции [1].
Ключевые понятия объектно-ориентированного программирования:
– инкапсуляция (encapsulation) – связывание в единое целое объектов некоторых существующих типов и функций доступа к ним с целью определения объектов нового типа;
– наследование (inheritance) – использование элементов данных, функций и собственных типов ранее определенных объектов при образовании иерархии производных объектов;
– полиморфизм (polymorphizm) – возможность ассоциации некоторого имени с множеством уникальных для каждого уровня иерархии производных объектов понятий.
Целью курсового проекта является разработка программного средства с использованием методологии ООП.
Задачи курсового проекта:
1. Разработать графический интерфейс программного средства.
2. Разработать UML-диаграмму классов.
3. Создать класс с указанными двумя полями и тремя методами:
– конструктор для инициализации объекта;
– метод формирования строки с информацией об объекте;
– метод обработки значений полей.
4. Разработать блок-схему алгоритма.
5. Создать дочерний класс с дополнительным полем и реализовать в дочернем классе методы:
– конструктор;
– метод обработки данных.
[...]
1 Среда разработки программного средства
1.1 Qt Qt – фреймворк для разработки кроссплатформенного программного обеспечения на языке программирования C++. Qt позволяет запускать написанное с его помощью программное обеспечение в большинстве современных операционных систем путtм простой компиляции программы для каждой системы без изменения исходного кода. Включает в себя все основные классы, которые могут потребоваться при разработке прикладного программного обеспечения, начиная от элементов графического интерфейса и заканчивая классами для работы с сетью, базами данных. Является полностью объектно-ориентированным, расширяемым и поддерживающим технику компонентного программирования.
Qt используется разработчиками для создания приложений с графическим интерфейсом. Qt обладает множеством возможностей и широко поддерживается сообществом разработчиков [2].
Библиотека QT предназначена для разработки GUI, разработанная компанией Trolltech AS [3]. Qt была представлена в 1996 году, с тех пор, с помощью этой библиотеки было создано большое количество разнообразных приложений с графическим пользовательским интерфейсом.
Qt распространяется в двух ипостасях - коммерческая реализация (имеются Qt Professional и Qt Enterprise Editions версии) и некоммерческая реализация, доступная для свободного скачивания.
Библиотека Qt состоит из различных модулей, которые подключаются при помощи директивы #include [4]. В состав входят:
1. QtCore – классы ядра библиотеки Qt, они используются другими модулями.
2. QtGui – модуль содержит компоненты графического интерфейса.
3. QtNetwork – модуль содержит классы для работы с сетью. В него входят классы для работы с протоколами FTP, HTPP, IP и другими.
4. QtOpenGL – модуль содержит классы для работы с OpenGL
5. QtSql – содержит классы для работы с различными базами данных с использованием языка SQL.
6. QtSvg – содержит классы, позволяющие работать с данными Scalable Vector Graphics (SVG)
7. QtXml – классы для работы с XML
8. QtScript – классы для работы с Qt Scripts
Имеются и другие модули.
[...]
2 Разработка графического интерфейса программного средства
2.1 Понятие графического пользовательского интерфейсаGUI – это сокращение от английского термина Graphical User Interface, что в переводе на русский язык означает «графический пользовательский интерфейс» [8].
Он представляет собой способ взаимодействия пользователей с компьютерной программой или системой с помощью графических элементов, таких как кнопки, меню, текстовые поля и другие объекты.
GUI сделал использование компьютеров более доступным для пользователей, не обладающих техническими навыками. Вместо того чтобы использовать командную строку или писать код, пользователи могут выполнять задачи, щелкая по элементам интерфейса с помощью мыши или сенсорного экрана.
GUI – это важный аспект дизайна программного обеспечения. Хорошо спроектированный GUI должен быть интуитивным и удобным для использования, чтобы пользователи могли легко найти нужные функции и выполнять свои задачи без лишних усилий и необходимости обращаться к документации или специалистам за помощью.
GUI представляет собой способ взаимодействия человека с компьютерной программой или операционной системой с помощью графических элементов.
Основные элементы GUI включают в себя:
1. Окна: области экрана, в которых отображается программа или приложение.
2. Меню: списки команд или функций, которые пользователь может выбирать.
3. Кнопки: графические элементы, которые пользователь может нажимать для выполнения определенных действий.
4. Формы: поля для ввода данных или выбора опций.
5. Иконки: маленькие графические изображения, представляющие приложения, файлы или функции.
Пример простого графического интерфейса пользователя (GUI) может быть представлен в виде приложения для редактирования текста. Вот некоторые основные элементы, которые могут быть включены в GUI такого приложения:
Меню: верхняя строка с различными пунктами меню, такими как «Файл», «Редактировать», «Вид» и т. д. Каждый пункт меню может иметь свой подменю с дополнительными командами;
[...]
3 Разработка программного средства
3.1 UML-диаграммы классовUnified Modeling Language (унифицированный язык моделирования) [10]. Язык графического описания для объектного моделирования в области разработки программного обеспечения, для моделирования бизнес-процессов, системного проектирования и отображения организационных структур.
Class Diagram – структурная диаграмма языка моделирования UML, демонстрирующая общую структуру иерархии классов системы, их коопераций, атрибутов (полей), методов, интерфейсов и взаимосвязей между ними
Диаграмма классов описывает типы объектов системы и различного рода статические отношения, которые существуют между ними. На диаграммах классов отображаются также свойства классов, операции классов и ограничения, которые накладываются на связи между объектами.
Классы могут представлять сущности предметной области (на этапе анализа) или элементы программной системы (на этапе проектирования и реализации).
На диаграмме класс изображается в виде прямоугольника, разделенного на три части: имя класса (на английском языке), его атрибуты и его операции.
Атрибут описывает свойство класса в виде строки текста, имеющей в общем случае следующую структуру: «visibility name: type = defaultValue», где visibility определяет область видимости (public, private или protected), name есть имя атрибута, type определяет тип атрибута, а defaultValue — его значение по умолчанию (для числовых или булевых переменных).
Операции — действия, реализуемые некоторым классом, т. е. по сути методы класса. Общая форма записи операции: visibility name (parameter-list): return-type-expression, т. е. область видимости, имя операции, список параметров, тип возвращаемого значения.
Между классами существуют связи.
Ассоциация является одним из двух основных типов связи на диаграмме классов, показывающим, что можно перемещаться между объектами двух связанных классов.
Композиция — частный случай ассоциации, представляющий собой отношение типа «часть-целое». Композиция имеет четко выраженные отношения владения, а также характеризуется совпадением времени жизни части и целого.
[...]
ЗаключениеВ ходе курсового проекта разработано программное средство с использованием методологии ООП. Для достижения цели был установлен фреймворк Qt 6.6.0.
Были разработаны диаграмма классов и блок-схема.
Для выполнения логики программы были созданы два класса: один – родительский, второй – дочерний. Между ними установлено публичное наследование; созданы конструкторы, методы вывода данных об объекте, расчет калорийности и количества жиров.
Для облегчения работы был разработан графический интерфейс.
Алгоритм работы программы:
1. Сперва пользователь вводит исходные данные калорийность и вес продукта.
2. Затем нажимает кнопку «Рассчитать».
3. Программа рассчитает калорийность всего блюда и выводит его.
Либо:
1. Сперва пользователь вводит исходные данные калорийность и вес продукта.
2. Затем нажимает кнопку «Рассчитать».
3. Программа рассчитает калорийность всего блюда и выводит его.
Программа предусматривает отслеживание ввода и не позволяет вводить недопустимые значения, которые приведут к переполнению памяти при расчёте или выдаче некорректных результатов
Программное средство предназначено для расчета калорийности и количества жиров.
Таким образом, данный курсовой проект является результатом длительной работы, включающую в себя всесторонний анализ поставленной задачи, изучение методологии ООП и применение ее на практике, работу с Интернет-ресурсами, разработку визуально понятного графического интерфейса, подключение сигналов и слотов в Qt, создание алгоритмов, написание программного кода, тестирование приложения в целом, обработку ошибок.
1 Ревотюк, М. П. Объектно-ориентированное программирование и проектирование. В 2 ч. Ч. 1 : Технологии объектного программирования : учеб.-метод. пособие / М. П. Ревотюк. – Минск : БГУИР, 2014. – 194 с. : ил.
2 Qt 6 новые возможности и функции [Электронный ресурс] – Режим доступа : https://uchet-jkh.ru/i/qt-6-novye-vozmoznosti-i-funkcii
3 Библиотека Qt [Электронный ресурс] – Режим доступа : https://ru.opensuse.org/%D0%91%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0_Qt
4 Краткий обзор кроссплатформенного фреймворка Qt [Электронный ресурс] – Режим доступа : https://nicknixer.ru/programmirovanie/kratkij-obzor-krossplatformennogo-frejmvorka-qt/
5 Qt [Электронный ресурс] – Режим доступа : https://blog.skillfactory.ru/glossary/qt/
6 Обзор языка программирования С++ [Электронный ресурс] – Режим доступа : https://www.progkids.com/blog/c-plus-plus
7 Шилдт, Г. С++: базовый курс, 3-е издание. : Пер. с англ. – М. : Вильямс, 2007. – 624 с.
8 Джефф Р. Интерфейс: новые направления в проектировании компьютерных систем: учебник / Р. Джефф. - М.: Символ-Плюс, 2015. - 263 с.
9 Руководство по Qt Designer [Электронный ресурс] – Режим доступа : http://doc.crossplatform.ru/qt/4.5.0/designer-manual.html
10 ПРОЕКТИРОВАНИЕ ДИАГРАММЫ КЛАССОВ UML (CLASS DIAGRAM) [Электронный ресурс] – Режим доступа : https://nationalteam.worldskills.ru/skills/proektirovanie-diagrammy-klassov-uml-class-diagram/
11 Как пишется блок-схема: основные правила и рекомендации [Электронный ресурс] – Режим доступа : https://uchet-jkh.ru/i/kak-pisetsya-blok-sxema-osnovnye-pravila-i-rekomendacii/
12 Сигналы и слоты [Электронный ресурс] – Режим доступа : http://doc.crossplatform.ru/qt/4.3.2/signalsandslots.html