Polecenie switch i case - zadanie

Witam :slight_smile:

Mam do napisania program w C++ wypisujący mój plan lekcji, używając polecenia switch i case.

Napisałam, lecz zawiera jakieś błedy i nie działa.

Czy ktoś mógłby to sprawdzić i poprawić :smiley:

#include

#include

#include

using namespace std;

int main ()

{

cout<< endl<< “PLAN LEKCJI” <

cout<< “Wybierz dzien, na który chcesz zobaczyć plan lekecji” <

cout<< “1. Poniedzialek” <

cout<< “2. Wtorek” <

cout<< “0. KONIEC PROGARMU” <

char wersja;

wersja=getch();

switch (wersja)

{

case ‘1’:

{

system (“cls”) ;

cout <

cout<< " 8:05- 8:50 informatyka" <

cout<< " 9:05- 9:50 informatyka" <

cout<< " 9:55-10:40 gografia" <

cout<< " 10:45-11:30 chemia" <

cout<< " 11:40-12:25 angielski" <

cout<< " 12:50-13:35 matematyka" <

cout<< " 13:45-14:30 polski" <

break;

}

}

{

case ‘2’:

{

system (“cls”) ;

cout <

cout<< " 8:05- 8:50 wos" <

cout<< " 9:05- 9:50 historia" <

cout<< " 9:55-10:40 biologia" <

cout<< " 10:45-11:30 matematyka" <

cout<< " 11:40-12:25 religia" <

cout<< " 12:50-13:35 niemiecki" <

cout<< " 13:45-14:30 polski" <

cout<< " 14:35-15:20 polski" <

break;

}

}

{

case’0’ :

{

cout<< “dziekuje za wspolna zabawe ! zapraszam ponownie !” ;

break;

}

cout<

if (wersja!=‘0’)

{

system (“pause”);

goto start;

}

return 0;

}

Przesadziłeś z nawiasami klamrowymi. Kolejnych “case” nie umieszcza się w klamrach.

Powinno być:

switch (wersja) {

case ‘1’:

system (“cls”) ;

cout <

cout<< " 8:05- 8:50 informatyka" <

cout<< " 9:05- 9:50 informatyka" <

cout<< " 9:55-10:40 gografia" <

cout<< " 10:45-11:30 chemia" <

cout<< " 11:40-12:25 angielski" <

cout<< " 12:50-13:35 matematyka" <

cout<< " 13:45-14:30 polski" <

break;

case ‘2’:

…itd.

na końcu jedno }

Czy ta końcówka jest dobrze? Bo poprawiłam, ale nadal nie działa :expressionless:

case’0’ :

{

cout<< “dziekuje za wspolna zabawe ! zapraszam ponownie !” ;

break;

}

cout<

if (wersja!=‘0’)

{

system (“pause”);

goto start;

}

return 0;

}

Patrząc na goto start rozumiem, że chcesz powrócić do początku wykonywania programu. Nie masz jednak takiej etykiety jak start. Efekt taki możesz osiągnąć np przez polecenie do while. Np tak:

#include 

#include 

#include 


using namespace std;


int main ()

{

char wersja;

do{ //tu rozpoczynasz pętle

cout<< endl<< "PLAN LEKCJI" <
cout<< "Wybierz dzien, na który chcesz zobaczyć plan lekecji" <
cout<< "1. Poniedzialek" <
cout<< "2. Wtorek" <
cout<< "0. KONIEC PROGARMU" <


wersja=getch();





switch (wersja)



{

case '1':


system ("cls") ;

cout <
cout<< " 8:05- 8:50 informatyka" <
cout<< " 9:05- 9:50 informatyka" <
cout<< " 9:55-10:40 gografia" <
cout<< " 10:45-11:30 chemia" <
cout<< " 11:40-12:25 angielski" <
cout<< " 12:50-13:35 matematyka" <
cout<< " 13:45-14:30 polski" <
break;





case '2':


system ("cls") ;

cout <
cout<< " 8:05- 8:50 wos" <
cout<< " 9:05- 9:50 historia" <
cout<< " 9:55-10:40 biologia" <
cout<< " 10:45-11:30 matematyka" <
cout<< " 11:40-12:25 religia" <
cout<< " 12:50-13:35 niemiecki" <
cout<< " 13:45-14:30 polski" <
cout<< " 14:35-15:20 polski" <
break;






case'0' :


cout<< "dziekuje za wspolna zabawe ! zapraszam ponownie !" ;

break;

}


cout<
system ("PAUSE");

}while (wersja!='0'); //tutaj pętla "do while" się kończy

return 0;

}

