Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Lekcja 17 - krotki program

Ostatnio zmodyfikowano 2019-11-21 00:31
Autor Wiadomość
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.  
#
C/C++
#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;
               
            } //switch na case 2
           
           
        } // case 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 3
       
    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;
       
       
    } //switch
   
    return 0;
   
   
}
#
P-175604
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ć :)
P-175611
zyzna
Temat założony przez niniejszego użytkownika
» 2019-11-19 16:55:30
dzięki za podpowiedz.
P-175612
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;

C/C++
enum
{
    DODAWANIE = 1,
    ODEJMOWANIE,
    MNOZENIE,
    DZIELENIE,
    REZYGNUJE
};
//...

switch( zadanie )
case DODAWANIE
: break;
case ODEJMOWANIE:
break;

Funkcja kalkulator niepotrzebnie zdublowana

C/C++
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

C/C++
//...
case 3:
for( int i = 0; i < /*ilosc powtorzen */; i++ )
{
    liczby_losowe();
}
P-175613
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ć.
C/C++
void countdown( int from ); // deklaracja "countdown"

int main() // definicja "main"
{
    countdown( 10 ); // uzycie "countdown"
}

void countdown( int from ) // definicja "countdown"
{
    for( int i = from; i >= 0; --i )
    {
        std::cout << i << std::endl;
    }
}
P-175614
zyzna
Temat założony przez niniejszego użytkownika
» 2019-11-21 00:31:48
Tak obecnie wygląda kod.
#
C/C++
#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: " );
            //= zadanie_2 ("Podaj 2 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;
               
               
            } //switch
           
           
        } break; // case 2
       
    case 3:
        for( int i = 0; i < 10; i++ )
        {
            zadanie_3();
        } break; //case 3
       
    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;
       
       
    } //switch
   
    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;
   
   
}
#
 
P-175633
« 1 »
  Strona 1 z 1