Pętla do ... while zadanie 2
Ostatnio zmodyfikowano 2017-04-15 21:47
patryk98 Temat założony przez niniejszego użytkownika |
Pętla do ... while zadanie 2 » 2017-04-15 15:29:17 Witam. 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. Zrobiłem do tego zadania coś takiego, czy ktoś może to sprawdzić bo nie wiem czy to tak może być zrobione? #include <iostream> #include <cstdlib>
using namespace std;
int main() { cout << "*__________KALKULATOR__________*" << endl; cout << endl; float wynik = 0; bool spr; float a, b; int wybor; do { cout << "Wynik = " << wynik << endl; cout << endl; cout << "Podaj pierwsza liczbe: "; cin >> a; spr = cin.good(); cout << "Podaj druga liczbe: "; cin >> b; spr = cin.good(); if( a != 0 && b != 0 ) { cout << endl; cout << "MENU GLOWNE" << endl; cout << "[1] Dodawanie" << endl; cout << "[2] Odejmowanie" << endl; cout << "[3] Mnozenie" << endl; cout << "[4] Dzielenie" << endl; cout << "[5] Rezygnuj" << endl; cout << "Wybierz co chcesz zrobic: "; cin >> wybor; cout << endl; system( "cls" ); switch( wybor ) { case 1: wynik = a + b; cout << a << " + " << b << " = " << wynik; break; case 2: wynik = a - b; cout << a << " - " << b << " = " << wynik; break; case 3: wynik = a * b; cout << a << " * " << b << " = " << wynik; break; case 4: wynik = a / b; cout << a << " / " << b << " = " << wynik; break; case 5: break; default: cout << "Nie ma takiej opcji w menu!"; break; } } cout << endl; } while( spr != 0 && a != 0 && b != 0 && wybor != 5 ); cout << endl; return 0; }
|
|
wilkoo13 |
» 2017-04-15 21:47:27 cin >> a; spr = cin.good(); cout << "Podaj druga liczbe: "; cin >> b; spr = cin.good();
Po wprowadzeniu "a" do spr przypisujesz true/false gdy 3 linijki niżej potem po raz kolejny zmieniasz wartość spr. Możesz zrobić pętlę. do { } while( cin.fail() == 1 );
do { } while( cin.fail() == 1 );
cin.clear() oraz cin.sync() powinno umieśczać się tuż przed cin, gdy wstawisz je po cin, cin.good() oraz cin.fail() wraca do standardowej wartości. |
|
« 1 » |