none
c# code probleme RRS feed

  • Allgemeine Diskussion

  • Hallo, und zwar hab ich folgendes Problem.

    ich muss in c# ein Programm schreiben , eine Lagerverwaltung. Ein Freund hat mir dabei geholfen, da er nur c++ beherrscht, hat er das Prog in c++  geschrieben, jetzt versuche ich den c++ code in c# zu übersetzten, aber irgend wie klappt das nicht. ich hab dann extrem viele Fehler. Vielleicht kann mir hier einer helfen.

    Es wäre echt sehr hilfreich wenn mir einer den c++ code ins c# übersetzt. Danke im vorraus.

    Hier ist der c++ code:


    #include "stdafx.h" 


    using namespace System; 

    //Legt für das Programm die maximal Anzahl an zu verwalteten Kisten fest 
    const Int32 MAXKISTEN = 100; 



    struct kistenlager 

        Int32 kistennummer; 
        Int32 aktiv; 
        Int32 hoehe; 
        Int32 laenge; 
        Int32 breite; 
        Int32 volumen; 
    }; 

    //Funktionsdeklarationen******************************************************************* 
    //Alle Funktionen sind für das Management des Kistenlagers zuständig und greifen auf die Struktur “kistenlager” zu 

    Void kisteAnlegen(kistenlager kisten[MAXKISTEN]) 

        for(Int32 i=0;i<MAXKISTEN;i++) 
        { 
            if(kisten[i].aktiv==0) 
            { 
            Console::WriteLine("Geben sie bitte die Höhe der Kiste ein"); 
            kisten[i].hoehe = Convert::ToInt32(Console::ReadLine()); 
            
            Console::WriteLine("Geben sie bitte die Breite der Kiste ein"); 
            kisten[i].breite = Convert::ToInt32(Console::ReadLine()); 
            
            Console::WriteLine("Geben sie bitte die Länge der Kiste ein"); 
            kisten[i].laenge = Convert::ToInt32(Console::ReadLine()); 

            kisten[i].aktiv = 1; 
            kisten[i].volumen = kisten[i].hoehe * kisten[i].breite * kisten[i].laenge; 
            break;        
            } 
            else 
                Console::WriteLine("Keine Kiste mehr frei"); 
        } 


    Void anzeigen(kistenlager kisten[MAXKISTEN]) 

        Int32 nummer; 
        Console::WriteLine("Welche Kiste wollen sie Anzeigen? Geben sie eine Nummer von 1-100 ein!"); 
        nummer = Convert::ToInt32(Console::ReadLine()) -1 ; 
        if(nummer <= 100 && nummer >= 0) 
        { 
        if(kisten[nummer].aktiv==1) 
        Console::WriteLine("Kistennummer: {0} > Höhe: {1},Breite: {2}, Länge: {3},Volumen: {4}",kisten[nummer].kistennummer,kisten[nummer].hoehe, kisten[nummer].breite, kisten[nummer].laenge, kisten[nummer].volumen); 
        else 
        Console::WriteLine("Kistennummer: {0} NICHT BELEGT",kisten[nummer].kistennummer); 
        } 
        else 
            Console::WriteLine("Inkorrekte Eingabe\n"); 


    Void löschen(kistenlager kisten[MAXKISTEN]) 

        Int32 nummer; 
        Console::WriteLine("Welche Kiste wollen sie löschen? Geben sie eine Nummer von 1-100 ein!"); 
        nummer = Convert::ToInt32(Console::ReadLine()) -1 ; 
        
        if(nummer <= 100 && nummer >= 0) 
        { 
        if(kisten[nummer].aktiv==0) 
            { 
                Console::WriteLine("Die Kiste ist bereits gelöscht"); 
            } 
        if(kisten[nummer].aktiv==1) 
            {    
                kisten[nummer].aktiv=0; 
                kisten[nummer].hoehe=0; 
                kisten[nummer].breite=0; 
                kisten[nummer].laenge=0; 
                kisten[nummer].volumen=0; 
                Console::WriteLine("Kistennummer: {0} GELÖSCHT",kisten[nummer].kistennummer); 
            } 
        } 
        else 
            Console::WriteLine("Inkorrekte Eingabe"); 



    Void ändern(kistenlager kisten[MAXKISTEN]) 

            Int32 nummer; 
            Console::WriteLine("Welche Kiste wollen sie ändern? Geben sie eine Nummer von 1-100 ein!"); 
            nummer = Convert::ToInt32(Console::ReadLine()) -1 ; 
            if(nummer <= 100 && nummer >= 0) 
        { 
            if(kisten[nummer].aktiv==1) 
            { 
            Console::WriteLine("Geben sie bitte die Höhe der Kiste ein"); 
            kisten[nummer].hoehe = Convert::ToInt32(Console::ReadLine()); 
            
            Console::WriteLine("Geben sie bitte die Breite der Kiste ein"); 
            kisten[nummer].breite = Convert::ToInt32(Console::ReadLine()); 
            
            Console::WriteLine("Geben sie bitte die Länge der Kiste ein"); 
            kisten[nummer].laenge = Convert::ToInt32(Console::ReadLine()); 

            kisten[nummer].volumen = kisten[nummer].hoehe * kisten[nummer].breite * kisten[nummer].laenge; 
            } 
            else 
                Console::WriteLine("Die Kiste existiert nicht"); 
            } 
            else 
            Console::WriteLine("Inkorrekte Eingabe"); 
                




    Void listAll(kistenlager kisten[MAXKISTEN]) 

    for(Int32 i=0;i<MAXKISTEN;i++) 
        { 
            if(kisten[i].aktiv == 1) 
            Console::WriteLine("Kistennummer: {0} > Höhe: {1},Breite: {2}, Länge: {3},Volumen: {4}",kisten[i].kistennummer,kisten[i].hoehe, kisten[i].breite, kisten[i].laenge, kisten[i].volumen); 
            else 
            Console::WriteLine("Kistennummer: {0} NICHT BELEGT",kisten[i].kistennummer); 
        } 



    //Funktionsdeklarationen ENDE*************************************************************************** 



    //Hauptprogramm******************************************************************************* 

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

        Int32 switchvar = 0; 
        kistenlager kisten[MAXKISTEN]; 
        
        //Alle Kistennummern auf 1-100 setzen, damit die erste Kiste nicht mit 0 angesprochen wird 
        //Status Aktiv auf 0 setzen um die Existenz der Kisten zu verwalten 
        
        for(Int32 i=0;i<MAXKISTEN;i++) 
            { 
                kisten[i].kistennummer=i+1; 
                kisten[i].aktiv=0; 
            } 
        
        //Auswahlmenü Schleife 
        while(switchvar!=6) 
        { 

            Console::WriteLine("[1] Kiste anlegen"); 
            Console::WriteLine("[2] Alle Kisten auflisten"); 
            Console::WriteLine("[3] Eine bestimmte Kiste auflisten"); 
            Console::WriteLine("[4] Kiste löschen"); 
            Console::WriteLine("[5] Kiste ändern"); 
            Console::WriteLine("[6] Programm beenden\n"); 

            switchvar = Convert::ToInt32(Console::ReadLine()); 
        switch (switchvar) 
        { 
        case 1: 
            kisteAnlegen(kisten); 
            break; 
        case 2: 
        listAll(kisten); 
        break; 
        case 3: 
        anzeigen(kisten); 
        break; 
        case 4: 
        löschen(kisten); 
        break; 
        case 5: 
        ändern(kisten); 
        break; 
        case 6: 
        break; 
        default: 
            Console::WriteLine("Falsche Eingabe"); 
        } 
        } 
        
        
    }

    Sonntag, 2. September 2012 14:39

