Advertisement
Guest User

Untitled

a guest
Sep 6th, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "rekenmachine.h"
  2. #include "ui_rekenmachine.h"
  3.  
  4. double currentValue = 0.0;
  5. double prevValue = 0.0;
  6. enum LastButton {plus, min, equals, multi, null};
  7. LastButton lastButton = null;
  8.  
  9. Rekenmachine::Rekenmachine(QWidget *parent) : QMainWindow(parent), ui(new Ui::Rekenmachine)
  10. {
  11.     ui->setupUi(this);
  12.  
  13.     ui->Display->setText(QString::number(currentValue));
  14.     QPushButton *buttons[3];
  15.     for (int i = 0; i < 3; ++i)
  16.     {
  17.         QString buttonName = "Button" + QString::number(i);
  18.         buttons[i] = Rekenmachine::findChild<QPushButton *>(buttonName);
  19.         connect(buttons[i], SIGNAL(released()), this, SLOT(pressNumber()));
  20.     }    
  21.  
  22.     connect(ui->Add, SIGNAL(released()), this, SLOT(pressMath()));
  23.     connect(ui->Subtract, SIGNAL(released()), this, SLOT(pressMath()));
  24.     connect(ui->Multiply, SIGNAL(released()), this, SLOT(pressMath()));
  25.     connect(ui->Result, SIGNAL(released()), this, SLOT(pressEqual()));
  26. }
  27.  
  28. Rekenmachine::~Rekenmachine()
  29. {
  30.     delete ui;
  31. }
  32.  
  33. void Rekenmachine::pressNumber()
  34. {
  35.     QPushButton *button = (QPushButton *)sender();
  36.     QString buttonValue = button->text();
  37.     QString displayValue= ui->Display->text();
  38.     if (displayValue.toDouble() == 0 || displayValue.toDouble() == 0.0)
  39.     {
  40.         ui->Display->setText(buttonValue);
  41.         currentValue = buttonValue.toDouble();
  42.     }
  43.     else
  44.     {
  45.         ui->Display->setText(QString::number((displayValue + buttonValue).toDouble()));
  46.         currentValue = (displayValue + buttonValue).toDouble();
  47.     }
  48. }
  49.  
  50. void Rekenmachine::pressMath()
  51. {
  52.     lastButton = null;
  53.     prevValue = currentValue;
  54.  
  55.     QPushButton *button = (QPushButton *)sender();
  56.     if (button->text() == "+")
  57.     {
  58.         lastButton = plus;
  59.         ui->lineEdit->setText("Add");
  60.     }
  61.     else if (button->text() == "-")
  62.     {
  63.         lastButton = min;
  64.         ui->lineEdit->setText("Min");
  65.     }
  66.     else if (button->text() == "*")
  67.     {
  68.         lastButton = multi;
  69.         ui->lineEdit->setText("Plus");
  70.     }
  71.     currentValue = 0;
  72.     ui->Display->setText(QString::number(currentValue));
  73. }
  74.  
  75. void Rekenmachine::pressEqual()
  76. {
  77.     double solution = 0.0;
  78.     if (lastButton = plus)
  79.     {
  80.         solution = currentValue + prevValue;
  81.     }
  82.     else if (lastButton = min)
  83.     {
  84.         solution = prevValue - currentValue;
  85.     }
  86.     else if (lastButton = multi)
  87.     {
  88.         solution = currentValue * prevValue;
  89.     }
  90.     ui->Display->setText(QString::number(solution));
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement