Lokale Strukturen



  • Hallo, ich versuche ein Programm zu schreiben, das das Volumen berechnet wird und das eine Funktion, für das eingeben, Löschen, ändern, anzeigen und auflisten alles in einer Funktion ist. Das Volumen zu berechnen denke ich mal habe ich hinbekommen. Nun ist mein Problem, um es zu verstehen wie lasse ich daten löschen usw. Soweit bin ich schon:

    #include "stdafx.h"

    using namespace System;

    struct kiste {
    Int32 breite;
    Int32 hoehe;
    Int32 laenge;
    };

    kiste einlesen(Int32 kistenNummer) {
    kiste aKiste;
    Console::Write("Geben Sie bitte die breite der {0} Kiste ein.\t", kistenNummer);
    aKiste.breite=Convert::ToInt32(Console::ReadLine());
    Console::Write("Geben Sie bitte die höhe der {0} Kiste ein.\t", kistenNummer);
    aKiste.hoehe=Convert::ToInt32(Console::ReadLine());
    Console::Write("Geben Sie bitte die länge der {0} Kiste ein.\t", kistenNummer);
    aKiste.laenge=Convert::ToInt32(Console::ReadLine());

    Console::WriteLine();
    return aKiste;
    }

    Int32 volumen (kiste aKiste) {
    Int32 volumenWert;
    volumenWert=aKiste.breite * aKiste.hoehe * aKiste.laenge;

    return volumenWert;
    }

    int main(array<System::String ^> ^args)

    {

    kiste klKiste[1];

    for (Int32 schleife=0; schleife<1; schleife++)
    klKiste[schleife]=einlesen(schleife+1);
    for (Int32 schleife=0; schleife<1; schleife++)
    Console::WriteLine("Das Volumen von der Kiste {0} ist {1}", schleife+1, volumen(klKiste[schleife]));

    return 0;
    }
    dann bin ich mir nicht sicher ob es loakl ist oder global??? Kann mir jemand von Euch wieder helfen???

    LG
    unerfahren



  • Ist ein Array mit genau einem Element nicht etwas widersinnig?

    Ansonsten: In einem normalen Array kannst du afaik nichts lösschen - die Größe wird bereits vom Compiler festgelegt. Du könntest die Elemente höchstens als ungültig markieren (in dem Beispiel geht das z.B. indem du eine negative Breite einsetzt) und so markierte Objekte beim Ausgeben ignorierst. Oder du schaust dich nach Containerklassen um, die bei Bedarf mitwachsen/schrumpfen können (C++ hat da vector<>, deque<>, list<>,... und ich bin sicher, daß es unter .NET etwas vergleichbares gibt).



  • z.B.:

    System::Collections::Generic::List<int> ^intList = gcnew System::Collections::Generic::List<int>;
      intList->Add(12);
    


  • Hallo und danke für deine Antowrt.
    Kann seind as ich es mit mehreren Elementen schreiben muß, aber ich habe eine totale blockade und finde nicht wirklich raus wie. Ich möchte ein Program schreiben, das die Daten der Kiste lediglich zu Laufzeit gespeichert werden und das max. 100 Kisten verwalten werden können. Also das Programm soll dieses können.
    1. eingabe einer neuen Kiste
    2. löschen der daten von einer vorhandennen Kiste
    3. ändern vond er vorhandenen Kiste
    4. anzeigen der kisten
    5. und anzeigen in Listingfunktion die alle kisten anzeigen lassen.

    Ich habe es im Moment nur soweit bekommen, das ich das Volumen ausrechen lassen kann einer kiste. Also gehe ich mal davon aus, das ich gewisse Elemente dazu brauche nur welche und wieviele?? Kannst du mir weiter helfen?? Oder jemand von Euch hier im Forum???

    LG
    unerfahren

    CStoll schrieb:

    Ist ein Array mit genau einem Element nicht etwas widersinnig?

    Ansonsten: In einem normalen Array kannst du afaik nichts lösschen - die Größe wird bereits vom Compiler festgelegt. Du könntest die Elemente höchstens als ungültig markieren (in dem Beispiel geht das z.B. indem du eine negative Breite einsetzt) und so markierte Objekte beim Ausgeben ignorierst. Oder du schaust dich nach Containerklassen um, die bei Bedarf mitwachsen/schrumpfen können (C++ hat da vector<>, deque<>, list<>,... und ich bin sicher, daß es unter .NET etwas vergleichbares gibt).



  • Hallo unerfahrener,

    wie kann man Dich persönlich kontaktieren?

    Kann Dir vielleicht helfen.
    😉



  • Naja, was spricht denn gegen die Liste, die Jochen vorgeschlagen hat ?



  • He das wäre super wenn du mri helfen könntest. Hier erst einmal meine Mailadresse alles weitere dann okay??? unerfahren_1@gmx.de. Schreibe einfach, wenn du mir wirklich helfen möchtet. Bin über jede Hilfe dankbar 🤡 LG

    schnudel schrieb:

    Hallo unerfahrener,

    wie kann man Dich persönlich kontaktieren?

    Kann Dir vielleicht helfen.
    😉



  • Dagegen sprciht nix, ich verstehe es nur nicht 😞 LG

    Knuddlbaer schrieb:

    Naja, was spricht denn gegen die Liste, die Jochen vorgeschlagen hat ?



  • Wie kann man mit einer Schleife diese Funktionen( Einlesen > Aendern > Anzeigen > Löschen > Auflisten ) immer wiederabrufen.
    Das Volumen der Kiste ist über die Strukturen eingeben und berechnet
    Die Übergabe von eingabe bzw eigelesenen Wert für die nächte Funktion ist zB:
    Int32 aenden() {
    zahl=2;
    return zahl;
    }

    Wie kann ich die Werte aus der Funktion "einlesen" an die Funktion "aendern" übergeben ?

    😕 😕 😕


Anmelden zum Antworten