[Kurs C++, Lekcja 15] Prośba o sprawdzenia drugiego zadania
Ostatnio zmodyfikowano 2011-07-24 11:39
Lamerek Temat założony przez niniejszego użytkownika |
[Kurs C++, Lekcja 15] Prośba o sprawdzenia drugiego zadania » 2011-07-23 12:51:53 Czy zadanie 2 z rozdziału 15 jest dobrze zrobione? #include <iostream> int main() { using namespace std; float liczba; float liczba2; float c; int a1; int wynik; bool wczyt; c = 0; do { do { std::cin.clear(); std::cin.sync(); cout << "[1] Dodawanie" << endl; cout << "[2] Odejmowanie" << endl; cout << "[3] Mnozenie" << endl; cout << "[4] Dzielenie" << endl; cout << "[5] Rezygnuje" << endl; cout << endl; cout << "Obecny wynik: " << c << endl; cin >> a1; } while( 6 < a1 ); switch( a1 ) { case 1: do { std::cin.clear(); std::cin.sync(); cout << "Podaj liczbe:"; cin >> liczba; cout << endl; wczyt = cin.good(); } while( wczyt == 0 ); do { std::cin.clear(); std::cin.sync(); cout << "Podaj druga liczbe:"; cin >> liczba2; cout << endl; wczyt = cin.good(); } while( wczyt == 0 ); c = liczba + liczba2; cout << "Wynik: a+b=" << liczba << '+' << liczba2 << '=' << c << endl; break; case 2: do { std::cin.clear(); std::cin.sync(); cout << "Podaj liczbe:"; cin >> liczba; cout << endl; wczyt = cin.good(); } while( wczyt == 0 ); do { std::cin.clear(); std::cin.sync(); cout << "Podaj druga liczbe:"; cin >> liczba2; cout << endl; wczyt = cin.good(); } while( wczyt == 0 ); c = liczba - liczba2; cout << "Wynik: a-b=" << liczba << '-' << liczba2 << '=' << c << endl; break; case 3: do { std::cin.clear(); std::cin.sync(); cout << "Podaj liczbe:"; cin >> liczba; cout << endl; wczyt = cin.good(); } while( wczyt == 0 ); do { std::cin.clear(); std::cin.sync(); cout << "Podaj druga liczbe:"; cin >> liczba2; cout << endl; wczyt = cin.good(); } while( wczyt == 0 ); c = liczba * liczba2; cout << "Wynik: a*b=" << liczba << '*' << liczba2 << '=' << c << endl; break; case 4: do { std::cin.clear(); std::cin.sync(); cout << "Podaj liczbe:"; cin >> liczba; cout << endl; wczyt = cin.good(); } while( wczyt == 0 ); do { std::cin.clear(); std::cin.sync(); cout << "Podaj druga liczbe:"; cin >> liczba2; cout << endl; wczyt = cin.good(); } while( wczyt == 0 ); c = liczba / liczba2; cout << "Wynik: a/b=" << liczba << '/' << liczba2 << '=' << c << endl; break; case 5: cout << "Dziekuje za skorzystanie z programu. :)"; break; } } while( a1 <= 4 ); return 0; }
|
|
Thud |
» 2011-07-23 13:55:42 Powiem tak. Raczej działa: [1] Dodawanie [2] Odejmowanie [3] Mnozenie [4] Dzielenie [5] Rezygnuje
Obecny wynik: 0 1 Podaj liczbe:2r
Podaj druga liczbe:r2
Podaj druga liczbe:r2
Podaj druga liczbe:r2
Podaj druga liczbe:2
Wynik: a+b=2+2=4 [1] Dodawanie [2] Odejmowanie [3] Mnozenie [4] Dzielenie [5] Rezygnuje
Obecny wynik: 4 2 Podaj liczbe:3.33.3.3
Podaj druga liczbe:3
Wynik: a-b=3.33-3=0.33 [1] Dodawanie [2] Odejmowanie [3] Mnozenie [4] Dzielenie [5] Rezygnuje
Obecny wynik: 0.33 3 Podaj liczbe:3-3-3-3
Podaj druga liczbe:2.1
Wynik: a*b=3*2.1=6.3 [1] Dodawanie [2] Odejmowanie [3] Mnozenie [4] Dzielenie [5] Rezygnuje
Obecny wynik: 6.3 4 Podaj liczbe:ić spać
Podaj liczbe:dzięki stary
Podaj liczbe:dziaua
Podaj liczbe:2
Podaj druga liczbe:3.14
Wynik: a/b=2/3.14=0.636943 [1] Dodawanie [2] Odejmowanie [3] Mnozenie [4] Dzielenie [5] Rezygnuje
Obecny wynik: 0.636943 5 Dziekuje za skorzystanie z programu. :) Process returned 0 (0x0) execution time : 76.781 s Press any key to continue.
|
|
Lamerek Temat założony przez niniejszego użytkownika |
» 2011-07-23 14:41:21 To jak zrobic zeby nie można było wpisywać z literami i wieloma kropkami? Tak jak kolega wyżej to zrobił ^^?
Proszę o szybką pomoc.
|
|
Dark |
» 2011-07-23 15:48:11 Skorzystaj z funkcji cin.good() oraz cin.fail() (co wolisz) i postaw to sobie jako warunek zakończenia pętli gdy wpisujesz liczby, resztę powinieneś załapać a jak nie to przeczytaj rozdział kursu jeszcze raz, a jak nie pomoże to wróć do poprzednich |
|
Thud |
» 2011-07-23 16:54:50 Teoretycznie można zrobić jakiś parser - wczytujesz to co napisałeś jako string i wydzielasz z tego tylko znaki. |
|
Lamerek Temat założony przez niniejszego użytkownika |
» 2011-07-24 00:11:36 Kolego Dark ale warunkiem zakończenia wszystkich pętli w środku programu jest cin.good () więc nie wiem o co ci chodzi?
Może ktoś inny pomoże?
Może na tym poziomie wiedzy nie jestem w stanie zapobiec takim przypadkom. Proszę o odpowiedz |
|
jaupl |
» 2011-07-24 11:12:06 Jak dla mnie to zadanie jest poprawnie zrobione. Jedyne błędy to to że na początku używasz using namespace std; a potem piszesz przy poleceniach std:: co nie jest potrzebne. Oraz to że gdy wpiszesz 3.33.333.3 to liczba którą przyjmie program to 3.33 ale raczej nie jesteś w stanie tego zmienić, więc jest to czepianie się. BTW. Czy to jest trzeci temat do tego zadania którego jesteś autorem ?? Czy mi się tylko wydaje ?? ^^ |
|
SeaMonster131 |
» 2011-07-24 11:38:58 Czy to jest trzeci temat do tego zadania którego jesteś autorem ?? Czy mi się tylko wydaje ?? ^^ | Nie, nie wydaje Ci sie.... |
|
« 1 » 2 |