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

Błąd przy użyciu Switch`a w Switch`u

Ostatnio zmodyfikowano 2016-09-04 16:31
Autor Wiadomość
MarekInInternet
Temat założony przez niniejszego użytkownika
Błąd przy użyciu Switch`a w Switch`u
» 2016-09-04 16:22:40
Podczas próby uruchomienia kompilacji programu wyskakuje error, że nie można duplikować case`ów

C/C++
#include <iostream>
#include <windows.h>
#include <fstream>
#include <cstdlib>
#include <conio.h>
#include <string>

using namespace std;



int nieskonczonosc, x, zuch, harcerz, wedrownik, ochot, trop, pion, sam, ho, hr, i, j, k, wbr;
int nzw, prb, op, ak, data, czas, AK_licz, CZAS, dni, msc, rok, dni_rozp, msc_rozp, rok_rozp, przes, spr, NZW_licz;
string NZW, PRB, OP, DATA, AK;
string linia;
fstream DANE;
/*
nzw - nazwa stopnia proby
prb - probant
op - opiekun
AK - aktualny stopien 0-9
data - data otwarcia
czas - data zamkniecia
i & j - licznik
k - licznik ktorego nie zmieniac
wbr - wybor
_rozp - rozpoczęcia
przes - rok przestepny
spr - sprawdzenie poprawnisci odpowiedzi
AK_licz && NZW_licz - wybranie stopnia (potrzebne do switcha)
*/
int main()
{
    nieskonczonosc = 1;
    while( nieskonczonosc == 1 )
    {
        cout << endl << "MENU:" << endl;
        cout << "1.Tabelka" << endl;
        cout << "2.Edycja danych" << endl;
        cout << "3.Wyjście" << endl << endl << endl;
        cout << "Wprowadz wybor : ";
        cin >> x;
        switch( x )
        {
        case 1:
            {
                k = 1;
                while( k == 1 )
                {
                    //wczytywanie
                    system( "cls" );
                    DANE.open( "DANE.txt", ios::in );
                    if( DANE.good() == false )
                    {
                        cout << "Plik nie istnieje";
                    }
                    else
                    {
                        cout << "Wybierz próbanta by wyświetlić DANE" << endl << endl << endl;
                        cout << "Lista próbantów : " << endl;
                        i = 1;
                        j = 1;
                       
                        while( !DANE.eof() )
                        {
                            getline( DANE, linia );
                            if( j == 1 )
                            {
                                cout << i << "." << linia << endl;
                                i++;
                            }
                            if( j < 6 )
                            {
                                j++;
                            }
                            else
                            {
                                j = 1;
                            }
                           
                        }
                        cout << endl << endl << "Wybór : ";
                        cin >> wbr;
                       
                        system( "cls" );
                       
                        i = 1;
                        j = 1;
                        prb = wbr * 6 - 5;
                        ak = wbr * 6 - 4;
                        nzw = wbr * 6 - 3;
                        op = wbr * 6 - 2;
                        data = wbr * 6 - 1;
                        czas = wbr * 6;
                       
                        DANE.close();
                        DANE.open( "DANE.txt", ios::in );
                        while( !DANE.eof() )
                        {
                            getline( DANE, linia );
                            if( j == prb )
                            {
                                cout << "Imię i nazwisko : " << linia << endl;
                                DANE.close();
                                DANE.open( "DANE.txt", ios::in );
                                j = 1;
                                while( !DANE.eof() )
                                {
                                    getline( DANE, linia );
                                    if( j == ak )
                                    {
                                        cout << "Aktualny stopien : " << linia << endl;
                                        DANE.close();
                                        DANE.open( "DANE.txt", ios::in );
                                        j = 1;
                                        while( !DANE.eof() )
                                        {
                                            getline( DANE, linia );
                                            if( j == nzw )
                                            {
                                                cout << "Próba na : " << linia << endl;
                                                DANE.close();
                                                j = 1;
                                                DANE.open( "DANE.txt", ios::in );
                                                while( !DANE.eof() )
                                                {
                                                    getline( DANE, linia );
                                                    if( j == op )
                                                    {
                                                        cout << "Opiekun : " << linia << endl;
                                                        DANE.close();
                                                        j = 1;
                                                        DANE.open( "DANE.txt", ios::in );
                                                        while( !DANE.eof() )
                                                        {
                                                            getline( DANE, linia );
                                                            if( j == data )
                                                            {
                                                                cout << "Data otwarcia : " << linia << endl;
                                                                DANE.close();
                                                                j = 1;
                                                                DANE.open( "DANE.txt", ios::in );
                                                                while( !DANE.eof() )
                                                                {
                                                                    getline( DANE, linia );
                                                                    if( j == czas )
                                                                    {
                                                                        cout << "Data zamknięcia : " << linia << endl;
                                                                        DANE.close();
                                                                        goto stop;
                                                                    }
                                                                    else
                                                                    {
                                                                        j++;
                                                                    }
                                                                }
                                                            }
                                                            else
                                                            {
                                                                j++;
                                                            }
                                                        }
                                                    }
                                                    else
                                                    {
                                                        j++;
                                                    }
                                                }
                                            }
                                            else
                                            {
                                                j++;
                                            }
                                        }
                                    }
                                    else
                                    {
                                        j++;
                                    }
                                }
                            }
                            else
                            {
                                j++;
                            }
                        }
                    }
                    stop:
                    cout << endl << endl << "0 by wrócić do MENU" << endl << "1 by wrócić do SPISU" << endl << "Wybór : ";
                    cin >> k;
                   
                    system( "cls" );
                }
                break;
            }
        case 2:
            {
                //zapisywanie
                system( "cls" );
                DANE.open( "DANE.txt", ios::out | ios::app );
                cout << "Wprowadz imię i nazwisko próbanta :";
                cin >> PRB;
                DANE << endl << PRB << endl;
                system( "cls" );
                do
                {
                    cout << endl << "Wprowadz aktualny stopień : " << endl;
                    cout << "0.Brak" << endl;
                    cout << "1.Zucha" << endl;
                    cout << "2.Harcerza" << endl;
                    cout << "3.Naramiennik Wędrowniczy" << endl;
                    cout << "4.Ochot./Mł." << endl;
                    cout << "5.Trop./Wyw." << endl;
                    cout << "6.Pion./Odkr." << endl;
                    cout << "7.Sam./Ćw." << endl;
                    cout << "8.HO" << endl;
                    cout << "9.HR" << endl;
                    cout << endl << "Wybór : ";
                    cin >> AK_licz;
                    switch( AK_licz )
                    {
                    case 1:
                        {
                            AK = "Zuch";
                            spr = 0;
                            break;
                        }
                    case 2:
                        {
                            AK = "Harcerz";
                            spr = 0;
                            break;
                        }
                    case 3:
                        {
                            AK = "Naramiennik Wędrowniczy";
                            spr = 0;
                            break;
                        }
                    case 4:
                        {
                            AK = "Ochot./Mł.";
                            spr = 0;
                            break;
                        }
                    case 5:
                        {
                            AK = "Trop./Wyw.";
                            spr = 0;
                            break;
                        }
                    case 6:
                        {
                            AK = "Pion./Odkry.";
                            spr = 0;
                            break;
                        }
                    case 7:
                        {
                            AK = "Sam./Ćw.";
                            spr = 0;
                            break;
                        }
                    case 8:
                        {
                            AK = "HO";
                            spr = 0;
                            break;
                        }
                    case 9:
                        {
                            AK = "HR";
                            spr = 0;
                            break;
                        }
                    case 0:
                        {
                            AK = "Brak";
                            spr = 0;
                            break;
                        }
                        default:
                        {
                            system( "cls" );
                            cout << endl << "Wprowadz aktualny stopień : " << endl;
                            cout << "0.Brak" << endl;
                            cout << "1.Zucha" << endl;
                            cout << "2.Harcerza" << endl;
                            cout << "3.Wędrownika(Naramiennik)" << endl;
                            cout << "4.ochot./mł." << endl;
                            cout << "5.trop./wyw." << endl;
                            cout << "6.pion./odkr." << endl;
                            cout << "7.sam./ćw." << endl;
                            cout << "8.HO" << endl;
                            cout << "9.HR" << endl;
                            cout << endl << "Wybór : BŁĘNY WYBÓR !";
                            Sleep( 1500 );
                            system( "cls" );
                            spr = 1;
                            break;
                        }
                    }
                }
                while( spr == 1 );
               
                DANE << AK << endl;
                system( "cls" );
                do
                {
                    cout << endl << "Wprowadz stopień na który zdaje próbant : " << endl;
                    cout << "1.Zucha" << endl;
                    cout << "2.Harcerza" << endl;
                    cout << "3.Naramiennik Wędrowniczy" << endl;
                    cout << "4.Ochot./Mł." << endl;
                    cout << "5.Trop./Wyw." << endl;
                    cout << "6.Pion./Odkr." << endl;
                    cout << "7.Sam./Ćw." << endl;
                    cout << "8.HO" << endl;
                    cout << "9.HR" << endl;
                    cout << "Wybór : ";
                    cin >> NZW_licz;
                    switch( NZW_licz );
                    {
                    case 1:
                        {
                            NZW = "Zuch";
                            spr = 0;
                            break;
                        }
                    case 2:
                        {
                            NZW = "Harcerz";
                            spr = 0;
                            break;
                        }
                    case 3:
                        {
                            NZW = "Naramiennik Wędrowniczy";
                            spr = 0;
                            break;
                        }
                    case 4:
                        {
                            NZW = "Ochot./Mł.";
                            spr = 0;
                            break;
                        }
                    case 5:
                        {
                            NZW = "Trop./Wyw.";
                            spr = 0;
                            break;
                        }
                    case 6:
                        {
                            NZW = "Pion./Odkr.";
                            spr = 0;
                            break;
                        }
                    case 7:
                        {
                            NZW = "Sam./Ćw.";
                            spr = 0;
                            break;
                        }
                    case 8:
                        {
                            NZW = "HO";
                            spr = 0;
                            break;
                        }
                    case 9:
                        {
                            NZW = "HR";
                            spr = 0;
                            break;
                        }
                        default:
                        {
                            system( "cls" );
                            cout << endl << "Wprowadz stopień na który zdaje próbant : " << endl;
                            cout << "1.Zucha" << endl;
                            cout << "2.Harcerza" << endl;
                            cout << "3.Wędrownika(Naramiennik)" << endl;
                            cout << "4.ochot./mł." << endl;
                            cout << "5.trop./wyw." << endl;
                            cout << "6.pion./odkr." << endl;
                            cout << "7.sam./ćw." << endl;
                            cout << "8.HO" << endl;
                            cout << "9.HR" << endl;
                            cout << "Wybór : BŁĘNY WYBÓR !";
                            Sleep( 1500 );
                            system( "cls" );
                            spr = 1;
                            break;
                        }
                    }
                }
                while( spr == 1 );
               
                DANE << NZW << endl;
                system( "cls" );
                cout << endl << "Wprowadz Imię i Nazwisko opiekuna próby : ";
                cin >> OP;
                DANE << OP << endl;
                system( "cls" );
                cout << endl << "Wprowadz rok rozpoczęcia próby : ";
                cin >> rok_rozp;
                if( rok_rozp % 4 == 0 )
                {
                    przes = 1;
                }
                else
                {
                    przes = 0;
                }
                cout << endl << "Wprowadz miesiąc rozpoczęcia próby : ";
                cin >> msc_rozp;
                cout << endl << "Wprowadz dzień rozpoczęcia próby : ";
                cin >> dni_rozp;
                DANE << DATA << endl;
                DANE.close();
                system( "cls" );
                break;
            }
        case 3:
            {
                exit( 0 );
            }
            default:
            {
                system( "cls" );
                cout << endl << "MENU:" << endl;
                cout << "1.Tabelka" << endl;
                cout << "2.Edycja danych" << endl;
                cout << "3.Wyjście" << endl << endl << endl;
                cout << "Wprowadz wybor : Błędny wobór";
                Sleep( 1500 );
                system( "cls" );
                break;
            }
        }
    }
    return 0;
}

Logi :


||=== Build: Debug in HARC (compiler: GNU GCC Compiler) ===|
C:\Users\Marek_PC\Dropbox\c++\HARC\main.cpp||In function 'int main()':|
C:\Users\Marek_PC\Dropbox\c++\HARC\main.cpp|323|error: duplicate case value|
C:\Users\Marek_PC\Dropbox\c++\HARC\main.cpp|45|error: previously used here|
C:\Users\Marek_PC\Dropbox\c++\HARC\main.cpp|329|error: duplicate case value|
C:\Users\Marek_PC\Dropbox\c++\HARC\main.cpp|196|error: previously used here|
C:\Users\Marek_PC\Dropbox\c++\HARC\main.cpp|425|error: duplicate case value|
C:\Users\Marek_PC\Dropbox\c++\HARC\main.cpp|335|error: previously used here|
C:\Users\Marek_PC\Dropbox\c++\HARC\main.cpp|429|error: multiple default labels in one switch|
C:\Users\Marek_PC\Dropbox\c++\HARC\main.cpp|377|error: this is the first default label|
||=== Build failed: 8 error(s), 0 warning(s) (0 minute(s), 2 second(s)) ===|
P-151428
kistel66
» 2016-09-04 16:29:43
Bo nie można duplikować case'ów.
Albo ustawiasz w drugim switchu inny numer, albo zamieniasz to NZW_licz na typ
char
 i wtedy w switchu robisz coś takiego:
C/C++
case '1':
//coś tam
break;
P-151429
MarekInInternet
Temat założony przez niniejszego użytkownika
Dzięki :D
» 2016-09-04 16:31:14
Dzięki za szybką odpowiedz :D

Do zamknięcia
P-151430
« 1 »
  Strona 1 z 1