Wie kann ich das Feld lagerraum an die Funktion anzeigen übergeben?



  • #include "stdafx.h"

    using namespace System;

    struct kiste {

    Single hoehe;
    Single breite;
    Single laenge;
    Single volumen;
    Int32 kistennummer;

    };

    kiste einlesen(Int32 kistenNummer) {

    kiste aKiste;

    Console::Write("\n\n__________Kisteneingabe__________");

    aKiste.kistennummer=kistenNummer;

    Console::Write("\n\nKiste: {0}", aKiste.kistennummer);

    Console::Write("\nHöhe: ");
    aKiste.hoehe=Convert::ToSingle(Console::ReadLine());

    Console::Write("\nBreite: ");
    aKiste.breite=Convert::ToSingle(Console::ReadLine());

    Console::Write("\nLänge: ");
    aKiste.laenge=Convert::ToSingle(Console::ReadLine());

    aKiste.volumen=aKiste.hoehe*aKiste.breite*aKiste.laenge;

    Console::Write("\n\nVolumen: {0}", aKiste.volumen);

    Console::Write("\n\n__________Kisteneingabe__________");

    return aKiste;

    }

    Void anzeigen(Single) {

    Int32 kistennummer, feldelement;

    Console::Write("\n\n__________Kistendaten__________");

    Console::WriteLine("Geben Sie eine Kistennummer ein: ");
    kistennummer=Convert::ToInt32(Console::ReadLine());

    Console::Write("\n\nKiste: {0}", kistennummer);

    feldelement=kistennummer-1;

    Console::Write("\nHöhe: {0}", lagerraum[feldelement].hoehe);
    Console::Write("\nBreite: {0}", lagerraum[feldelement].breite);
    Console::Write("\nLänge: {0}", lagerraum[feldelement].laenge);
    Console::Write("\n\nVolumen: {0}", lagerraum[feldelement].volumen);

    Console::Write("\n\n__________Kistendaten__________");

    }

    int main(array<System::String ^> ^args)
    {
    kiste lagerraum[100];

    for(Int32 schleife=0; schleife<=100; schleife++)
    lagerraum[schleife]=einlesen(schleife+1);

    return 0;
    }



  • Ich frage mich immer, warum man mit C++/CLi anfangen will?
    Wenn man noch nicht sehr viel programmiert hat, dann ist C++/CLI die völlig falsche Sprache!!
    Fang bitte mit C/C++ oder (noch besser) C# an... dann hast Du keine Probleme...

    ABer zur Frage:

    void anzeigen(kiste *lagerraum)
    

    übergeben mit

    anzeigen(lagerraum);
    


  • Dasselbe habe ich auch probiert ich bekomme aber 34 Fehler vom Compiler!

    .\einaus.cpp(7) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'einlesen'
    .\einaus.cpp(7) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    .\einaus.cpp(7) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    .\einaus.cpp(9) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'aKiste'
    .\einaus.cpp(9) : error C2065: 'aKiste': nichtdeklarierter Bezeichner
    .\einaus.cpp(13) : error C2065: 'aKiste': nichtdeklarierter Bezeichner
    .\einaus.cpp(13) : error C2228: Links von ".kistennummer" muss sich eine Klasse/Struktur/Union befinden.
    Typ ist ''unknown-type''
    .\einaus.cpp(15) : error C2065: 'aKiste': nichtdeklarierter Bezeichner
    .\einaus.cpp(15) : error C2228: Links von ".kistennummer" muss sich eine Klasse/Struktur/Union befinden.
    Typ ist ''unknown-type''
    .\einaus.cpp(18) : error C2065: 'aKiste': nichtdeklarierter Bezeichner
    .\einaus.cpp(18) : error C2228: Links von ".hoehe" muss sich eine Klasse/Struktur/Union befinden.
    Typ ist ''unknown-type''
    .\einaus.cpp(21) : error C2065: 'aKiste': nichtdeklarierter Bezeichner
    .\einaus.cpp(21) : error C2228: Links von ".breite" muss sich eine Klasse/Struktur/Union befinden.
    Typ ist ''unknown-type''
    .\einaus.cpp(24) : error C2065: 'aKiste': nichtdeklarierter Bezeichner
    .\einaus.cpp(24) : error C2228: Links von ".laenge" muss sich eine Klasse/Struktur/Union befinden.
    Typ ist ''unknown-type''
    .\einaus.cpp(26) : error C2065: 'aKiste': nichtdeklarierter Bezeichner
    .\einaus.cpp(26) : error C2228: Links von ".volumen" muss sich eine Klasse/Struktur/Union befinden.
    Typ ist ''unknown-type''
    .\einaus.cpp(26) : error C2065: 'aKiste': nichtdeklarierter Bezeichner
    .\einaus.cpp(26) : error C2228: Links von ".hoehe" muss sich eine Klasse/Struktur/Union befinden.
    Typ ist ''unknown-type''
    .\einaus.cpp(26) : error C2065: 'aKiste': nichtdeklarierter Bezeichner
    .\einaus.cpp(26) : error C2228: Links von ".breite" muss sich eine Klasse/Struktur/Union befinden.
    Typ ist ''unknown-type''
    .\einaus.cpp(26) : error C2065: 'aKiste': nichtdeklarierter Bezeichner
    .\einaus.cpp(26) : error C2228: Links von ".laenge" muss sich eine Klasse/Struktur/Union befinden.
    Typ ist ''unknown-type''
    .\einaus.cpp(28) : error C2065: 'aKiste': nichtdeklarierter Bezeichner
    .\einaus.cpp(28) : error C2228: Links von ".volumen" muss sich eine Klasse/Struktur/Union befinden.
    Typ ist ''unknown-type''
    .\einaus.cpp(32) : error C2065: 'aKiste': nichtdeklarierter Bezeichner
    .\einaus.cpp(50) : error C2065: 'lagerraum': nichtdeklarierter Bezeichner
    .\einaus.cpp(50) : error C2228: Links von ".hoehe" muss sich eine Klasse/Struktur/Union befinden.
    .\einaus.cpp(51) : error C2065: 'lagerraum': nichtdeklarierter Bezeichner
    .\einaus.cpp(51) : error C2228: Links von ".breite" muss sich eine Klasse/Struktur/Union befinden.
    .\einaus.cpp(52) : error C2065: 'lagerraum': nichtdeklarierter Bezeichner
    .\einaus.cpp(52) : error C2228: Links von ".laenge" muss sich eine Klasse/Struktur/Union befinden.
    .\einaus.cpp(53) : error C2065: 'lagerraum': nichtdeklarierter Bezeichner
    .\einaus.cpp(53) : error C2228: Links von ".volumen" muss sich eine Klasse/Struktur/Union befinden.
    Code wird generiert...
    Das Buildprotokoll wurde unter "file://d:\Programme\Microsoft Visual Studio 9.0\Microsoft Visual C++ 2008 Express Edition - DEU\Projekte\Versuchsreihe\Versuchsreihe\Debug\BuildLog.htm" gespeichert.
    Versuchsreihe - 34 Fehler, 0 Warnung(en)



  • Jochen Kalmbach schrieb:

    Ich frage mich immer, warum man mit C++/CLi anfangen will?
    Wenn man noch nicht sehr viel programmiert hat, dann ist C++/CLI die völlig falsche Sprache!!

    weil C++ (ggf.) das Maß der Dinge ist ... VisualStudio aber automatisch .NET anbietet ... also landen alle bei C++/CLI



  • Ändere mal

    struct kiste { 
    Single hoehe; 
    Single breite; 
    Single laenge; 
    Single volumen; 
    Int32 kistennummer; 
    };
    

    nach

    typedef struct kiste { 
    Single hoehe; 
    Single breite; 
    Single laenge; 
    Single volumen; 
    Int32 kistennummer; 
    } kiste;
    


  • mogel schrieb:

    weil C++ (ggf.) das Maß der Dinge ist ... VisualStudio aber automatisch .NET anbietet ... also landen alle bei C++/CLI

    Was wird hier *automatisch* angeboten? Es wird vielleicht *zusätzlich* angeboten aber nicht *automatisch*!
    Dass die Express-Variante C++/CLI kann, ist für mich sowieso ein Dorn im Auge 😉
    Vällig Sinnlos... ich kennen keine Anwendung wo dies benötigt werden würde...

    Es würde mehr sinn machen die MFC beizulegen und WinForms ganz zu streichen (was ja defakto schon gemacht wurde (ich meine das streichen)).



  • Leider 34 Fehler vom Compiler:

    .\einaus.cpp(7) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'einlesen'
    .\einaus.cpp(7) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    .\einaus.cpp(7) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    .\einaus.cpp(9) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'aKiste'
    .\einaus.cpp(9) : error C2065: 'aKiste': nichtdeklarierter Bezeichner
    .\einaus.cpp(13) : error C2065: 'aKiste': nichtdeklarierter Bezeichner
    .\einaus.cpp(13) : error C2228: Links von ".kistennummer" muss sich eine Klasse/Struktur/Union befinden.
    Typ ist ''unknown-type''
    .\einaus.cpp(15) : error C2065: 'aKiste': nichtdeklarierter Bezeichner
    .\einaus.cpp(15) : error C2228: Links von ".kistennummer" muss sich eine Klasse/Struktur/Union befinden.
    Typ ist ''unknown-type''
    .\einaus.cpp(18) : error C2065: 'aKiste': nichtdeklarierter Bezeichner
    .\einaus.cpp(18) : error C2228: Links von ".hoehe" muss sich eine Klasse/Struktur/Union befinden.
    Typ ist ''unknown-type''
    .\einaus.cpp(21) : error C2065: 'aKiste': nichtdeklarierter Bezeichner
    .\einaus.cpp(21) : error C2228: Links von ".breite" muss sich eine Klasse/Struktur/Union befinden.
    Typ ist ''unknown-type''
    .\einaus.cpp(24) : error C2065: 'aKiste': nichtdeklarierter Bezeichner
    .\einaus.cpp(24) : error C2228: Links von ".laenge" muss sich eine Klasse/Struktur/Union befinden.
    Typ ist ''unknown-type''
    .\einaus.cpp(26) : error C2065: 'aKiste': nichtdeklarierter Bezeichner
    .\einaus.cpp(26) : error C2228: Links von ".volumen" muss sich eine Klasse/Struktur/Union befinden.
    Typ ist ''unknown-type''
    .\einaus.cpp(26) : error C2065: 'aKiste': nichtdeklarierter Bezeichner
    .\einaus.cpp(26) : error C2228: Links von ".hoehe" muss sich eine Klasse/Struktur/Union befinden.
    Typ ist ''unknown-type''
    .\einaus.cpp(26) : error C2065: 'aKiste': nichtdeklarierter Bezeichner
    .\einaus.cpp(26) : error C2228: Links von ".breite" muss sich eine Klasse/Struktur/Union befinden.
    Typ ist ''unknown-type''
    .\einaus.cpp(26) : error C2065: 'aKiste': nichtdeklarierter Bezeichner
    .\einaus.cpp(26) : error C2228: Links von ".laenge" muss sich eine Klasse/Struktur/Union befinden.
    Typ ist ''unknown-type''
    .\einaus.cpp(28) : error C2065: 'aKiste': nichtdeklarierter Bezeichner
    .\einaus.cpp(28) : error C2228: Links von ".volumen" muss sich eine Klasse/Struktur/Union befinden.
    Typ ist ''unknown-type''
    .\einaus.cpp(32) : error C2065: 'aKiste': nichtdeklarierter Bezeichner
    .\einaus.cpp(50) : error C2065: 'lagerraum': nichtdeklarierter Bezeichner
    .\einaus.cpp(50) : error C2228: Links von ".hoehe" muss sich eine Klasse/Struktur/Union befinden.
    .\einaus.cpp(51) : error C2065: 'lagerraum': nichtdeklarierter Bezeichner
    .\einaus.cpp(51) : error C2228: Links von ".breite" muss sich eine Klasse/Struktur/Union befinden.
    .\einaus.cpp(52) : error C2065: 'lagerraum': nichtdeklarierter Bezeichner
    .\einaus.cpp(52) : error C2228: Links von ".laenge" muss sich eine Klasse/Struktur/Union befinden.
    .\einaus.cpp(53) : error C2065: 'lagerraum': nichtdeklarierter Bezeichner
    .\einaus.cpp(53) : error C2228: Links von ".volumen" muss sich eine Klasse/Struktur/Union befinden.



  • mogel schrieb:

    Jochen Kalmbach schrieb:

    Ich frage mich immer, warum man mit C++/CLi anfangen will?
    Wenn man noch nicht sehr viel programmiert hat, dann ist C++/CLI die völlig falsche Sprache!!

    weil C++ (ggf.) das Maß der Dinge ist ... VisualStudio aber automatisch .NET anbietet ... also landen alle bei C++/CLI

    Die Lagerverwaltungsgeschichte hatten wir hier schon öfters. Sie wird an einer Schule als Aufgabe verwendet. Meiner Meinung nach wird dort aus Unwissenheit C++/CLI unterrichtet.

    Simon



  • theta schrieb:

    Die Lagerverwaltungsgeschichte hatten wir hier schon öfters. Sie wird an einer Schule als Aufgabe verwendet. Meiner Meinung nach wird dort aus Unwissenheit C++/CLI unterrichtet.
    Simon

    Au weia... jett kommt es mir auch wieder....

    WAS ist denn das für eine Schule?



  • Fernschule, Hamburger Akademie

    Die machen ziemlich umständliche sachen, naja muss ich irgendwie durch



  • Wenn ich die Aufgabe mit Strukturhandles schreiben könnte oder das Feld global anlegen könnte wäre das natürlich um einiges einfacher



  • @ciq: Könntest Du bitte Codetags verwenden.
    In Deinem Code existiert keine Funktion "lagerraum", deswegen ist der Zugriff auch schwierig oder sogar unmöglich.

    Könnte auch sein, dass ich die Funktion überlesen habe.
    Dein Post ist ohne Codetags schwer zu lesen.

    Guck Dir mal dieses Bsp. an...

    http://www.c-plusplus.net/forum/viewtopic-var-t-is-234305-and-postdays-is-0-and-postorder-is-asc-and-highlight-is-kiste-and-start-is-10.html

    Gruß,

    Doug_HH



  • hi,

    wenn du mal auf deine Fehlerliste auf den ersten Fehler doppelt klickst, dann
    wird dir schon fast von alleine geholfen

    .\einaus.cpp(7) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'einlesen'

    struct kiste{
    	//int zeiger;
    	int id;
    	double breite;
    	double hoehe;
    	double laenge;
    };
    

    war so schon richtig

    beachte das Du einiges umschreiben musst

    int main(array<System::String ^> ^args)
    {
    	kiste feldkiste[100] = {0};//feld festlegen und auf null setzen
    	int taste = 0; //abfrage taste für programm beenden
    	//suchzeiger für freies Feld und freien Platz
    	do{ //schleife hauptprogramm
    		int freiesFeld = 0; 
    		int freierPlatz = 0;
    		for (int i = 99;i >= 0;i--){
    			if (feldkiste[i].id == 0){
    				freiesFeld = i;
    				freierPlatz++;
    			}
    		}
    		menu1();
    		menu2();
    		int eing = 0;
    		eing = menueing(eing);
    		bool pruefDatensatz = true; //pruef variable
    		int datensatz = 0; //variable für datensatz ändern/anzeigen
    		switch (eing){
    ......
    ......
    ......
    

    du solltest aber gerade diese Hefte recht ernst nehmen, deshalb sende ich nicht den ganzen Quelltext und Dir noch einige zusätzliche Literatur besorgen, die Hefte sind nicht Maß der Dinge. Ab Heft 7 wird dir genau dieses Wissen fehlen.

    greets



  • Hallo

    bin auch bei dieser Aufgabe. Suche fieberhaft nach guter zusatz Lektüre und finde schlecht welche. Kannst Du welche empfehlen fovfiper??

    Lieben Dank und besten Gruß

    champman



  • champman schrieb:

    Hallo

    bin auch bei dieser Aufgabe. Suche fieberhaft nach guter zusatz Lektüre und finde schlecht welche. Kannst Du welche empfehlen fovfiper??

    Lieben Dank und besten Gruß

    champman

    Gibt es die Aufgaben irgendwo online? Würde mich mal interessieren wie der Mist so aussieht. 😃


Log in to reply