Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Pętla do ... while zadanie 2

Ostatnio zmodyfikowano 2017-04-15 21:47
Autor Wiadomość
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?

C/C++
#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;
}
P-160155
wilkoo13
» 2017-04-15 21:47:27
C/C++
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ę.
C/C++
do {
    //pierwsza liczba
} while( cin.fail() == 1 );

do {
    //druga liczba
} 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.
P-160169
« 1 »
  Strona 1 z 1