/* Napisz prosty kalkulator, który będzie potrafił dodawać, odejmować, mnożyć i dzielić. Program ten ma działać następująco:
1. Wypisuje obecny wynik
2. Wprowadź liczbę
3. Wybierz działanie (jeżeli liczba różna od 0)
4. Wykonaj obliczenia (jeżeli liczba różna od 0)
5. Wróć do kroku 1.
6. Jeżeli wprowadzoną liczbą jest 0, zakończ program. */
/* Zabezpiecz wcześniej napisany kalkulator przed podawaniem niepoprawnych liczb i operacji.
Wykorzystaj wiedzę zdobytą z pierwszego zadania pracy domowej niniejszego rozdziału.
Zabezpiecz również w analogiczny sposób przed możliwością wyboru nieprawidłowego działania. */
#include <iostream>
#include <limits>
using namespace std;
int main()
{
double wynik = 0;
double liczba;
int wybor;
int koniec = 1;
do
{
cout << "\nAktualny wynik to: " << wynik << endl;
cout << "\nWprowadź liczbę do obliczeń: ";
cin >> liczba;
bool sprawdz = cin.good();
cin.clear();
cin.ignore( numeric_limits < streamsize > ::max(), '\n' );
cout << "\n\n\n";
if (sprawdz != 0)
{
cout << "\nTwoja liczba to: " << liczba << "\nCo chcesz z nią zrobić?\n"
"[1] Dodawanie\n"
"[2] Odejmowanie\n"
"[3] Mnożenie\n"
"[4] Dzielenie \n"
"[5] Rezygnuj \n"
"Wybieraj: ";
cin >> wybor;
switch( wybor )
{
case 1:
{
wynik += liczba;
break;
}
case 2:
{
wynik -= liczba;
break;
}
case 3:
{
wynik *= liczba;
break;
}
case 4:
{
if (liczba != 0 && wynik != 0)
{
wynik /= liczba;
break;
} else
{
cout << "\nNie dziel przez zero!!\n";
}
}
case 5:
{
cout << "Ostateczny wynik to: " << wynik << endl;
koniec = 0;
break;
}
default:
{
cout << "\nNie wybrałeś nic!\nWróć!\n\n";
break;
}
}
}
else
{
cout << "Liczba musi być różna od 0!! \n";
koniec = 0;
}
} while ( koniec != 0 );
}
LyogTmFwaXN6IHByb3N0eSBrYWxrdWxhdG9yLCBrdMOzcnkgYsSZZHppZSBwb3RyYWZpxYIgZG9kYXdhxIcsIG9kZWptb3dhxIcsIG1ub8W8ecSHIGkgZHppZWxpxIcuIFByb2dyYW0gdGVuIG1hIGR6aWHFgmHEhyBuYXN0xJlwdWrEhWNvOgoxLiBXeXBpc3VqZSBvYmVjbnkgd3luaWsKMi4gV3Byb3dhZMW6IGxpY3pixJkKMy4gV3liaWVyeiBkemlhxYJhbmllIChqZcW8ZWxpIGxpY3piYSByw7PFvG5hIG9kIDApCjQuIFd5a29uYWogb2JsaWN6ZW5pYSAoamXFvGVsaSBsaWN6YmEgcsOzxbxuYSBvZCAwKQo1LiBXcsOzxIcgZG8ga3Jva3UgMS4KNi4gSmXFvGVsaSB3cHJvd2Fkem9uxIUgbGljemLEhSBqZXN0IDAsIHpha2/FhGN6IHByb2dyYW0uICovCi8qIFphYmV6cGllY3ogd2N6ZcWbbmllaiBuYXBpc2FueSBrYWxrdWxhdG9yIHByemVkIHBvZGF3YW5pZW0gbmllcG9wcmF3bnljaCBsaWN6YiBpIG9wZXJhY2ppLgpXeWtvcnp5c3RhaiB3aWVkesSZIHpkb2J5dMSFIHogcGllcndzemVnbyB6YWRhbmlhIHByYWN5IGRvbW93ZWogbmluaWVqc3plZ28gcm96ZHppYcWCdS4KWmFiZXpwaWVjeiByw7N3bmllxbwgdyBhbmFsb2dpY3pueSBzcG9zw7NiIHByemVkIG1vxbxsaXdvxZtjacSFIHd5Ym9ydSBuaWVwcmF3aWTFgm93ZWdvIGR6aWHFgmFuaWEuICovCiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPGxpbWl0cz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IG1haW4oKQp7CiAgICBkb3VibGUgd3luaWsgPSAwOwogICAgZG91YmxlIGxpY3piYTsKICAgIGludCB3eWJvcjsKICAgIGludCBrb25pZWMgPSAxOwogICAgZG8KICAgIHsKCiAgICAgICAgY291dCA8PCAiXG5Ba3R1YWxueSB3eW5payB0bzogIiA8PCB3eW5payA8PCBlbmRsOwoKICAgICAgICBjb3V0IDw8ICJcbldwcm93YWTFuiBsaWN6YsSZIGRvIG9ibGljemXFhDogIjsKICAgICAgICBjaW4gPj4gbGljemJhOwogICAgICAgIGJvb2wgc3ByYXdkeiA9IGNpbi5nb29kKCk7CiAgICAgICAgY2luLmNsZWFyKCk7CiAgICAgICAgY2luLmlnbm9yZSggbnVtZXJpY19saW1pdHMgPCBzdHJlYW1zaXplID4gOjptYXgoKSwgJ1xuJyApOwogICAgICAgIGNvdXQgPDwgIlxuXG5cbiI7CiAgICAgICAgaWYgKHNwcmF3ZHogIT0gMCkKICAgICAgICB7CiAgICAgICAgICAgIGNvdXQgPDwgIlxuVHdvamEgbGljemJhIHRvOiAiIDw8IGxpY3piYSA8PCAiXG5DbyBjaGNlc3ogeiBuacSFIHpyb2JpxIc/XG4iCiAgICAgICAgICAgICAgICAgICAgIlsxXSBEb2Rhd2FuaWVcbiIKICAgICAgICAgICAgICAgICAgICAiWzJdIE9kZWptb3dhbmllXG4iCiAgICAgICAgICAgICAgICAgICAgIlszXSBNbm/FvGVuaWVcbiIKICAgICAgICAgICAgICAgICAgICAiWzRdIER6aWVsZW5pZSBcbiIKICAgICAgICAgICAgICAgICAgICAiWzVdIFJlenlnbnVqIFxuIgogICAgICAgICAgICAgICAgICAgICJXeWJpZXJhajogIjsKICAgICAgICAgICAgY2luID4+IHd5Ym9yOwogICAgICAgICAgICBzd2l0Y2goIHd5Ym9yICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHd5bmlrICs9IGxpY3piYTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB3eW5payAtPSBsaWN6YmE7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgd3luaWsgKj0gbGljemJhOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpZiAobGljemJhICE9IDAgJiYgd3luaWsgIT0gMCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIHd5bmlrIC89IGxpY3piYTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBjb3V0IDw8ICJcbk5pZSBkemllbCBwcnpleiB6ZXJvISFcbiI7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBjb3V0IDw8ICJPc3RhdGVjem55IHd5bmlrIHRvOiAiIDw8IHd5bmlrIDw8IGVuZGw7CiAgICAgICAgICAgICAgICAgICAga29uaWVjID0gMDsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgY291dCA8PCAiXG5OaWUgd3licmHFgmXFmyBuaWMhXG5XcsOzxIchXG5cbiI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgY291dCA8PCAiTGljemJhIG11c2kgYnnEhyByw7PFvG5hIG9kIDAhISBcbiI7CiAgICAgICAgICAgIGtvbmllYyA9IDA7CiAgICAgICAgfQogICAgfSB3aGlsZSAoIGtvbmllYyAhPSAwICk7Cn0K