-
Notifications
You must be signed in to change notification settings - Fork 55
/
Copy pathequals_handler.cpp
75 lines (59 loc) · 1.75 KB
/
equals_handler.cpp
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include "equals_handler.h"
#include <cmath>
Equals_handler::Equals_handler()
{
}
QString Equals_handler::Equals_Button_triggered(double firstNum, double secondNum,Ui::MainWindow *ui)
{
double labelnumber=0;
QString input;
QString symbol;
if(ui->pushButton_Power->isChecked())
{
labelnumber = pow(firstNum,secondNum);
ui->pushButton_Power->setChecked(false);
symbol = " ^ ";
}
else if(ui->pushButton_minus->isChecked())
{
labelnumber = firstNum - secondNum;
ui->pushButton_minus->setChecked(false);
symbol = " - ";
}
else if(ui->pushButton_multiply->isChecked())
{
labelnumber = firstNum * secondNum;
ui->pushButton_multiply->setChecked(false);
symbol = " x ";
}
else if(ui->pushButton_divide->isChecked())
{
if(secondNum==0){
ui->Error_Label->setText("Error message: cannot divide by 0");
}
else{
labelnumber = firstNum / secondNum;
ui->pushButton_divide->setChecked(false);
symbol = " / ";
}
}
else if(ui->pushButton_squared->isChecked())
{
labelnumber = (firstNum * firstNum);
ui->pushButton_squared->setChecked(false);
symbol = " x² ";
}
else if(ui->pushButton_add->isChecked())
{
labelnumber = firstNum + secondNum;
ui->pushButton_add->setChecked(false);
symbol = " + ";
}
// Setting the equation label
arithmetic_expression=QString::number(firstNum,'g',15) + symbol + QString::number(secondNum,'g',15) + " = ";
ui->label_2->setText(arithmetic_expression);
input = QString::number(labelnumber,'g',15);
answer=labelnumber;
ui->label->setText(input);
return input;
}