Разработка программы калькулятор в программном пакете QT | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 27 апреля, печатный экземпляр отправим 1 мая.

Опубликовать статью в журнале

Авторы: ,

Рубрика: Технические науки

Опубликовано в Молодой учёный №20 (124) октябрь-2 2016 г.

Дата публикации: 17.10.2016

Статья просмотрена: 1077 раз

Библиографическое описание:

Емельянова, Д. К. Разработка программы калькулятор в программном пакете QT / Д. К. Емельянова, А. М. Максимова. — Текст : непосредственный // Молодой ученый. — 2016. — № 20 (124). — С. 147-148. — URL: https://moluch.ru/archive/124/34334/ (дата обращения: 18.04.2024).



Ключевые слова: объектно-ориентированное программирование, QT, классы, калькулятор

Людям, делающим свои первые шаги в объектно-ориентированное программирование, полезно и крайне удобно делать это в программном пакете QT. В этой статье будет рассмотрена работа в QT на примере простейшего проекта — «Калькулятор».

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

Проект калькулятор будет являться приложением QtWidgets, такой пункт и следует выбрать при создании проекта. После того как в диалоговом окне введены название проекта и путь, выбрать тип базового класса, который будет создан автоматически. Для проекта «Калькулятор» выберем тип QWidget, т. к. работа будет происходить непосредственно в главном окне, без использования строки меню, или панели инструментов, или всплывающих окон.

После создания проекта автоматически в нем будут созданы файлы:.срр, файлы главной функции и базового класса, heder базового класса и ui-форма. Написание проекта начинается в ui-форме — это окно, в котором можно создать внешний вид нашего проекта.

В созданной ui-форме надо расположить в нужном порядке необходимые компоненты визуальной составляющей проекта. Выберем в окне слева поле для ввода/вывода информации LineEdit и необходимое количество кнопок. Двойным нажатием на кнопку можно менять надпись на выбранной кнопке. Для калькулятора необходимо иметь кнопки с цифрами от 0 до 9, кнопки с простейшими операциями умножения, сложения, деления, вычитания, кнопки с такими операциями, как: возведение в степень, натуральный логарифм, синус и косинус, кнопка «=» для вывода результата операции и пара необходимых для любого калькулятора кнопок: стереть всё и стереть символ слева. Для того, чтобы код был понятным для любого пользователя, в свойствах любого объекта можно изменить его стандартное имя на более подходящее, например: Button_answer вместо pushButton_9.

Перейдем к самой программе. В heder файле необходимо объявить две переменные типа double и перечисление Operation, содержащее имена операций. В файле.срр опишем работу кнопок. Функции для описания работы кнопок по нажатию создаются после выполнения следующих действий: на ui-форме кликнуть ПКМ по нужной кнопке, во всплывающем окне выбрать «Перейти к слоту».. и выбрать сигнал clicked(). Функция для одной кнопки будет создана автоматически в файле calculator.cpp. Аналогичную операцию стоит провести со всеми имеющимися кнопками.

Стоит обратить внимание на разницу между оператором двойного двоеточия и точкой. Оператор двойного двоеточия отделяет имя класса от имени его члена или функции, а оператор точка отделяет имя экземпляра класса от имени его члена или функции.

Теперь опишем функции кнопок. Для кнопок с цифрами будем выводить в поле ввода/вывода информации цифру с кнопки. Вот пример функции для кнопки с единицей.

voidCalculator::on_OneButton_clicked()

{

ui->lineEdit->insert("1");

}

По нажатию на кнопки с простейшими арифметическими операциями, запишем в первую переменную типа double число, содержащееся в поле ввода/вывода информации, присвоим перечислению operation значение, соответствующее назначению кнопки и очистим поле ввода/вывода информации LineEdit. Пример функции для кнопки с назначением сложения:

voidCalculator::on_Button_plus_clicked()

{

A=ui->lineEdit->text().toDouble();

operation=Sum;

ui->lineEdit->clear();

}

Как можно заметить, по нажатию на кнопку с операцией, пока не производит самого вычисления, это мы оставили кнопке вывода результата. В её функции пропишем присваивание значения второй переменной типа double, объявим новую переменную для записи результата и, используя оператор ветвления switch, пропишем операции для получения результата для каждого значения перечисления operation. Затемвыведемполученныйответ.

voidCalculator::on_Button_answer_clicked()

{

B=ui->lineEdit->text().toDouble();

doubleC;

switch(operation){

caseSum:

C=A+B;

break;

caseSub:

C=A-B;

break;

caseDiv:

C=A/B;

break;

caseMult:

C=A*B;

break;

}

ui->lineEdit->setText(QString::number(C));

}

Для кнопок с операциями, не требующими второго числа, вычисление и вывод результата будут производиться сразу же. Читаем значение числа из поля ввода/вывода, рассчитываем квадрат, или логарифм, или синус или косинус, и сразу выводим на LineEdit. Это не сложно и аналогично предыдущим функциям, поэтому пример приводить не буду. Обработка нажатия на кнопку Clear — самое элементарное, а вот Deletе поинтереснее. Для того, чтобы удалить в поле ввода/вывода один элемент, понадобится считать, имеющееся число как строку, удалить в нём один элемент и записать обратно.

