Sttatisches Array und Switch-Case Anweisung



  • Servus C++ Community. Stehe gerade auf nem Schlauch bei der programmieren dieser Aufgabe. Wäre nett wenn ihr mir ein paar Denkanstöße geben könntet.

    Die Aufgabe:

    "Programmiere ein Menü zur Verwaltung eines statischen Arrays , bestehend aus
    Integer-Werten. Das Menü soll die folgende Funktionalität bereit stellen:

    'i' oder 'I' = Eingabe eines neuen Werts am Ende des bisher gefüllten Bereichs (zu
    Beginn in Feld 0). Wird dabei die Größe des Arrays überschritten erfolgt
    eine Fehlermeldung und die Aktion wird abgebrochen.
    's' oder 'S' = Gibt die Anzahl der belegten Felder aus.
    'o' oder 'O' = Gibt alle belegten Felder aus.
    'd' oder 'D' = Löscht das erste Element (Feld 0) und verschiebt alle Elemente um eine
    Stelle nach vorn. (Fehlermeldung falls der gefüllte Bereich leer ist).
    'q' oder 'Q' = Beendet das Programm"()

    Mein momentanes Programm sieht gerade so aus :

    #include <iostream>
    #include <cmath>
    using namespace std;
    
    int main() {
        int A[10]={0};
        char x;
        cin>>x;
    
        switch(x){
            case 'i' : ;
            case 'I' : cout<<"Noch einal eintippen bitte" << endl; 
                cin>>x;
                 if(x>10){cout<<"Wert des Arrays übershritten ";}
                break;
            case 's' : ;
            case 'S' : cout<< "Anzahl der Belegten Felder = " << sizeof(A)<<endl;
                break;
            default : cout << " Nochmal eingeben bitte ";
                cin>>x;
            }
    
    }
    

    Vielen Dank für eure Zeit.
    Nicht nötig zu sagen das ich eine Niete bin was das programmieren angeht.
    mfg
    gintex



  • Du hast vergessen eine Frage zu stellen.



  • manni66 schrieb:

    Du hast vergessen eine Frage zu stellen.

    Upps...

    1.Wie gebe ich alle belegten Felder eines Arrays raus ?
    2.Wie lösche ich das erste Feld und gebe eine Fehlermeldung aus falls mein der Bereich überschritten ist?



  • Gintex schrieb:

    1.Wie gebe ich alle belegten Felder eines Arrays raus ?

    Wie würdest du alle Felder ausgeben?
    Überlege dir, wie du ein Feld belegst. Was könntest du dir merken, um zu wissen, welche Felder belegt sind.

    2.Wie lösche ich das erste Feld und gebe eine Fehlermeldung aus falls mein der Bereich überschritten ist?

    Du löschst eigentlich nicht. Du schiebst nur alle anderen um "eins nach links".



  • manni66 schrieb:

    Gintex schrieb:

    1.Wie gebe ich alle belegten Felder eines Arrays raus ?

    Wie würdest du alle Felder ausgeben?
    Überlege dir, wie du ein Feld belegst. Was könntest du dir merken, um zu wissen, welche Felder belegt sind.

    2.Wie lösche ich das erste Feld und gebe eine Fehlermeldung aus falls mein der Bereich überschritten ist?

    Du löschst eigentlich nicht. Du schiebst nur alle anderen um "eins nach links".

    #include <iostream>
    #include <cmath>
    using namespace std;
    
    int main() {
        int A[10]={0};
        char x;
        cin>>x;
    
        switch(x){
            case 'i' : ;
            case 'I' : cout<<"Noch einal eintippen bitte" << endl; 
                cin>>x;
                 if(x>10){cout<<"Wert des Arrays übershritten ";}
                break;
    
            case 's' : ;
            case 'S' : cout<< "Anzahl der Belegten Felder = " << sizeof(A)<<endl;
                break;
    
            case 'o' : ;
            case 'O' : cout<< A[x] << " belegte Felder";
                break;
    
            case 'd' : ;
            case 'D' : 
                --A[0];
                ++A[x];
                break;
    
            default : cout << " Nochmal eingeben bitte ";
                cin>>x;
            }
    
    }
    

    Sieht wahrscheinlich nicht richtig aus, aber das wären meine Ansätze.



  • Also ich habe keine Hausaufgaben, ich muss mir daher auch keine Mühe geben.



  • manni66 schrieb:

    Also ich habe keine Hausaufgaben, ich muss mir daher auch keine Mühe geben.

    ok


Anmelden zum Antworten