Quantcast
Channel: Forum Pasja Informatyki - Najnowsze pytania
Viewing all articles
Browse latest Browse all 65275

Żółtodziób i jego prosty kalkulator w C++ ; Prośba o ocenę

$
0
0

Witam,

od kilku dni w wolnym czasie przerabiam sobie jeden z darmowych kursów online dotyczących języka C++. Doszedłem do zadania, w którym mam napisać prosty kalkulator służący do dodawania/odejmowania/dzielenia/mnożenia dwóch liczb. Jako że jestem totalnie nowy, proszę o naprowadzenie mnie na dobrą drogę i ocenę moich wypocin.

Najbardziej interesuje mnie czy warunek z komentarzem mógłby być prostszy + przy wpisywaniu np. liter do działań (zamiast liczb) wyświetla się komentarz o błędzie, ale działania z 'switcha' są liczone i wypisywane, więc przypisałem w wypadku błędu zmiennym wartość 0, żeby nie wypisywało mi głupot w konsoli... Jak mogę to lepiej zrobić?

#include <iostream>
using namespace std;
int main()
{
    float liczba1, liczba2;
    int menu;
    float wynik = 0;

        do
     {
        cin.clear();
        cin.sync();

        cout << "Obecny wynik to "<< wynik << endl << endl;
        cout << "Wybierz dzialanie"<< endl << endl;
        cout << "   [1] Dodawanie"<< endl;
        cout << "   [2] Odejmowanie"<< endl;
        cout << "   [3] Mnozenie"<< endl;
        cout << "   [4] Dzielenie"<< endl;
        cout << "   [5] Wyjscie"<< endl << endl;

        cin >> menu;
        cout << endl;

        if(1 == menu || 2 == menu || 3 == menu || 4 == menu)  // Jaki warunek bylby tutaj odpowiedniejszy?

          {
            cout << "Wprowadz pierwsza liczbe: ";
              if (cin >> liczba1)
              {
                cout << "Wprowadz druga liczbe: ";
                    if (cin >> liczba2)
                    cout << endl;
                    else
                    {
                        cout << "Blad! Sprobuj ponownie."<< endl;
                        liczba1 = 0; // Aby wyzerowac poprzednio wczytana liczbe?
                    }
              }
            else
            {
                cout << "Blad! Sprobuj ponownie."<< endl;
                liczba2 = 0; // Aby liczba2 nie miala losowej wartosci przy nieprawidlowym wczytaniu liczby1? Co powinienem w takim przypadku uzyc?
            }
          }

        switch(menu)

        {
            case 1:
                wynik = liczba1 + liczba2;
                cout << liczba1 << "+"<< liczba2 << "="<< wynik << endl;
                break;

            case 2:
                wynik = liczba1 - liczba2;
                cout << liczba1 << "-"<< liczba2 << "="<< wynik << endl;
                break;

            case 3:
                wynik = liczba1 * liczba2;
                cout << liczba1 << "*"<< liczba2 << "="<< wynik << endl;
                break;

            case 4:
                wynik = liczba1 / liczba2;
                cout << liczba1 << "/"<< liczba2 << "="<< wynik << endl;
                break;

            case 5:
                return 0;
                break;

            default:
                cout << "Wprowadzono bledne dane. Sprobuj ponownie."<< endl;
                break;
        }


    }

    while(menu != 5);

    return 0;
}

 


Viewing all articles
Browse latest Browse all 65275

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>