Zadanie 2: Kalkulator

Opisanie

Program symuluje kalkulator, dodający i odejmujący liczby całkowite. Użytkownik wprowadza dowolną ilość liczb całkowitych, oddzielonych znakami „+” oraz „-”. Nawiasy nie są dopuszczalne. Działania wykonuje się z lewa na prawo. W momencie, gdy użytkownik wprowadza znak „równa się”, program rysuje kalkulator z wynikiem w okienku.

Dane wejściowe

Po wyświetlaniu wstępnego komunikatu (p. rozdział „Dane wejściowe”) użytkownik wprowadza w oddzielnej linii liczbę całkowitą. Potem on na przemian wprowadza znak operacji („+” lub „-”) i kolejną liczbę całkowitą. Wszystko — w oddzielnych liniach. Wejście się kończy, gdy zamiast znaku użytkownik wprowadzi symbol „równa się”.

Dane wyjściowe

Przed wprowadzeniem informacji program wyświetla komunikat wstępny

Dwudziałaniowy kalkulator. 
Wprowadź wyrażenie całkowite poczynając z następnej linii.

Przed wprowadzeniem liczby wyświetla się podpowiedź:

Liczba: 

Jeżeli oczekuje się znak operacji, program wyświetla

Operacja (+, -, =): 

Jeżeli wejście jest zakończone (znak „=”), program wyświetla dwie puste linie, po których pojawia się kalkulator. W okienku zamiast <W> powinien zostać umieszczony wynik wyrażenia (wyrównany do prawej).

┌──────────────────┐
| ┌──────────────┐ |
| |          <W> | |
| └──────────────┘ |
|                  |
|  7   8   9   -   |
|                  |
|  4   5   6   +   |
|                  |
|  1   2   3       |
|                  |
|  0           =   |
|                  |
└──────────────────┘

Błędy

Niezgodne ze specyfikacją dane wejściowe powodują zachowanie niezdefiniowane

Przykład

Dwudziałaniowy kalkulator. 
Wprowadź wyrażenie całkowite poczynając z następnej linii.

Liczba: 10
Operacja (+, -, =): +
Liczba: 5
Operacja (+, -, =): -
Liczba: 12
Operacja (+, -, =): +
Liczba: -8
Operacja (+, -, =): =


┌──────────────────┐
| ┌──────────────┐ |
| |           -5 | |
| └──────────────┘ |
|                  |
|  7   8   9   -   |
|                  |
|  4   5   6   +   |
|                  |
|  1   2   3       |
|                  |
|  0           =   |
|                  |
└──────────────────┘