Harrix Блог

  • Списки статей
    • Все статьи
    • IT
    • Qt
    • C++
    • Сложение двух чисел
    • Web программированиe
    • FAQ
    • Latex
    • Установка программ
    • Мифы
    • Видео
    • Про фото
  • Проекты
  • Harrix.org
  • RSS
  • Контакты

Сложение двух чисел в Qt 5.4.0 на C++ (консольное приложение)

В статье рассказывается как создать консольное приложение сложения двух чисел в Qt 5.4.0.

09.02.2015 1 Comment 16 735 просмотров

В статье рассказывается как создать консольное приложение сложения двух чисел в Qt 5.4.0.

Статья из цикла «Сложение двух чисел». Для меня минимальное освоение любой системы программирования начинается с возможности создания такой программы. Если можно написать приложение, в которой пользователь может ввести два числа, считать их, провести с ними какие-то действия, а потом вывести результат, то, значит, базовое владение имеется. И много задач именно из области программирования, алгоритмики можно будет решать, зная, как в конкретной системе программирования запрограммировать такую программу.

Содержание

  • Приготовления
  • Создание проекта
  • Болванка приложения C++
  • Написание кода основной программы
  • Запуск программы

Приготовления

В статье Установка Qt узнаете, как всё установить и настроить.

Создание проекта

2015-02-08_235719

2015-02-08_235736

2015-02-08_235817

2015-02-08_235830

2015-02-08_235846

2015-02-08_235910

Болванка приложения C++

Пропишем подключение библиотек:

1
2
#include <QTextCodec>
#include <iostream>

Пропишем пространство имен стандартной библиотеки, чтобы потом было меньше прописывать кода:

1
using namespace std;//Подключение стандартной библиотеки функций

2015-02-09_094643

К сожалению, при переходе от версии Qt4 к Qt5, компания из-за изменений в пользу обычных оконных приложений усложнила жизнь программистам консольных приложений. Поэтому внешний вид консольных приложений с поддержкой русской букв усложнился.

В функции main пропишем строчки кода, чтобы русский язык отображался корректно:

1
2
3
4
5
6
7
#ifdef Q_OS_WIN32
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("IBM 866"));
#endif
 
#ifdef Q_OS_LINUX
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
#endif

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <QCoreApplication>
 
#include <QTextCodec>
#include <iostream>
 
using namespace std;//Подключение стандартной библиотеки функций
 
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
 
#ifdef Q_OS_WIN32
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("IBM 866"));
#endif
 
#ifdef Q_OS_LINUX
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
#endif
 
//Тут пишем код
 
    return a.exec();
}

Написание кода основной программы

А теперь пропишем основной код нашей программы, где через cin мы считываем в переменные наши числа, а через cout выводим текст в консоль.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    int x, y, z;
 
    //Считаем первое число
    cout << QString::fromUtf8("Введите первое число:").toLocal8Bit().data() << endl;
    cin >> x;
 
    //Считаем второе число
    cout << QString::fromUtf8("Введите второе число:").toLocal8Bit().data() << endl;
    cin >> y;
 
    //Посчитаем сумму
    z = x + y;
 
    //Выведем результат
    cout << QString::fromUtf8("Сумма: ").toLocal8Bit().data() << z << endl;

Полная программа будет выглядеть так:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <QCoreApplication>
 
#include <QTextCodec>
#include <iostream>
 
using namespace std;//Подключение стандартной библиотеки функций
 
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
 
#ifdef Q_OS_WIN32
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("IBM 866"));
#endif
 
#ifdef Q_OS_LINUX
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
#endif
 
    int x, y, z;
 
    //Считаем первое число
    cout << QString::fromUtf8("Введите первое число:").toLocal8Bit().data() << endl;
    cin >> x;
 
    //Считаем второе число
    cout << QString::fromUtf8("Введите второе число:").toLocal8Bit().data() << endl;
    cin >> y;
 
    //Посчитаем сумму
    z = x + y;
 
    //Выведем результат
    cout << QString::fromUtf8("Сумма: ").toLocal8Bit().data() << z << endl;
 
    return a.exec();
}

Теперь немного о коде получившемся. Из-за проблем с отображением русских букв в консоли в Qt5 нам приходится использовать костыль вида:

1
cout << QString::fromUtf8("Введите второе число:").toLocal8Bit().data() << endl;

вместо стандартного и обычного способа вывода:

1
cout << "Введите второе число:" << endl;

Если вы не хотите использовать русские буквы, то код будет чище и красивее:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <QCoreApplication>
 
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
 
    int x, y, z;
 
    cout << "Input first number:" << endl;
    cin >> x;
 
    cout << "Input second number:" << endl;
    cin >> y;
 
    z = x + y;
 
    cout << "Sum: " << z << endl;
 
    return a.exec();
}

Запуск программы

2015-02-09_095201

Получаем наше приложение:
2015-02-09_095216

При вводе наших чисел получим вот это:
2015-02-09_095223

Вот наше приложение и написано. Пока всё)


Статьи по теме:

  1. Сложение двух чисел в Qt 5.4.0 на C++
  2. Статьи из цикла «Сложение двух чисел»
  3. Сложение двух чисел в Qt 5.5.0 на C++ (Qt Quick)
  4. Сложение двух чисел в Qt 5.5.0 на C++ (Qt Quick Controls)

IT C++, Qt, Программа сложения двух чисел

© 2014 Harrix