Lekcja 15 zadanie domowe - sugestie
Ostatnio zmodyfikowano 2012-06-21 19:46
Neadriel Temat założony przez niniejszego użytkownika |
Lekcja 15 zadanie domowe - sugestie » 2012-06-20 12:51:48 Witam, zrobiłem ten kalkulatorek i zastanawiam się czy nie nadprodukowałem trochę niepotrzebnego kodu albo czy coś da się zrobić inaczej... z góry dzięki za wszelkie uwagi. Napisz prosty kalkulator, który będzie potrafił dodawać, odejmować, mnożyć i dzielić. Program ten ma działać następująco: 1. Wypisuje obecny wynik 2. Wprowadź liczbę 3. Wybierz działanie (jeżeli liczba różna od 0) 4. Wykonaj obliczenia (jeżeli liczba różna od 0) 5. Wróć do kroku 1. 6. Jeżeli wprowadzoną liczbą jest 0, zakończ program. Przykładowe menu wyboru działania: [1] Dodawanie [2] Odejmowanie [3] Mnożenie [4] Dzielenie [5] Rezygnuj Zabezpiecz wcześniej napisany kalkulator przed podawaniem niepoprawnych liczb i operacji. Wykorzystaj wiedzę zdobytą z pierwszego zadania pracy domowej niniejszego rozdziału. Zabezpiecz również w analogiczny sposób przed możliwością wyboru nieprawidłowego działania. #include <iostream> int main() { float wynik = 0; float a; int rodz; bool s1; bool s2; bool s3; std::cout << "============witam w moim kalkulatorze=====================\n\n"; std::cout << "Start: " << wynik << std::endl; do { std::cin.clear(); std::cin.sync(); std::cout << "\nWprowadz liczbe poczatkowa: "; std::cin >> wynik; std::cout << std::endl; s1 = std::cin.good(); if( s1 == false ) std::cout << "Nie podales liczby\n"; } while( s1 == false ); do { do { std::cout << "\nWybierz rodzaj dzialania: " << std::endl; std::cout << "1. Dodawanie" << std::endl; std::cout << "2. Odejmowanie" << std::endl; std::cout << "3. Mnozenie" << std::endl; std::cout << "4. Dzielenie" << std::endl; std::cout << "5. Zakoncz\n" << std::endl; std::cout << "Twoj wybor to:"; std::cin.clear(); std::cin.sync(); std::cin >> rodz; s3 = std::cin.good(); if( s3 == false ) std::cout << "Nie podales prawidlowej liczby\n"; } while( s3 == false ); if( rodz != 5 ) { do { std::cin.clear(); std::cin.sync(); std::cout << "\n\nPodaj liczbe kolejna: "; std::cin >> a; std::cout << std::endl; s2 = std::cin.good(); if( s2 == false ) std::cout << "Nie podales prawidlowej liczby\n"; } while( s2 == false ); switch( rodz ) { case 1: std::cout << "\n=================nWynik = " <<( wynik += a ) << "\n=================" << std::endl; break; case 2: std::cout << "\n=================\nWynik = " <<( wynik -= a ) << "\n=================" << std::endl; break; case 3: std::cout << "\n=================\nWynik = " <<( wynik *= a ) << "\n=================" << std::endl; break; case 4: if( a == 0 ) std::cout << "\nTylko chuck Norris moze dzielic przez 0!" << std::endl; else std::cout << "\n=================\nWynik = " <<( wynik /= a ) << "\n=================" << std::endl; break; default: std::cout << "\nNie wybrales zadnego z powyzszych dzialan" << std::endl; break; } } else std::cout << "\n\nNarka!\n"; } while( rodz != 5 ); return 0; } |
|
Rafals |
» 2012-06-21 19:46:50 Witam. Jedyne jak Ci mogę pomóc to pokazać jak sam to rozwiązałem. Też dopiero co zacząłem swoją przygodę z C++. #include <iostream>
int main() { float a, b, dodaj, odejmij, pomnoz, podziel, wynik; int dzialanie; do { std::cout << "Podaj pierwsza liczbe: "; std::cin.clear(); std::cin.sync(); std::cin >> a; bool A = std::cin.good(); std::cout << "Podaj druga liczbe: "; std::cin.clear(); std::cin.sync(); std::cin >> b; bool B = std::cin.good(); if( A == true && B == true ) { do { std::cout << "\nWybierz dzialanie arytmetyczne:\n" << "[1] Dodawanie\n" << "[2] Odejmowanie\n" << "[3] Mnozenie\n" << "[4] Dzielenie\n" << "[0] Wyjscie\n"; std::cin.clear(); std::cin.sync(); std::cin >> dzialanie; switch( dzialanie ) { case 1: { wynik = a + b; std::cout << "\na + b = " << wynik << std::endl; break; } case 2: { wynik = a - b; std::cout << "\na - b = " << wynik << std::endl; break; } case 3: { wynik = a * b; std::cout << "\na * b = " << wynik << std::endl; break; } case 4: { if( b == 0 ) { std::cout << "\nNie dzielimy przez zero." << std::endl; break; } else { wynik = a / b; std::cout << "\na / b = " << wynik << std::endl; break; } } default: if( dzialanie == 0 ) break; else std::cout << "Wybrano niepoprawna opcje!"; } } while(( dzialanie > 4 ) ||( dzialanie < 0 ) ); } else { dzialanie = 1; std::cout << "'a' lub 'b' nie jest liczba\n"; } } while( dzialanie != 0 ); std::cout << "Kalkulator zakonczyl prace"; return 0; }
|
|
« 1 » |