Fragensteller
c# code probleme

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");
}
}
}- Typ geändert Robert BreitenhoferModerator Freitag, 21. September 2012 16:56 Keine Rückmeldung des Fragenstellender
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/
- Bearbeitet Tom Lambert (Koopakiller)Moderator Sonntag, 2. September 2012 14:55 static bei Methoden vergessen
-
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
- Bearbeitet Tobias Ehling Montag, 3. September 2012 11:53
-
****************************************************************************************************************
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.