[Lekcja 15] Prośba o sprawdzenie zadania domowego (kalkulator)
Ostatnio zmodyfikowano 2011-08-30 21:09
SPARTANIN Temat założony przez niniejszego użytkownika |
» 2011-08-30 15:56:50 To kod mojego kalkulatora: #include <iostream> #include <conio.h>
using namespace std;
int main() { int wybor; float a; float b; char chce; cout << "#########################" << endl; cout << "## ##" << endl; cout << "## Kalkulator v0.02 ##" << endl; cout << "## by ##" << endl; cout << "## ..::SPARTANIN::.. ##" << endl; cout << "## ##" << endl; cout << "#########################" << endl; do { do { cout << "Wybierz dzialanie" << endl; cout << "1. Dodawanie" << endl; cout << "2. Odejmowanie" << endl; cout << "3. Mozenie" << endl; cout << "4. Dzielenie" << endl; cout << "5. Wylacz program" << endl; cin.clear(); cin.sync(); cin >> wybor; if( cin.fail() ) cout << "tu wpisujemy liczby, nie literki :)\n\n\n"; } while( !cin.good() ); switch( wybor ) { case 1: do { cout << "Podaj pierwsza liczbe: "; cin.clear(); cin.sync(); cin >> a; if( cin.fail() ) cout << "Podales litere/znak, a nie liczbe\n\n"; } while( !cin.good() ); do { cout << "Podaj druga liczbe: "; cin.clear(); cin.sync(); cin >> b; if( cin.fail() ) cout << "Podales litere/znak, a nie liczbe\n\n"; } while( !cin.good() ); cout << "Wynik: " << a + b << "\n\n" << endl; cout << "Czy chcesz cos jeszcze policzyc ? (T/N)\n"; cin.clear(); cin.sync(); cin >> chce; break; case 2: do { cout << "Podaj pierwsza liczbe: "; cin.clear(); cin.sync(); cin >> a; if( cin.fail() ) cout << "Podales litere/znak, a nie liczbe\n\n"; } while( !cin.good() ); do { cout << "Podaj podaj druga liczbe: "; cin.clear(); cin.sync(); cin >> b; if( cin.fail() ) cout << "Podales litere/znak, a nie liczbe\n\n"; } while( !cin.good() ); cout << "Wynik: " << a - b << "\n\n" << endl; cout << "Czy chcesz cos jeszcze policzyc ? {T/N) \n"; cin.clear(); cin.sync(); cin >> chce; cout << "\n\n\n"; break; case 3: do { cout << "Podaj pierwsza liczbe: "; cin.clear(); cin.sync(); cin >> a; if( cin.fail() ) cout << "Podales litere/znak, a nie liczbe\n\n"; } while( !cin.good() ); do { cout << "Podaj druga liczbe: "; cin.clear(); cin.sync(); cin >> b; if( cin.fail() ) cout << "Podales litere/znak, a nie liczbe\n\n"; } while( !cin.good() ); cout << "Wynik: " << a * b << "\n\n" << endl; cout << "Czy chcesz cos jeszcze policzyc ? (T/N)\n"; cin.clear(); cin.sync(); cin >> chce; cout << "\n\n\n"; break; case 4: do { cout << "Podaj pierwsza liczbe: "; cin.clear(); cin.sync(); cin >> a; if( cin.fail() ) cout << "Podales litere/znak, a nie liczbe\n\n"; } while( !cin.good() ); do { cout << "Podaj podaj druga liczbe: "; cin.clear(); cin.sync(); cin >> b; if( cin.fail() ) cout << "Podales litere/znak, a nie liczbe\n\n"; } while( !cin.good() ); cout << "Wynik: " << a / b << "\n\n" << endl; cout << "Czy chcesz cos jeszcze policzyc ? {T/N) \n"; cin.clear(); cin.sync(); cin >> chce; cout << "\n\n\n"; break; case 5: cout << "Czy napewno ? (T/N)\n"; cin.clear(); cin.sync(); cin >> chce; cout << "\n\n\n"; break; default: cout << "Muszisz wybrac jedna z opcji menu\n\n"; } } while( chce != 110, chce != 116 ); cout << " Dziekuje za skorzystanie z mojego kalkulatora\n\n\n"; cout << " Wcisnij dowolny klawisz aby zakonczyc dzialanie programu :)"; getch(); return 0; }
Dobrze zrobiłem ? P.S jeśli post pod postem jest jakimś błędem to proszę mnie poinformować lub połączyć ten post z poprzednim |
|
SeaMonster131 |
» 2011-08-30 16:19:02 Hm nie przyglądałem sie, ale pierwsze co sie w oczy rzuca to to - tak masz zbudowany program: WYBRANIE DZIALANIA Jeżeli działanie to 1 { wpisywanie liczby 1; wpisywanie liczby 2; wypisanie wyniku; } Jeżeli działanie to 2 { wpisywanie liczby 1; wpisywanie liczby 2; wypisanie wyniku; } Jeżeli działanie to 3 { wpisywanie liczby 1; wpisywanie liczby 2; wypisanie wyniku; } Czyli mógłbyś to skrócić do min czyli: WYBRANIE DZIALANIA wpisywanie liczby 1; wpisywanie liczby 2; Jeżeli działanie to 1 { wypisz wynik; } Jeżeli działanie to 2 { wypisz wynik; } 100x mniej kodu :) A po 2. tak: while( chce != 110, chce != 116 ); nie łączy się warunków. P.S jeśli post pod postem jest jakimś błędem to proszę mnie poinformować lub połączyć ten post z poprzednim |
Zawsze edytuj post, no chyba że temat jest jakiś starszy i już ciężko byłoby go znaleźć, to wtedy możesz zrobić taki @refresh :) |
|
SPARTANIN Temat założony przez niniejszego użytkownika |
» 2011-08-30 17:46:41 Napisałem w ten sposób gdyż podczas pisania kod był dla mnie bardziej przejrzysty. Tak w ogóle to czy to, że mam więcej linijek kodu wpływa jakoś na szybkość działania czy coś ? Mógłbyś mi podpowiedzieć jak połączyć te warunki aby było dobrze ? |
|
Ivian |
» 2011-08-30 17:51:11 Zależy czego używasz. Visual najprawdopodobniej to posegreguje. Aczkolwiek takie "duplikowanie" kodu powoduje, że rozrasta się on w pamięci.
|
|
SPARTANIN Temat założony przez niniejszego użytkownika |
» 2011-08-30 20:28:40 Używałem Visual C++ 2005 Express ale po reinstalce systemu zainstalowałem Code Blocks na próbę i szczerzepowiedziawszy bardziej przypadł mi on do gustu i przy pomocy Code Blocks kompilowałem ten kalkulator. Dzisiaj nieliczne osoby mają komputer który ma 64mb ram i procesor 300MHz by taki program mógł w jakiś sposób zmulić kompa więc wydaje mi się, że to nie robi jakiejś znaczącej różnicy w jaki sposób jest napisany. Dobra, biorę się za następną lekcje :) |
|
SeaMonster131 |
» 2011-08-30 21:09:51 Na dzisiejszych komputerach to różnicy nie ma.. Ale po co utrudniać sobie życie? :) Coś co można zapisać np w 20 liniach, Ty byś zapisał w 100? :) A dodam, że estetyka kodu była by ta sama, a więc ? ;) Nie mówie że zawsze tak jest, ale w większości przypadków to tak ;p |
|
1 « 2 » |