zyzna Temat założony przez niniejszego użytkownika |
Lekcja 17 - krotki program » 2019-11-18 19:54:25 Witam wszystkich. Jakiś czas zacząłem kurs c++.I prosiłbym was żebyście mi powiedzieli co bym mógł tu poprawić,skrócić lub polepszyć żeby kod był bardziej przejrzysty. Z góry dziękuje. # #include <iostream> #include <cstdlib> #include <ctime>
using namespace std;
int Menu() { int zadanie; do { cout << "Wybierz zadanie: "; cin.clear(); cin.sync(); cin >> zadanie; if(( zadanie >= 5 ) ||( zadanie <= 0 ) ||( cin.fail() ) ) cout << "Ojj,Cos poszlo nie tak,Sproboj jeszcze raz." << endl; else if(( zadanie <= 4 ) ||( zadanie >= 1 ) ) cout << endl; } while(( zadanie >= 5 ) ||( zadanie <= 0 ) ||( cin.fail() ) ); return zadanie; }
int zadanie_1() { int liczba; do { cout << "Podaj liczbe: "; cin.clear(); cin.sync(); cin >> liczba; } while( cin.fail() ); return liczba; }
int kalkulator() { int liczba; do { cout << "Podaj 1 liczbe: "; cin.clear(); cin.sync(); cin >> liczba; if(( cin.fail() ) ||( liczba == 0 ) ) cout << "Ojj,Cos poszlo nie tak,Sproboj jeszcze raz." << endl; else cout << "Podano liczbe: " << liczba << endl; } while(( cin.fail() ) ||( liczba == 0 ) ); return liczba; }
int kalkulator_2() { int liczba_2; do { cout << "Podaj 2 liczbe: "; cin.clear(); cin.sync(); cin >> liczba_2; if(( cin.fail() ) ||( liczba_2 == 0 ) ) cout << "Ojj,Cos poszlo nie tak,Sproboj jeszcze raz." << endl; else cout << "Podano liczbe: " << liczba_2 << endl; } while(( cin.fail() ) ||( liczba_2 == 0 ) ); return liczba_2; }
int liczby_losowe() { int liczba_losowana; liczba_losowana =( rand() % 11 ) + 50; cout << "liczba wylosowana " << liczba_losowana << endl; }
int wylosuj( int start, int stop ) { int a =( rand() %( stop - start + 1 ) ) + start; }
int main() { srand( time( NULL ) ); int zadanie; cout << "Witaj mam nadzieje ze bedziesz sie dobrze bawil " << endl; cout << "[1] zadanie 1 " << endl; cout << "[2] zadanie 2" << endl; cout << "[3] zadanie 3" << endl; cout << "[4] zadanie 4" << endl; zadanie = Menu(); cout << "Wybrano " << zadanie << " zadanie" << endl; cout << endl; switch( zadanie ) { case 1: { int liczba; liczba = zadanie_1(); cout << "Liczba wynosi " << liczba; } break; case 2: { int liczba_2, liczba_3, wynik = 0, dzialanie; liczba_2 = kalkulator(); liczba_3 = kalkulator_2(); cout << "--------" << endl; cout << "[1] Dodawnaie " << endl; cout << "[2] Odejmowanie " << endl; cout << "[3] Mnozenie " << endl; cout << "[4] Dzieleni " << endl; cout << "[5] Rezygnije " << endl; cout << "-------------" << endl; cout << "Wybierz dzialanie: "; cin >> dzialanie; cout << "Wybrano " << dzialanie << " dzialanie" << endl; switch( dzialanie ) { case 1: cout << "Wynik: " << liczba_2 + liczba_3 << endl; break; case 2: cout << "Wynik: " << liczba_2 - liczba_3 << endl; break; case 3: cout << "Wynik: " << liczba_2 * liczba_3 << endl; break; case 4: if( liczba_2 == 0 ) cout << "Nie dzielimy przez zero" << endl; else cout << "Wynik: " << liczba_2 / liczba_3 << endl; break; case 5: cout << "Koniec Programu " << endl; exit( 0 ); default: cout << "Nie ma takiej opcji w menu,Sprobij jeszcze raz" << endl; liczba_2; } } case 3: { liczby_losowe(); liczby_losowe(); liczby_losowe(); liczby_losowe(); liczby_losowe(); liczby_losowe(); liczby_losowe(); liczby_losowe(); liczby_losowe(); liczby_losowe(); liczby_losowe(); liczby_losowe(); liczby_losowe(); liczby_losowe(); } break; case 4: { int start; cout << "Podaj 1 liczbe: "; cin >> start; int stop; cout << "Podaj 2 liczbe: "; cin >> stop; int ile = 20; do { cout << wylosuj( start, stop ) << endl; ile--; } while( ile > 0 ); } break; default: cout << "Nie ma takiej opcji w menu,Sproboj jeszcze raz! " << endl; cout << Menu(); break; } return 0; } # |
|
RazzorFlame |
» 2019-11-19 16:25:45 Myślę, że przede wszystkim powinieneś to wkleić między tagi [cpp](tutaj kod)[/cpp] Wtedy zostanie on ładnie tutaj na forum przedstawiony. Inaczej innym nie chce się nawet tego czytać :) |
|
zyzna Temat założony przez niniejszego użytkownika |
» 2019-11-19 16:55:30 dzięki za podpowiedz. |
|
Kamzar |
t » 2019-11-19 17:25:24 Po pierwsze w switchu spróbuj użyć typu wyliczeniowego enum, Napewno zwiększy czytelność, po drugie nie zapominaj dodawać break; enum { DODAWANIE = 1, ODEJMOWANIE, MNOZENIE, DZIELENIE, REZYGNUJE };
switch( zadanie ) case DODAWANIE : break; case ODEJMOWANIE: break;
Funkcja kalkulator niepotrzebnie zdublowana int kalkulator( std::string Tekst ) { int liczba; do { cout << Tekst; cin.clear(); cin.sync(); cin >> liczba; if(( cin.fail() ) ||( liczba == 0 ) ) cout << "Ojj,Cos poszlo nie tak,Sproboj jeszcze raz." << endl; else cout << "Podano liczbe: " << liczba << endl; } while(( cin.fail() ) ||( liczba == 0 ) ); return liczba; }
liczba_2 = kalkulator( "Podaj 1 liczbę: " ); liczba_3 = kalkulator( "Podaj 2 liczbę: " );
Używasz pętli do while to użyj i for case 3: for( int i = 0; i < ; i++ ) { liczby_losowe(); }
|
|
RazzorFlame |
» 2019-11-19 17:56:48 Użyj adekwatnych nazw. Skąd mam wiedzieć, co robi funkcja " kalkulator_1", albo " kalkulator_2". Znajdź takie nazwy, które coś faktycznie będą mówiły. No i najlepiej pisz kod w języku angielskim. Komentarze już jak tam chcesz. Użyj pętli, tak jak Kamzar zalecił. Dobrze w tym wypadku jest najpierw zadeklarować sobie funkcje przed mainem, potem zrobić definicję maina i pod spodem resztę definicji umieścić. void countdown( int from );
int main() { countdown( 10 ); }
void countdown( int from ) { for( int i = from; i >= 0; --i ) { std::cout << i << std::endl; } }
|
|
zyzna Temat założony przez niniejszego użytkownika |
» 2019-11-21 00:31:48 Tak obecnie wygląda kod. # #include <iostream> #include <cstdlib> #include <ctime>
using namespace std;
int Menu();
int zadanie_1();
int zadanie_2( string Tekst ); enum zadanie_2_1 { DODAWANIE, ODEJMOWANIE, MNOZENIE, DZIELENIE, REZYGNUJE };
int zadanie_3();
int zadanie_4( int start, int stop );
int main() { srand( time( NULL ) ); int zadanie; cout << "Witaj mam nadzieje ze bedziesz sie dobrze bawil " << endl; cout << "[1] zadanie 1 " << endl; cout << "[2] zadanie 2" << endl; cout << "[3] zadanie 3" << endl; cout << "[4] zadanie 4" << endl; zadanie = Menu(); cout << "Wybrano " << zadanie << " zadanie" << endl; cout << endl; switch( zadanie ) { case 1: { int liczba; liczba = zadanie_1(); cout << "Liczba wynosi " << liczba; } break; case 2: { int liczba, dzialanie, DODAWANIE, ODEJMOWANIE, DZIELENIE, MNOZENIE; liczba = zadanie_2( "Podaj 1 liczbe: " ); cout << "--------" << endl; cout << "[1] Dodawnaie " << endl; cout << "[2] Odejmowanie " << endl; cout << "[3] Mnozenie " << endl; cout << "[4] Dzieleni " << endl; cout << "[5] Rezygnije " << endl; cout << "-------------" << endl; cout << "Wybierz dzialanie: "; cin >> dzialanie; cout << "Wybrano " << dzialanie << " dzialanie" << endl; switch( dzialanie ) { case 1: DODAWANIE = zadanie_2( "Podaj 2 liczbe: " ); cout << "Wynik =" << liczba + DODAWANIE << endl; break; case 2: ODEJMOWANIE = zadanie_2( "Podaj 2 liczbe: " ); cout << "Wynik =" << liczba - ODEJMOWANIE << endl; break; case 3: MNOZENIE = zadanie_2( "Podaj 2 liczbe: " ); cout << "Wynik =" << liczba * MNOZENIE << endl; break; case 4: DZIELENIE = zadanie_2( "Podaj 2 liczbe: " ); cout << "Wynik =" << liczba / DZIELENIE << endl; break; case 5: cout << "Do Zobaczenia (; " << endl; exit( 0 ); break; default: cout << "Nie ma takiej opcji w menu,Sproboj jeszcze raz! " << endl; cout << Menu(); break; } } break; case 3: for( int i = 0; i < 10; i++ ) { zadanie_3(); } break; case 4: { int start; cout << "Podaj 1 liczbe: "; cin >> start; int stop; cout << "Podaj 2 liczbe: "; cin >> stop; int ile = 20; do { cout << zadanie_4( start, stop ) << endl; ile--; } while( ile > 0 ); } break; default: cout << "Nie ma takiej opcji w menu,Sproboj jeszcze raz! " << endl; cout << Menu(); break; } return 0; } int Menu() { int zadanie; do { cout << "Wybierz zadanie: "; cin.clear(); cin.sync(); cin >> zadanie; if(( zadanie >= 5 ) ||( zadanie <= 0 ) ||( cin.fail() ) ) cout << "Ojj,Cos poszlo nie tak,Sproboj jeszcze raz." << endl; else if(( zadanie <= 4 ) ||( zadanie >= 1 ) ) cout << endl; } while(( zadanie >= 5 ) ||( zadanie <= 0 ) ||( cin.fail() ) ); return zadanie; }
int zadanie_1() { int liczba; do { cout << "Podaj liczbe: "; cin.clear(); cin.sync(); cin >> liczba; } while( cin.fail() ); return liczba; }
int zadanie_2( string Tekst ) { int liczba; do { cout << Tekst; cin.clear(); cin.sync(); cin >> liczba; cout << endl; if(( cin.fail() ) ||( liczba == 0 ) ) cout << "Ojj,Cos poszlo nie tak,Sproboj jeszcze raz." << endl; else cout << "Podano liczbe: " << liczba << endl; cout << endl; } while(( cin.fail() ) ||( liczba == 0 ) ); return liczba; }
int zadanie_3() { int liczba_losowana; liczba_losowana =( rand() % 11 ) + 50; cout << "liczba wylosowana " << liczba_losowana << endl; }
int zadanie_4( int start, int stop ) { int a =( rand() %( stop - start + 1 ) ) + start; } # |
|
« 1 » |