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

Kurs, lekcja 15 - kalkulator

Ostatnio zmodyfikowano 2013-11-07 20:13
Autor Wiadomość
leon_w
Temat założony przez niniejszego użytkownika
Kurs, lekcja 15 - kalkulator
» 2013-11-07 19:38:11
Witam

Robię pracę domową z kursu, lekcja 15. Zadanie jest następujące:
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.
oraz:
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.

Kod napisałem następująco:
C/C++
#include<iostream>
using namespace std;
int main()
{
    int a;
    int b;
    int znak;
    int pytanie;
    int liczba;
    cout << "Witam w moim kalkulatorze" << endl;
   
    do
    {
        cout << "Podaj pierwsza liczbe: " << endl;
        cin >> a;
       
        cout << "Podaj druga liczbe: " << endl;
        cin >> b;
       
        cout << "Wpisz nr. odpowiadajacy dzialaniu: " << endl << "1-Dodawanie" << endl << "2-Odejmowanie" << endl << "3-Mnozenie" << endl << "4-Dzielenie" << endl << "5-Wyjscie z programu" << endl;
        cin >> znak;
       
       
        if( a != 0 && b != 0 )
        {
           
            switch( znak )
            {
                case( 1 )
                    : cout << a << "+" << b << "=" << a + b << endl;
                break;
                case( 2 )
                    : cout << a << "-" << b << "=" << a - b << endl;
                break;
                case( 3 )
                    : cout << a << "*" << b << "=" << a * b << endl;
                break;
                case( 4 )
                    : cout << a << "/" << b << "=" << a / b << endl;
                case( 5 )
                    :
                { cout << "Do zobaczenia ponownie";
                    return 0;
                }
                default:
                cout << "Podales nieprawidlowa liczbe, spruboj jeszcze raz" << endl;
               
            }
        }
        else
             cout << "nie wykonuje dzialan na liczbie 0 " << endl;
       
    } while( znak != 5 );
   
    return 0;
}

Kalkulator działa poprawnie, ale nie wiem jak zabezpieczyć program przed wprowadzeniem nieprawidłowych danych a i b. Jeśli podam do a np. literę, program się zapętla.
Mile widziane ogólne uwagi do kodu.
P-95554
pekfos
» 2013-11-07 19:40:17
P-95555
leon_w
Temat założony przez niniejszego użytkownika
» 2013-11-07 20:13:16
Dzięki za przypomnienie. Dopisałem po wprowadzeniu cyfry taki kod:
C/C++
bool bok = cin.good();
if( bok != 1 )
{ cout << "podales nieprawidlowe dane";
    return 0;
}

Dziękuje.
P-95560
« 1 »
  Strona 1 z 1