Poprawa kalkulatora
Ostatnio zmodyfikowano 2012-06-11 17:31
VoyteQ Temat założony przez niniejszego użytkownika |
Poprawa kalkulatora » 2012-06-10 14:17:36 Jako że się uczę dopiero programować... czytam kurs ze strony ale coś nie mogę zajarzyć jednej rzeczy. Napisałem taki oto kalkulator. Jak go zapętlić żeby wracał po działaniu do początku? niby jest pętla while ale jak wrzucam ją w kod to mi błędy sypie... i druga rzecz jak go zabezpieczyć żeby np po wpisaniu litery zamiast cyfry dawał komunikat odpowiedni i wracał do ponownego wyboru. #include<iostream> #include<cstdlib> #include<cstdio>
using namespace std; int liczba1, liczba2, wynik, wynik2; int ile = 10; int main() { int liczba; cout << "======KALKULATOR======" << endl; cout << "1.Dodawanie" << endl; cout << "2.Odejmowanie" << endl; cout << "3.Mnożenie" << endl; cout << "4.Dzielenie" << endl; cout << "W celu wyjscia nacisnij inny dowolny klawisz" << endl; cin >> liczba; switch( liczba ) { case 1: cout << "podaj pierwsza liczbe" << endl; cin >> liczba1; cout << "podaj drugą liczbe" << endl; cin >> liczba2; wynik = liczba1 + liczba2; cout << "Wynik wynosi:" << wynik << endl; break; case 2: cout << "podaj pierwsza liczbe" << endl; cin >> liczba1; cout << "podaj drugą liczbe" << endl; cin >> liczba2; wynik = liczba1 - liczba2; cout << "Wynik wynosi:" << wynik << endl; break; case 3: cout << "podaj pierwsza liczbe" << endl; cin >> liczba1; cout << "podaj drugą liczbe" << endl; cin >> liczba2; wynik = liczba1 * liczba2; cout << "Wynik wynosi:" << wynik << endl; break; case 4: cout << "podaj pierwsza liczbe" << endl; cin >> liczba1; cout << "podaj drugą liczbe" << endl; cin >> liczba2; wynik = liczba1 / liczba2; wynik2 = liczba1 % liczba2; cout << "Wynik wynosi:" << wynik << "reszty: " << wynik2 << endl; break; } cout << "DO WIDZENIA" << endl; system( "pause" ); }
|
|
SeaMonster131 |
» 2012-06-10 14:34:46 niby jest pętla while ale jak wrzucam ją w kod to mi błędy sypie... |
Jakie błędy i gdzie ją "wrzucasz w kodzie" ? druga rzecz jak go zabezpieczyć żeby np po wpisaniu litery zamiast cyfry dawał komunikat odpowiedni i wracał do ponownego wyboru |
Instrukcja if, sprawdzenie to !cin.good() / cin.fail(), a wracanie to pętla np while :) |
|
VoyteQ Temat założony przez niniejszego użytkownika |
» 2012-06-10 15:04:02 pętle wstawiam przed switch a koncze po 4 case a dokładniej po break.
Może ktoś wstawić te rzeczy do kodu który wpisałem :( |
|
Netro |
» 2012-06-11 15:51:34 u mnie kod wygląda następująco: #include <iostream> using namespace std; int wczytajLiczbe1() { int a; bool x; do {
std::cin >> a; x=std::cin.good(); std::cin.clear(); std::cin.sync();
} while (x==0); return a; } int wczytajLiczbe2() { int b; bool x; do {
std::cin >> b; x=std::cin.good(); std::cin.clear(); std::cin.sync();
} while (x==0); return b; } int dodawanie(int a, int b) { return a + b; } int odejmowanie(int a, int b) { return a - b; } int mnozenie(int a, int b) { return a * b; } int dzielenie(int a, int b) { return a / b; } int main() { int x, suma, roznica, iloczyn, iloraz; do { cout << "Podaj pierwsza liczbe: "; int liczba1 = wczytajLiczbe1(); cout << endl << "Podaj druga liczbe: "; int liczba2 = wczytajLiczbe2();
cout << endl << " 1 - dodawanie " << endl << " 2 - odejmowanie " << endl << " 3 - mnozenie " << endl << " 4 - dzielenie " << endl; cout << "Podaj numer od 1 do 4, dla zadanego dzialania: "; cin >> x; switch(x) { case 1: suma=dodawanie(liczba1,liczba2); cout << "Suma podanych liczb " << liczba1 << " i " << liczba2 << " wynosi: " << suma << endl; break; case 2: roznica=odejmowanie(liczba1,liczba2); cout << "Roznica podanych liczb " << liczba1 << " i " << liczba2 << " wynosi: " << roznica << endl; break; case 3: iloczyn=mnozenie(liczba1,liczba2); cout << "Iloczyn podanych liczb " << liczba1 << " i " << liczba2 << " wynosi: " << iloczyn << endl; break; case 4: { if (liczba2 == 0) cout << "Nie dzielimy przez zero"; else iloraz=dzielenie(liczba1,liczba2); cout << "Iloraz podanych liczb " << liczba1 << " i " << liczba2 << " wynosi: " << iloraz << endl; break; } default: cout << "Nie podales liczby od 1 do 4" << endl; break; } }while(x>=1&&x<=4); return 0; }
|
|
Sparrow-hawk |
» 2012-06-11 17:31:21 Tak na szybko: #include<iostream> #include<cstdlib> #include<cstdio>
using namespace std; int liczba1, liczba2, wynik, wynik2, liczba; int ile = 10; int main() { do { system( "cls" ); cout << "======KALKULATOR======" << endl; cout << "1.Dodawanie" << endl; cout << "2.Odejmowanie" << endl; cout << "3.Mnozenie" << endl; cout << "4.Dzielenie" << endl; cout << "5.Koniec" << endl; cin >> liczba; switch( liczba ) { case 1: cout << "podaj pierwsza liczbe" << endl; cin >> liczba1; cout << "podaj druga liczbe" << endl; cin >> liczba2; wynik = liczba1 + liczba2; cout << "Wynik wynosi:" << wynik << endl; break; case 2: cout << "podaj pierwsza liczbe" << endl; cin >> liczba1; cout << "podaj druga liczbe" << endl; cin >> liczba2; wynik = liczba1 - liczba2; cout << "Wynik wynosi:" << wynik << endl; break; case 3: cout << "podaj pierwsza liczbe" << endl; cin >> liczba1; cout << "podaj druga liczbe" << endl; cin >> liczba2; wynik = liczba1 * liczba2; cout << "Wynik wynosi:" << wynik << endl; break; case 4: cout << "podaj pierwsza liczbe" << endl; cin >> liczba1; cout << "podaj druga liczbe" << endl; cin >> liczba2; wynik = liczba1 / liczba2; wynik2 = liczba1 % liczba2; cout << "Wynik wynosi:" << wynik << "reszty: " << wynik2 << endl; break; } system( "pause" ); } while( liczba != 5 ); cout << "DO WIDZENIA" << endl; system( "pause" ); }
|
|
« 1 » |