Lekcja 15 cz2 uwagi
Ostatnio zmodyfikowano 2019-10-24 17:58
grotaczarka Temat założony przez niniejszego użytkownika |
Lekcja 15 cz2 uwagi » 2019-10-23 22:58:46 Czy wstawilem wszystkie zabezpieczenia w poprawny sposob? Za wszelkie uwagi dziękuje #include <iostream> #include <limits>
int main() { int a, b, dzialanie; bool blad1, blad2; do { std::cout << "\nKALKULATOR\n" << std::endl; std::cout << "Podaj pierwsza liczbe "; std::cin >> a; blad1 = std::cin.fail(); std::cin.clear(); std::cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' ); 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\n" << std::endl; std::cout << "Wybierz dzialanie" << std::endl; std::cin >> dzialanie; if( dzialanie >= 5 ) { std::cout << "Do widzenia"; return( 0 ); } std::cout << "Podaj druga liczbe "; std::cin >> b; blad2 = std::cin.fail(); std::cin.clear(); std::cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' ); switch( dzialanie ) { case 1: std::cout << a << "+" << b << " = " << a + b << std::endl; break; case 2: std::cout << a << "-" << b << " = " << a - b << std::endl; break; case 3: std::cout << a << "*" << b << " = " << a * b << std::endl; break; case 4: if( b == 0 ) { std::cout << "Nie dzielimy przez 0"; return( 0 ); } std::cout << a << "/" << b << " = " << a / b << std::endl; break; } } while( a != 0 ); return 0; }
|
|
pekfos |
» 2019-10-24 17:58:16 Zabezpieczenie powinno powstrzymywać użytkownika przed podaniem złych danych, a tu nic takiego nie ma miejsca. Wspomniane w zadaniu wykorzystanie wiedzy z pierwszego zadania trzeba potraktować bardzo dosłownie. Jeśli przeszkadza Ci kopiowanie kodu, to bardzo dobrze - lekcja 17 da odpowiednie narzędzia, by tego unikać. |
|
« 1 » |