Kalkulator
Ostatnio zmodyfikowano 2016-03-25 22:30
Mal3c Temat założony przez niniejszego użytkownika |
Kalkulator » 2016-03-25 22:08:33 Jestem nowy w te klocki, uczę się z tutoriali na tej stronie i jestem na drugim poziomie. Robiłem zadania itd, udawało się, ale stwierdziłem że napiszę jeden kalkulator sam.. ( nie z ' pracy domowej ).. no i napisałem.. ale natknąłem się na pewne problemy. 1. gdy zamiast liczby wpiszę coś innego - raz wyskoczy napis i będzie chciał żebym wpisał jeszcze raz, ale gdy drugi raz wpiszę coś innego - będzie spam napisem " nie ma takiej opcji " ( ten problem pewnie rozwiążę zanim ktoś odpowie bo już nie raz mi się to udało ) @edit.. okej.. jednak nie mam pomysłu jak to naprawić, bo próby kończą się wchodzeniem z deszczu pod rynne... 2. Nie liczy... :c ( i nie wiem co mam źle... :/ ) #include <iostream> #include <cstdlib>
int wybierzdzialanie() { std::cout << " [1] - Dodawanie " << std::endl; std::cout << " [2] - Odejmowanie " << std::endl; std::cout << " [3] - Mnozenie " << std::endl; std::cout << " [4] - Dzielenie " << std::endl; std::cout << " [5] - Rezygnuj " << std::endl; } int wczytanieliczby() { int kolejnaliczba; int ile = 5; do { std::cout << "Wybierz co chcesz zrobic " << std::endl; std::cout << " [1] - liczba " << std::endl; std::cout << " [2] - Rezygnacja " << std::endl; std::cin >> kolejnaliczba; if( std::cin.fail() || kolejnaliczba > 2 || kolejnaliczba < 1 ) { std::cout << " Nie ma takiej opcji ! " << std::endl; std::cin >> kolejnaliczba; ile--; } } while( kolejnaliczba > 2 || kolejnaliczba < 0 ); switch( kolejnaliczba ) { case 1: std::cout << " Wprowadz liczbe " << std::endl; int a; do { std::cin.clear(); std::cin.sync(); std::cin >> a; if( a == false ) { std::cout << " Podaj liczbe ! " << std::endl; } } while( !a == true ); return a; break; case 2: std::cout << " Zrezygnowales " << std::endl; return 0; break; } } int wczytaniedrugiejliczby() { int kolejnaliczba; int ile = 5; do { std::cout << "Wybierz co chcesz zrobic " << std::endl; std::cout << " [1] - liczba " << std::endl; std::cout << " [2] - Rezygnacja " << std::endl; std::cin >> kolejnaliczba; if( std::cin.fail() || kolejnaliczba > 2 || kolejnaliczba < 0 ) { std::cout << " Nie ma takiej opcji ! " << std::endl; std::cin >> kolejnaliczba; ile--; } } while( kolejnaliczba > 2 || kolejnaliczba < 0 ); switch( kolejnaliczba ) { case 1: std::cout << " Wprowadz liczbe " << std::endl; int b; do { std::cin.clear(); std::cin.sync(); std::cin >> b; if( b == false ) { std::cout << " Podaj liczbe ! " << std::endl; } } while( !b == true ); return b; break; case 2: std::cout << " Zrezygnowales " << std::endl; return 0; break; } }
int main() { std::cout << " Witaj w kalkulatorze v3 " << std::endl; int a = wczytanieliczby(); int b = wczytaniedrugiejliczby(); wybierzdzialanie(); int dzialanie; do { std::cin >> dzialanie; if( std::cin.fail() || dzialanie > 5 || dzialanie < 1 ) { std::cout << " Nie ma takiej opcji " << std::endl; std::cin >> dzialanie; } } while( dzialanie < 5 || dzialanie > 1 ); switch( dzialanie ) { case 1: std::cout << "Dodawanie: " << a << " + " << b << " = " << a + b << std::endl; break; case 2: std::cout << "Odejmowanie: " << a << " - " << b << " = " << a - b << std::endl; break; case 3: std::cout << "Mnozenie: " << a << " * " << b << " = " << a * b << std::endl; break; case 4: std::cout << "Dzielenie: " << a << " / " << b << " = " << a / b << std::endl; break; case 5: std::cout << " Zrezygnowales " << std::endl; return 0; break; } return 0; }
|
|
mateczek |
» 2016-03-25 22:30:43 nie wyczyściłeś strumienia cin po błędnych danych!!! pozatym zobacz taki kalkulator #include <iostream> using namespace std;
int main() { cout << "podaj dzialanie w formie: " << endl << "liczba znak(+-*) liczba " << endl; int a, b; char znak; while( !( cin >> a >> znak >> b ) ) { cin.clear(); cin.sync(); cout << "zle dzialanie podaj jeszcze raz" << endl; } if( znak == '+' ) { cout << " = " << a + b << endl; } if( znak == '-' ) { cout << " = " << a - b << endl; } if( znak == '*' ) { cout << " = " << a * b << endl; } }
|
|
« 1 » |