poprzez naciśniecie 0 chce zakończyć działanie programu,

więc jak zapisać tą końcówkę poprawnie ? :smiley:

np tak:

#include 

    #include 

    #include 


    using namespace std;


    int main ()

    {

    char wersja;

    do{ //tu rozpoczynasz pętle

    system ("cls");

    cout<< endl<< "PLAN LEKCJI" <
    cout<< "Wybierz dzien, na który chcesz zobaczyć plan lekecji" <
    cout<< "1. Poniedzialek" <
    cout<< "2. Wtorek" <
    cout<< "0. KONIEC PROGARMU" <


    wersja=getch();





    switch (wersja)



    {

    case '1':


    system ("cls") ;

    cout <
    cout<< " 8:05- 8:50 informatyka" <
    cout<< " 9:05- 9:50 informatyka" <
    cout<< " 9:55-10:40 gografia" <
    cout<< " 10:45-11:30 chemia" <
    cout<< " 11:40-12:25 angielski" <
    cout<< " 12:50-13:35 matematyka" <
    cout<< " 13:45-14:30 polski" <
    break;





    case '2':


    system ("cls") ;

    cout <
    cout<< " 8:05- 8:50 wos" <
    cout<< " 9:05- 9:50 historia" <
    cout<< " 9:55-10:40 biologia" <
    cout<< " 10:45-11:30 matematyka" <
    cout<< " 11:40-12:25 religia" <
    cout<< " 12:50-13:35 niemiecki" <
    cout<< " 13:45-14:30 polski" <
    cout<< " 14:35-15:20 polski" <
    break;






    case'0' :


    return 0;

    }


    cout<
   system ("pause>nul");

    }while (1); //zamiast while (wersja!='0')

    }

tyle, że napis dziękuję za zabawe … nie zostanie wyświetlony. Jeśli chcesz, aby był wyświetlony, to musisz dodać jakąś pauzę typu getch() czy system (“pause>nul”) np tak:

#include 

    #include 

    #include 


    using namespace std;


    int main ()

    {

    char wersja;

    do{ //tu rozpoczynasz pętle

    system ("cls");

    cout<< endl<< "PLAN LEKCJI" <
    cout<< "Wybierz dzien, na który chcesz zobaczyć plan lekecji" <
    cout<< "1. Poniedzialek" <
    cout<< "2. Wtorek" <
    cout<< "0. KONIEC PROGARMU" <


    wersja=getch();





    switch (wersja)



    {

    case '1':


    system ("cls") ;

    cout <
    cout<< " 8:05- 8:50 informatyka" <
    cout<< " 9:05- 9:50 informatyka" <
    cout<< " 9:55-10:40 gografia" <
    cout<< " 10:45-11:30 chemia" <
    cout<< " 11:40-12:25 angielski" <
    cout<< " 12:50-13:35 matematyka" <
    cout<< " 13:45-14:30 polski" <
    break;





    case '2':


    system ("cls") ;

    cout <
    cout<< " 8:05- 8:50 wos" <
    cout<< " 9:05- 9:50 historia" <
    cout<< " 9:55-10:40 biologia" <
    cout<< " 10:45-11:30 matematyka" <
    cout<< " 11:40-12:25 religia" <
    cout<< " 12:50-13:35 niemiecki" <
    cout<< " 13:45-14:30 polski" <
    cout<< " 14:35-15:20 polski" <
    break;






    case'0' :

    cout<< "dziekuje za wspolna zabawe ! zapraszam ponownie !" ;

    system ("pause>nul");

    return 0;


    }


    cout<
   system ("pause>nul");

    }while (1); //zamiast while (wersja!='0')

}
int main ()

dziekuje za pomoc :slight_smile: program działa :D:D:D