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 STC 2. 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 » |