Newer
Older
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
76
#ifndef CALCULATOR_H
#define CALCULATOR_H
#include "sinus.h"
#include <iostream>
#include <QMainWindow>
#include <string>
#include <vector>
QT_BEGIN_NAMESPACE
namespace Ui {
class Calculator;
}
QT_END_NAMESPACE
class Calculator : public QMainWindow
{
Q_OBJECT
public:
Calculator(QWidget *parent = nullptr); //default
~Calculator(); //default
//int& index is a reference to an integer and QString& str is a reference to a QString object
//the functions ausdruck, summand, factor, and zahl are all parsing the 'str' string character by character.
//'references' are used in these function parameters to allow multiple functions to operate on the same data
//QString is a class from the Qt framework which is used for manipulating Unicode strings,
//more efficient and internationalized applications friendly, better as normal std::string
double ausdruck(char& zeichen); //Das eingelesene Zeichen wird immer
double summand(char& zeichen); //per Referenz übergeben, damit es
double factor(char& zeichen); //weitergereicht werden kann, wenn eine
double zahl(char& zeichen); //Funktion es nicht verarbeiten kann.
void check(char& zeichen);
void ausgabe();
char getZeichen();
double calcSin(double result, Sinus::Modus defaultModus);
std::string input="";
private slots:
void char1();
void char2();
void char3();
void char4();
void char5();
void char6();
void char7();
void char8();
void char9();
void char0();
void charDiv();
void charSum();
void charSub();
void charFac();
void charFloat();
void charKlammerAuf();
void charKlammerZu();
void berechne();
void clearText();
void onSinButtonClicked();
void onGradButtonClicked();
void onRadButtonClicked();
void onGonButtonClicked();
void onPiButtonClicked();
void charKlammerEckig();
private:
Ui::Calculator *ui; //default
bool isSinus = false;
double pi = 3.14159265;
std::vector <std::string> ausdruecke;
Sinus sinus;
};
#endif // CALCULATOR_H