lekcja 17 - kalkulator.
Ostatnio zmodyfikowano 2012-09-11 08:14
kolomir Temat założony przez niniejszego użytkownika |
lekcja 17 - kalkulator. » 2012-09-10 23:08:32 Witam. W sumie od kilku dni zmagam się z C++. Napisałem mały programik - kalkulator - który działa (wydaje mi się że poprawnie) ale mam 2 małe pytanka: 1. Czy czasem nie poniosło mnie z kodem? Jakoś tak myślę że jest trochę obszerny. #include <iostream> #include <limits>
void moje_menu() { std::cout << "\n**************************\n"; std::cout << "Wybierz dzialanie: \n"; std::cout << " [1] dodawanie\n"; std::cout << " [2] odejmowanie\n"; std::cout << " [3] mnożenie\n"; std::cout << " [4] dzielenie\n\n"; std::cout << " [0] koniec\n"; }
bool sprawdzenie( int a ) { bool Sukces = std::cin.good(); std::cin.clear(); std::cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' ); return Sukces; }
int liczba() { int zmienna; std::cin >> zmienna; return zmienna; }
int main() { int koniec; int skok; int liczba_x; int liczba_a; int liczba_b; int wynik; koniec = 0; do { moje_menu(); std::cin >> skok; if( sprawdzenie( skok ) ) { if( skok > 0 ) { std::cout << "\n\n**********************************\n\n"; std::cout << "Podaj pierwsza liczbe: "; liczba_a = liczba(); std::cout << "\n\n**********************************\n\n"; std::cout << "Podaj druga liczbe: "; liczba_b = liczba(); if( sprawdzenie( liczba_a ) && sprawdzenie( liczba_b ) ) { switch( skok ) { case 1: wynik = liczba_a + liczba_b; std::cout << "\n************************************************" << std::endl; std::cout << "Wynik dodawania liczb: " << liczba_a << " + " << liczba_b << " = " << wynik << std::endl; std::cout << "************************************************" << std::endl; koniec = 1; break; case 2: wynik = liczba_a - liczba_b; std::cout << "\n************************************************" << std::endl; std::cout << "Wynik odejmowania liczb: " << liczba_a << " - " << liczba_b << " = " << wynik << std::endl; std::cout << "************************************************" << std::endl; koniec = 1; break; case 3: wynik = liczba_a * liczba_b; std::cout << "\n************************************************" << std::endl; std::cout << "Wynik mnozenia liczb: " << liczba_a << " * " << liczba_b << " = " << wynik << std::endl; std::cout << "************************************************" << std::endl; koniec = 1; break; case 4: wynik = liczba_a / liczba_b; std::cout << "\n************************************************" << std::endl; std::cout << "Wynik dzielenia liczb: " << liczba_a << " / " << liczba_b << " = " << wynik << std::endl; std::cout << "************************************************" << std::endl; koniec = 1; break; default: std::cout << "\n************************************************" << std::endl; std::cout << "Chyba dokonales zlego wyboru dzialania " << std::endl; std::cout << "************************************************" << std::endl; koniec = 1; break; } } else { std::cout << "\n******************************" << std::endl; std::cout << "* Musisz podać dwie liczby *" << std::endl; std::cout << "******************************" << std::endl; koniec = 1; } } else { koniec = 0; } } else { std::cout << "\n****************************************" << std::endl; std::cout << "* Poprawne sa tylko liczby *" << std::endl; std::cout << "****************************************" << std::endl; koniec = 1; } } while( koniec != 0 ); std::cout << "\n*********************" << std::endl; std::cout << "* Koniec programu *" << std::endl; std::cout << "*********************" << std::endl; return 0; }
2. Nie wiem dlaczego po podaniu 2 liczny muszę wcisnąć 2x enter. Oczywiście wszystko działa ale myślę że powinno zadziałać po jednokrotnym wciśnięciu entera. PS. Jeden z fajniejszych kursów jakie widziałem... Gratulacje. |
|
kubawal |
» 2012-09-11 08:14:24 1. Kod daj w [cpp]...[/cpp] i przeczytaj sobie Kurs STC2. Czy kod obszerny? Jeśli zdaje ci się, że masz za dużo kodu w jednym pliku, podziel sobie program na pliki main.cpp i funkcje.cpp. Nie zapomnij umieścić deklaracji funkcji w jakimś nagłówku, którego dołączasz do obu plików. Wiedz, że wszystkie profesjonalne programy składają się z wielu plików i bibliotek 3. bool sprawdzenie( int a ) { bool Sukces = std::cin.good(); std::cin.clear(); std::cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' ); return Sukces; }
|
Po co ci argument a, jak i tak go nie używasz? |
|
« 1 » |