C++ Lagerverwaltung vector probleme



  • Hey, ich habe eine Programm zur Lagerverwaltung geschrieben und will in der switch case 3, Artikel im vector verschieben, welches ich leider alleine nicht schaffe 😞 Wäre super könnte mir jemand dies erklären und die Lösung dazu zeigen!

    #include <iostream>
    #include <string>
    #include <vector>
    using namespace std;
    int menu()
    {
    int Menuwahl=0;

    cout << "Menu" << endl;
    cout << "1 -> Artikel einlagern" << endl;
    cout << "2 -> Artikel auslagern" << endl;
    cout << "3 -> Artikel verschieben" << endl;
    cout << "4 -> Liste von belegt und unbelegten Regalfaechern" << endl;
    cout << "5 -> Lager schliessen" << endl;
    cin >> Menuwahl;
    
    return Menuwahl;
    

    }

    int main()
    {
    int Menuanzeige = 0;
    string Artikel;
    int RegalNr = 0;
    vector <string> Regale(9);
    string Fachfrei = "";
    bool wiederholung = true;
    int Switch1;
    int Switch2;
    string SwitchItem;

    while (wiederholung == true)
    {
    
        Menuanzeige = menu();
    
        switch (Menuanzeige)
        {
        case 1 :
            cout << "In welchem Regal soll der Artikel eingelagert werden?" << endl;
            cin >> RegalNr;
            cout << "Wie heisst ihr Artikel?" << endl;
            cin >> Artikel;
            if(RegalNr < Regale.size())
            {
                Regale[RegalNr] = Artikel;
            }
            else
                Regale.push_back(Artikel);
            cout << "Ihr Artikel " << Artikel << " wurde im Regal " << RegalNr << " eingelagert..." << endl;
            break;
        case 2 :
            cout << "In welchem Regal soll der Artikel ausgelagert werden?" << endl;
            cin >> RegalNr;
            if(RegalNr < Regale.size())
            {
                Regale[RegalNr] = Fachfrei;
            }
            else
                Regale.push_back(Fachfrei);
            cout << "In dem Regal " << RegalNr << " befindet sich kein Artikel mehr..." << endl;
            break;
        case 3 :
            cout << "Regal in dem sich der Artikel befindet : " << endl;
            cin >> Switch1;
            cout << "Regal in welches er verschoben werden soll : " << endl;
            cin >> Switch2;
            cout << "Der Artikel aus Regal Nr." << Switch1 << " befindet sich jetzt in Regal Nr. " << Switch2 << endl;
            Regale[Switch1] = SwitchItem;
            Regale[Switch1] = Fachfrei;
            Regale[Switch2] = SwitchItem;
            break;
        case 4 :
            cout << "Lager : " << endl;
            for (int i=0;i < Regale.size();i++)
            {
                cout << Regale[i] << endl;
            }
            break;
        case 5 :
            cout << "Lagerproggramm schliesst..." << endl;
            wiederholung = false;
            return 0;
            break;
        }
    }
    return 0;
    

    }



  • @Sodatex sagte in C++ Lagerverwaltung vector probleme:

    Regale[Switch1] = SwitchItem;
    Regale[Switch1] = Fachfrei;
    Regale[Switch2] = SwitchItem;

    Soll das die Werte vertauschen? Denk mal drüber nach!



  • @Jockelx nein ich habe keine ahnung deshalb brauche ich eure Hilfe



  • Du willst etwas aus einem Fach rausnehmen und in ein anderes reinlegen. Du legst aber in beide Fächer etwas rein.



  • @manni66 neiun das "Fachfrei" cleart meinen vector an der Stelle



  • @Sodatex sagte in C++ Lagerverwaltung vector probleme:

    @manni66 neiun das "Fachfrei" cleart meinen vector an der Stelle

    Naja, wenn du´s doch besser weißt, wo ist dann dein Problem?



  • @DocShoe sorry, ich dachte das wäre so, ich weiß nur nicht warum ich kein Ergebniss bekomme und ich wollte das nic hso rüberkommen lassen als würde ich alles wissen



  • Aber deine erste Zeile ist falsch: aus Regal Switch1 willst du ja etwas auslesen, nicht reinschreiben!

    Im englischen nennt man diesen Vorgang swap, im deutschen Dreieckstausch.



  • @Th69 Also ich woltle den Artikelnamen erst von Switch1 auf das SwitchItem legen, um Switch1 dann zu clearen,um daraufhin den Betrag aus switchItem auf switch2 zu packen. Ich verstehe meinen Denkfehler nicht



  • @Sodatex

    Ich kann mir gar nicht vorstellen, was du glaubst was bei einer Zuweisung passiert.
    Dir ist schon klar, dass die Reihenfolge wichtig ist, was links und was rechts vom Gleichheitszeichen steht?



  • Mach mal Deine Augen zu!

    Jetzt stelle Dir ein Regal mit 2 Fächern vor.

    -> Regale[Switch1] = SwitchItem;
    ...Du stellst in das erste Fach ein neues Teil rein.
    -> Regale[Switch1] = Fachfrei;
    ...Du räumst dieses Fach leer

    ->Regale[Switch2] = SwitchItem;
    jetzt stellt Du dieses neue Teil ins zweite Fach.



  • @daMicha oh man ich bin echt blöd, dankeschön für eure Hilfe


Anmelden zum Antworten