voidCalculator::on_Button_Del_clicked()

{

QStringstr=ui->lineEdit->text();

str.chop(1);

ui->lineEdit->setText(str);

}

В современном мире существует множество кроссплатформенных инструментариев разработки. Вопрос выбора оптимального встает перед каждым человеком начинающим изучать программированием. Данная статья является показательным примером того, как просто и удобно работать в программном пакете QT, на примере программы «Калькулятор».

Литература:

1. Роберт Лафоре. Объектно-ориентированное программирование в С++. — 4-е изд. —: Питер, 2015. — 928 с..

2. Creating a Qt Widget Based Application // Qt. URL: http://doc.qt.io/qtcreator/creator-writing-program.html (дата обращения: 14.10.2016).

Основные термины (генерируются автоматически): кнопка, вывод информации, пол ввода, базовый класс, функция, двойное двоеточие, объектно-ориентированное программирование, операция, программный пакет, создание проекта.


Похожие статьи

Объектно-ориентированные расширения в программировании...

- ООП и не ООП программирование можно совмещать

- THIS/SUPER доступ к методам базовых классов.

Создание и внедрение в практику объектно-ориентированных систем автоматизированного проектирования швейных изделий.

Методология объектно-ориентированного программирования...

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

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

Обучение объектно ориентированной парадигме...

Полезная информация. Спецвыпуски.

Теоретической основой объектно-ориентированного подхода в программировании являются метафоры объекта и класса, которые реализуются

Объектно-ориентированный программный код объемен, сложен и большая его часть может...

Модульная объектно-ориентированная среда обучения...

Модульная объектно-ориентированная среда обучения (Moodle): эффективная или несовершенная форма организации обучения?

Martin Dougiamas (идеолог и руководитель проекта по разработке системы управления обучением Moodle) сформулировал пять...

Кибернетические начала в методологиях структурного...

Итак, имеем три базисных операции для построения объектно-ориентированной системы

В программе необходимо будет создать базовый для всех аллокаторов класс и

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

Методика применения манипуляторов в потоках вывода в языке...

Операции ввода/вывода выполняются с помощью классов istream (потоковый ввод) и ostream (потоковый вывод).

Р. Лафоре. Объектно-ориентированное программирование в С++: 4-Е издание. Питер 2004. — 922 с.

Обучение студентов основам объектно-ориентированного...

Рассматриваются базовые понятия объектно-ориентированного программирования: абстрагирование, инкапсуляция

Полезная информация. Спецвыпуски.

Главными понятиями объектно-ориентированного программирования являются объекты и классы объектов.

Применение графической библиотеки SDL2.0 для...

SDL_CreateRenderer(window, -1, 0), функция создания рендерера, и функция

и процедурное программирование, объектно ориентированное программирование: учеб.

Практическое применение искусственных нейронных сетей в обработке графической информации.

Использование современных языков программирования для...

- Smalltalk – объектно-ориентированное программирование; - Lisp – отдельные черты функционального программирования (lambda, map, reduce, filter и

Система помощи работает для модулей, классов и функций, только если те были снабжены строками документации [1].

Похожие статьи

Объектно-ориентированные расширения в программировании...

- ООП и не ООП программирование можно совмещать

- THIS/SUPER доступ к методам базовых классов.

Создание и внедрение в практику объектно-ориентированных систем автоматизированного проектирования швейных изделий.

Методология объектно-ориентированного программирования...

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

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

Обучение объектно ориентированной парадигме...

Полезная информация. Спецвыпуски.

Теоретической основой объектно-ориентированного подхода в программировании являются метафоры объекта и класса, которые реализуются

Объектно-ориентированный программный код объемен, сложен и большая его часть может...

Модульная объектно-ориентированная среда обучения...

Модульная объектно-ориентированная среда обучения (Moodle): эффективная или несовершенная форма организации обучения?

Martin Dougiamas (идеолог и руководитель проекта по разработке системы управления обучением Moodle) сформулировал пять...

Кибернетические начала в методологиях структурного...

Итак, имеем три базисных операции для построения объектно-ориентированной системы

В программе необходимо будет создать базовый для всех аллокаторов класс и

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

Методика применения манипуляторов в потоках вывода в языке...

Операции ввода/вывода выполняются с помощью классов istream (потоковый ввод) и ostream (потоковый вывод).

Р. Лафоре. Объектно-ориентированное программирование в С++: 4-Е издание. Питер 2004. — 922 с.

Обучение студентов основам объектно-ориентированного...

Рассматриваются базовые понятия объектно-ориентированного программирования: абстрагирование, инкапсуляция

Полезная информация. Спецвыпуски.

Главными понятиями объектно-ориентированного программирования являются объекты и классы объектов.

Применение графической библиотеки SDL2.0 для...

SDL_CreateRenderer(window, -1, 0), функция создания рендерера, и функция

и процедурное программирование, объектно ориентированное программирование: учеб.

Практическое применение искусственных нейронных сетей в обработке графической информации.

Использование современных языков программирования для...

- Smalltalk – объектно-ориентированное программирование; - Lisp – отдельные черты функционального программирования (lambda, map, reduce, filter и

Система помощи работает для модулей, классов и функций, только если те были снабжены строками документации [1].

Задать вопрос