Alle Antworten

  • Hallo, kannst du denn C#? Ich denke mal nein, denn sonst hättest du viele Fehler schon gesehen, ohne das dich der Compiler darauf hinweißt. Hier mal ein paar grundsätzliche sachen:

    • Klasse.Methode ist in C++ Klasse::Methode
    • array<System::String ^> ^args einfach zu string[] args machen

    Hier der Code, der dürfte weitestgehend Fehlerfrei sein.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace ConsoleApplication20
    {
        class Program
        {




            //Legt für das Programm die maximal Anzahl an zu verwalteten Kisten fest
            const Int32 MAXKISTEN = 100;



            struct kistenlager
            {
                public Int32 kistennummer;
                public Int32 aktiv;
                public Int32 hoehe;
                public Int32 laenge;
                public Int32 breite;
                public Int32 volumen;
            };

            //Funktionsdeklarationen*******************************************************************
            //Alle Funktionen sind für das Management des Kistenlagers zuständig und greifen auf die Struktur “kistenlager” zu

            static void kisteAnlegen(kistenlager[] kisten)
            {
                for (Int32 i = 0; i < MAXKISTEN; i++)
                {
                    if (kisten[i].aktiv == 0)
                    {
                        Console.WriteLine("Geben sie bitte die Höhe der Kiste ein");
                        kisten[i].hoehe = Convert.ToInt32(Console.ReadLine());

                        Console.WriteLine("Geben sie bitte die Breite der Kiste ein");
                        kisten[i].breite = Convert.ToInt32(Console.ReadLine());

                        Console.WriteLine("Geben sie bitte die Länge der Kiste ein");
                        kisten[i].laenge = Convert.ToInt32(Console.ReadLine());

                        kisten[i].aktiv = 1;
                        kisten[i].volumen = kisten[i].hoehe * kisten[i].breite * kisten[i].laenge;
                        break;
                    }
                    else
                        Console.WriteLine("Keine Kiste mehr frei");
                }
            }

            static void anzeigen(kistenlager[] kisten)
            {
                Int32 nummer;
                Console.WriteLine("Welche Kiste wollen sie Anzeigen? Geben sie eine Nummer von 1-100 ein!");
                nummer = Convert.ToInt32(Console.ReadLine()) - 1;
                if (nummer <= 100 && nummer >= 0)
                {
                    if (kisten[nummer].aktiv == 1)
                        Console.WriteLine("Kistennummer: {0} > Höhe: {1},Breite: {2}, Länge: {3},Volumen: {4}", kisten[nummer].kistennummer, kisten[nummer].hoehe, kisten[nummer].breite, kisten[nummer].laenge, kisten[nummer].volumen);
                    else
                        Console.WriteLine("Kistennummer: {0} NICHT BELEGT", kisten[nummer].kistennummer);
                }
                else
                    Console.WriteLine("Inkorrekte Eingabe\n");
            }

            static void löschen(kistenlager[] kisten)
            {
                Int32 nummer;
                Console.WriteLine("Welche Kiste wollen sie löschen? Geben sie eine Nummer von 1-100 ein!");
                nummer = Convert.ToInt32(Console.ReadLine()) - 1;

                if (nummer <= 100 && nummer >= 0)
                {
                    if (kisten[nummer].aktiv == 0)
                    {
                        Console.WriteLine("Die Kiste ist bereits gelöscht");
                    }
                    if (kisten[nummer].aktiv == 1)
                    {
                        kisten[nummer].aktiv = 0;
                        kisten[nummer].hoehe = 0;
                        kisten[nummer].breite = 0;
                        kisten[nummer].laenge = 0;
                        kisten[nummer].volumen = 0;
                        Console.WriteLine("Kistennummer: {0} GELÖSCHT", kisten[nummer].kistennummer);
                    }
                }
                else
                    Console.WriteLine("Inkorrekte Eingabe");

            }

            static void ändern(kistenlager[] kisten)
            {
                Int32 nummer;
                Console.WriteLine("Welche Kiste wollen sie ändern? Geben sie eine Nummer von 1-100 ein!");
                nummer = Convert.ToInt32(Console.ReadLine()) - 1;
                if (nummer <= 100 && nummer >= 0)
                {
                    if (kisten[nummer].aktiv == 1)
                    {
                        Console.WriteLine("Geben sie bitte die Höhe der Kiste ein");
                        kisten[nummer].hoehe = Convert.ToInt32(Console.ReadLine());

                        Console.WriteLine("Geben sie bitte die Breite der Kiste ein");
                        kisten[nummer].breite = Convert.ToInt32(Console.ReadLine());

                        Console.WriteLine("Geben sie bitte die Länge der Kiste ein");
                        kisten[nummer].laenge = Convert.ToInt32(Console.ReadLine());

                        kisten[nummer].volumen = kisten[nummer].hoehe * kisten[nummer].breite * kisten[nummer].laenge;
                    }
                    else
                        Console.WriteLine("Die Kiste existiert nicht");
                }
                else
                    Console.WriteLine("Inkorrekte Eingabe");

            }



            static void listAll(kistenlager[] kisten)
            {
                for (Int32 i = 0; i < MAXKISTEN; i++)
                {
                    if (kisten[i].aktiv == 1)
                        Console.WriteLine("Kistennummer: {0} > Höhe: {1},Breite: {2}, Länge: {3},Volumen: {4}", kisten[i].kistennummer, kisten[i].hoehe, kisten[i].breite, kisten[i].laenge, kisten[i].volumen);
                    else
                        Console.WriteLine("Kistennummer: {0} NICHT BELEGT", kisten[i].kistennummer);
                }

            }

            //Funktionsdeklarationen ENDE***************************************************************************



            //Hauptprogramm*******************************************************************************

             static void Main(string[] args)
            {
                Int32 switchvar = 0;
                kistenlager[] kisten = new kistenlager[MAXKISTEN];

                //Alle Kistennummern auf 1-100 setzen, damit die erste Kiste nicht mit 0 angesprochen wird
                //Status Aktiv auf 0 setzen um die Existenz der Kisten zu verwalten

                for (Int32 i = 0; i < MAXKISTEN; i++)
                {
                    kisten[i].kistennummer = i + 1;
                    kisten[i].aktiv = 0;
                }

                //Auswahlmenü Schleife
                while (switchvar != 6)
                {

                    Console.WriteLine("[1] Kiste anlegen");
                    Console.WriteLine("[2] Alle Kisten auflisten");
                    Console.WriteLine("[3] Eine bestimmte Kiste auflisten");
                    Console.WriteLine("[4] Kiste löschen");
                    Console.WriteLine("[5] Kiste ändern");
                    Console.WriteLine("[6] Programm beenden\n");

                    switchvar = Convert.ToInt32(Console.ReadLine());
                    switch (switchvar)
                    {
                        case 1:
                            kisteAnlegen(kisten);
                            break;
                        case 2:
                            listAll(kisten);
                            break;
                        case 3:
                            anzeigen(kisten);
                            break;
                        case 4:
                            löschen(kisten);
                            break;
                        case 5:
                            ändern(kisten);
                            break;
                        case 6:
                            break;
                        default:
                            Console.WriteLine("Falsche Eingabe");
                            break;
                    }
                }


            }
        }
    }


    Koopakiller - http://koopakiller.ko.ohost.de/


    Sonntag, 2. September 2012 14:54
    Moderator
  • Hi,

    riecht ein wenig nach:

    Checklist

    [x] avoid doing homework by myself

    [x] homework done!

    [x] drink a beer cheering myself as an evil mastermind

    nichts für ungut...

    LG

    Tobi


    Montag, 3. September 2012 11:51
  • ****************************************************************************************************************
    Dieser Thread wurde mangels weiterer Beteiligung des Fragestellenden ohne bestätigte Lösung abgeschlossen.
    Neue Rückfragen oder Ergänzungen zu diesem Thread bleiben weiterhin möglich.
    ****************************************************************************************************************

    Robert Breitenhofer, MICROSOFT   Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Freitag, 21. September 2012 16:56
    Moderator