lekcja 15 ,zadanie kalkulator
Ostatnio zmodyfikowano 2014-09-08 14:41
mortall Temat założony przez niniejszego użytkownika |
lekcja 15 ,zadanie kalkulator » 2014-09-01 17:57:53 Witam , ostatnio zrobiłem to zadanko ale nie wiem czy tak to miało wyglądać.Program jak najbardziej działa. Bardzo proszę o "rzucenie" okiem na mój kod i opinie na jego temat i podanie ewentualnych błędów. Z góry dziękuje za pomoc. #include <iostream> #include <cstdlib> using namespace std;
int main() { int a, g, h, liczba; string b, c, d, e, f; do { { b = "1. Dodawanie"; c = "2. Odejmowanie"; d = "3. Mnozenie"; e = "4. Dzielenie"; f = "5. Rezygnuj"; }; cout << " Oto prosty kalkulator \n"; cout << " Wybierz polecenie \n \n"; cout << b << "\n"; cout << c << "\n"; cout << d << "\n"; cout << e << "\n"; cout << f << "\n\n"; do { cout << " Wprowadz nr polecenia : "; cin.clear(); cin.sync(); cin >> a; if( cin.fail() ) { cout << "Prowadziles nieprawidlowy znak ! sprobuj ponownie " << endl; } } while( cin.fail() ); cout << " Wybrane dzialanie : "; switch( a ) { case 1: cout << " dodawanie" << endl; break; case 2: cout << " odejmowanie" << endl; break; case 3: cout << " mnozenie" << endl; break; case 4: cout << " dzielenie" << endl; break; case 5: cout << " rezygnuj" << endl; cout << " Dziekuje za kozystanie z programu . Dowidzenia "; return 0; break; }; cout << "\n"; do { cout << "Podaj pierwsza liczbe : "; cin.clear(); cin.sync(); cin >> g; if( cin.fail() ) { cout << " Podana znak nie jest liczba !!! \n" << endl; }; } while( cin.fail() ); cout << "\n"; do { cout << "Podaj druga liczbe : "; cin.clear(); cin.sync(); cin >> h; if( cin.fail() ) { cout << "Podaj liczbe !! \n" << endl; } } while( cin.fail() ); cout << "\n"; switch( a ) { case 1: cout << "wynik dzialania to : " << g << " + " << h << " = " << g + h; break; case 2: cout << "wynik dzialania to : " << g << " - " << h << " = " << g - h; break; case 3: cout << "Wynik dzialania to : " << g << " * " << h << " = " << g * h; break; case 4: cout << "Wynik dzialania to : " << g << " : " << h << " = " << g / h << " a reszta to : " << g % h; break; }; cout << "\n"; cout << "Aby wyjsc wcisnij '1' \n Aby dalej uzywac programu wcisnij '2' : "; cin.clear(); cin.sync(); cin >> liczba; if( liczba == 1 ) { cout << " Zacznijmy od poczatku \n"; }; if( liczba != 1 ) { cout << "Dziekuje za skorzystanie z programu. \n" << endl; }; system( "cls" ); } while( liczba != 1 ); return 0; }
|
|
Mateus. |
» 2014-09-01 18:19:49 Ten kod jest zbyt długi jak na takie coś (spróbuj go skrócić o połowę). Nie nazywaj też sobie zmiennych liczbowych int a, g, h; , a stringów string b, c, d, e, f; , ponieważ gdy będziesz operował na większej ilości zmiennych to takie nazewnictwo doprowadzi do wielu błędów i wydłuży pisanie samego kodu. Oczywiście takie nazywanie zmiennych: int liczba_numer_jeden_typu_int też nie ma sensu ;) |
|
Kazaname |
» 2014-09-08 12:15:12 Chciałbym się podpiąć pod temat kolegi i zapytać o opinie na temet mojego dzieła. #include <iostream>
using namespace std;
int main() { int liczba, koniec; int wynik = 0; int dzialanie; bool kontrola; do { cout << "Aktualny wynik: " << wynik << endl; cout << "Podaj liczbe: "; cin >> liczba; kontrola = cin.good(); cin.clear(); cin.sync(); if( liczba >= 1 && kontrola == 1 ) { do { cout << "Jakie dzialanie chcesz wykonac?" << endl; cout << "[1] Dodawanie" << endl; cout << "[2] Odejmowanie" << endl; cout << "[3] Mnozenie" << endl; cout << "[4] Dzielenie" << endl; cout << "[5] Koniec" << endl; cin >> dzialanie; kontrola = cin.good(); cin.clear(); cin.sync(); if( kontrola != 1 || dzialanie < 1 || dzialanie > 5 ) { cout << "Podane dzialanie jest niepoprawne. Sprobuj jeszcze raz." << "\n" << endl; } } while( kontrola == 0 ); { switch( dzialanie ) { case 1: wynik = wynik + liczba; break; case 2: wynik = wynik - liczba; break; case 3: wynik = wynik * liczba; break; case 4: wynik = wynik / liczba; break; } } } else { cout << "Podales niepoprawna wartosc. Czy chcesz zakonczyc dzialanie kalkulatora?" << endl; cout << "[0] Tak" << endl; cout << "[1] Nie" << endl; cin >> koniec; } } while( koniec != 0 && dzialanie != 5 ); cout << "Koniec" << endl; return 0; }
|
|
michal11 |
» 2014-09-08 13:49:41 Wasze programy są za bardzo skomplikowane i zagmatwane. Zresztą ten temat był juz ostatnio poruszany tu na forum w dziale nasze prace. Szablon takiego kalkulatora może wyglądać tak: bool dzialaj = true; double liczba1, liczba2; int opcja;
while( dzialaj ) { cin >> liczba1; cin >> liczba2; cin >> opcja; switch( opcja ) { case 1: break; case 2: break; case 3: break; case 4: break; case 5: dzialaj = false; break; default: } }
Wystarczy do tego dodać menu i obsługę błędów i gotowe. |
|
Mateus. |
» 2014-09-08 14:41:58 |
|
« 1 » |