Case Anweisung



  • Hallo
    Es funktioniert alles bis auf den Case zugriff. Was muss ich unter case eingeben ich habe es versucht aber es ist alles falsch.
    Was in meinem Buch steht habe ich versucht aber es nützt nichts.
    Er greift nicht darauf zu.

    [code]
    
    #include "stdafx.h"
    
    using namespace System;
    // Die Struktur wird Global vereinbart
    
    struct kiste {
    	Int32 kistenNummer;
    	Int32 hoehe;
    	Int32 breite;
    	Int32 laenge;
    	Int32 loeschen;
    	Int32 aendern;
    	Int32 anzeigen;
    	Int32 auflisten;
    
    };
    // Die funktion zum einlesen der Kisten
    kiste einlesen(Int32 kistenNummer) {
    	// Eine lokale Strukturvariable
    	kiste aKiste;
    
    	Console::Write("\nGeben Sie die Höhe der {0}. Kiste ein.   = ", kistenNummer);
    		aKiste.hoehe=Convert::ToInt32(Console::ReadLine());
    	Console::Write("\nGeben Sie die Breite der {0}. Kiste ein. = ",kistenNummer);
    		aKiste.breite=Convert::ToInt32(Console::ReadLine());
    	Console::Write("\nGeben Sie bitte die Länge {0}. Kiste ein: = ",kistenNummer);
    		aKiste.laenge=Convert::ToInt32(Console::ReadLine());
    	// eine Leerzeile ausgeben
    	Console::WriteLine();
    	return aKiste;
    }
    // Die Funktion zum berechnen
    Int32 volumen(kiste aKiste) {
    	Int32 volWert;
    	volWert=aKiste.hoehe * aKiste.breite * aKiste.laenge;
    
    	return volWert;
    
    }
    //Die Funktion Kiste loeschen
    Int32 loeschen(kiste aKiste) {
    	Int32 kistenNummer;
    	Int32 loeschen;
    	loeschen=1;
    
    	Int32 eingabe, datensatz;
    	Boolean gefunden = false;
    
    	// Einlesen der Wunsch Kistennummer
    	Console::Write("Geben sie die Nummer der Kiste ein: = ");
    	eingabe=Convert::ToInt32(Console::ReadLine());
    
    	//Durchlauf aller KistenNummern und Suche ob vorhanden
    	for (Int32 schleife=0; schleife <100; schleife++) {
    		if(eingabe=kistenNummer=0) {
    		datensatz = schleife;
    		gefunden = true;
    		break;
    	}
    }
    //Wenn ja Datensatz auf 0 setzen löschen sonst Meldung
    if (gefunden == true) {
    	aKiste.kistenNummer=1;
    
    	Console::WriteLine("\nKiste erfolgreich geloescht");
    }
    else  {
    	Console::WriteLine("\nDiese Kiste gibt es nicht");
    }
    return loeschen;
    }
    //Die Funktion Daten einer vorhandenen Kiste anzeigen
    Int32 anzeigen(kiste aKiste) {
    	Int32 anzeigen;
    	anzeigen=1;
    	Console::WriteLine(" \tNr\tbreite\thoehe\tlaenge");
    	for (Int32 schleife = 0; schleife < 1; schleife++) {
    		if (aKiste.kistenNummer !=0) {
    	Console::WriteLine(" \t{0}\t{1}\t{2}\t{3}",aKiste.kistenNummer=1, aKiste.hoehe=2, aKiste.breite =3, aKiste.laenge =4);
    		}
    		}
    		return anzeigen;
    	}
    
    int main(array<System::String ^> ^args)
    {
         //Char funktionAuswahl;
    	Int32  funktionAuswahl;
    
    	Console::WriteLine(" Auswahl der Funktionen: = ");
    
    	Console::WriteLine(" 1 Eingabe");
    	Console::WriteLine(" 2 Löschen");
    	Console::WriteLine(" 3 Ändern");
    	Console::WriteLine(" 4 Anzeigen");
    	Console::WriteLine(" 5 Auflisten");
    
    	Console::Write("Bitte wählen Sie aus = ");
    	funktionAuswahl= Convert::ToInt32(Console::ReadLine());
    
    	// Die Auswahl der einzelnen Funktionen
    	Console::WriteLine();
    
    	switch (funktionAuswahl) {
    		case 1:
    
    			Console::WriteLine("Sie haben 1 eingegebnen");
    
    			break;
    		case 2:
    
    			Console::WriteLine("Sie haben 2 eingegeben");
    
    			break;
    		case 3:
    
    			Console::WriteLine("Sie haben 3 eingegeben");
    
    			break;
    		case 4:
    
    			Console::WriteLine("Sie haben 4 eingegeben");
    
    			break;
    		case 5:
    			Console::WriteLine(" Sie haben 5 eingegeben");
    
    		default:
    			Console::WriteLine(" Sie haben ein falsches Zeichen eingegeben");
    			break;
    	}
    
    	/*##################################################################*/
    	// Die lokale Vereinbarung der Strukturvariablen für die Struktur kiste 
    {
    
    	 kiste kleineKiste[100]; 
    
    		// das Einlesen der Daten über die Funtion
    		for(Int32 schleife=0; schleife<2; schleife++)
    			kleineKiste[schleife]=einlesen(schleife+1);
    		for(Int32 schleife=0; schleife<2; schleife++)
    			Console::WriteLine("\tDas Volumen von Kiste {0} ist:    = {1}",schleife+1, volumen(kleineKiste[schleife]));
    		Console::ReadLine();
    	}
    	/*###################################################################*/
    	// Die Funktion eine Kiste loeschen
    {
    	kiste kleineKiste[2];
    
    	for (Int32 schleife=0; schleife < 1; schleife++)
    		Console::WriteLine("Die zu loeschende Kiste lautet {0} = {1}",schleife, loeschen(kleineKiste[schleife]));
    	Console::ReadLine();
    }
    	// die Funktion Anzeigen
    {
    	kiste kleineKiste[1];
    	for (Int32 schleife = 0; schleife < 1; schleife++)
    		Console::WriteLine("Kiste anzeigen {0} = {1}",schleife, anzeigen(kleineKiste[schleife]));
    	Console::Read();
    }
    
    return 0;
    
    }
    

    [/code]
    Vielen Dank im Voraus



  • Und wie äußert sich jetzt dieses "es ist alles falsch"? Die switch()-Anweisung betrifft naturgemäß nur die Anweisungen, die im anschließenden Block drinstehen - in deinem Fall die "Sie haben x eingegeben"-Ausgaben. Wenn du willst, daß je nach Eingabe einer der nachfolgenden Anweisungsblöcke ausgeführt wird, mußt du diesen IN die switsch reinpacken:

    switch (funktionAuswahl) {
    case 1:
      Console::WriteLine("Sie haben 1 eingegebnen");
      {
        kiste kleineKiste[100]; 
    
        // das Einlesen der Daten über die Funtion
        for(Int32 schleife=0; schleife<2; schleife++)
          kleineKiste[schleife]=einlesen(schleife+1);
        for(Int32 schleife=0; schleife<2; schleife++)
          Console::WriteLine("\tDas Volumen von Kiste {0} ist:    = {1}",schleife+1, volumen(kleineKiste[schleife]));
        Console::ReadLine();
      }
      break;
    case 2:
      ...
    


  • CStoll schrieb:

    Und wie äußert sich jetzt dieses "es ist alles falsch"? Die switch()-Anweisung betrifft naturgemäß nur die Anweisungen, die im anschließenden Block drinstehen - in deinem Fall die "Sie haben x eingegeben"-Ausgaben. Wenn du willst, daß je nach Eingabe einer der nachfolgenden Anweisungsblöcke ausgeführt wird, mußt du diesen IN die switsch reinpacken:

    switch (funktionAuswahl) {
    case 1:
      Console::WriteLine("Sie haben 1 eingegebnen");
      {
        kiste kleineKiste[100]; 
    
        // das Einlesen der Daten über die Funtion
        for(Int32 schleife=0; schleife<2; schleife++)
          kleineKiste[schleife]=einlesen(schleife+1);
        for(Int32 schleife=0; schleife<2; schleife++)
          Console::WriteLine("\tDas Volumen von Kiste {0} ist:    = {1}",schleife+1, volumen(kleineKiste[schleife]));
        Console::ReadLine();
      }
      break;
    case 2:
      ...
    

    Hallo
    Schau die das Bitte einmal an, mir sagt es nicht viel. Ich habe nocheinmal den Debugger laufen lassen. Es war von Anfang ein Problem mit dem Dateiformat arum auch immer.
    "Kiste.exe": "D:\Meine Programme\Kiste\debug\Kiste.exe" geladen, Symbole wurden geladen.
    "Kiste.exe": "C:\WINDOWS\system32\ntdll.dll" geladen, Keine Symbole geladen.
    "Kiste.exe": "C:\WINDOWS\system32\mscoree.dll" geladen, Keine Symbole geladen.
    "Kiste.exe": "C:\WINDOWS\system32\kernel32.dll" geladen, Keine Symbole geladen.
    "Kiste.exe": "C:\WINDOWS\system32\advapi32.dll" geladen, Keine Symbole geladen.
    "Kiste.exe": "C:\WINDOWS\system32\rpcrt4.dll" geladen, Keine Symbole geladen.
    "Kiste.exe": "C:\WINDOWS\system32\secur32.dll" geladen, Keine Symbole geladen.
    "Kiste.exe": "C:\WINDOWS\WinSxS\x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_5490cd9f\msvcr80d.dll" geladen, Symbole wurden geladen.
    "Kiste.exe": "C:\WINDOWS\system32\msvcrt.dll" geladen, Keine Symbole geladen.
    "Kiste.exe": "C:\WINDOWS\WinSxS\x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_5490cd9f\msvcm80d.dll" geladen, Symbole wurden geladen.
    "Kiste.exe": "C:\WINDOWS\system32\ole32.dll" geladen, Keine Symbole geladen.
    "Kiste.exe": "C:\WINDOWS\system32\gdi32.dll" geladen, Keine Symbole geladen.
    "Kiste.exe": "C:\WINDOWS\system32\user32.dll" geladen, Keine Symbole geladen.
    "Kiste.exe": "C:\WINDOWS\system32\imm32.dll" geladen, Keine Symbole geladen.
    "Kiste.exe": "C:\WINDOWS\system32\shlwapi.dll" geladen, Keine Symbole geladen.
    "Kiste.exe": "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll" geladen, Keine Symbole geladen.
    "Kiste.exe": "C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.1366_x-ww_5c7d3611\msvcr80.dll" geladen, Keine Symbole geladen.
    "Kiste.exe": "C:\WINDOWS\system32\shell32.dll" geladen, Keine Symbole geladen.
    "Kiste.exe": "C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.2982_x-ww_ac3f9c03\comctl32.dll" geladen, Keine Symbole geladen.
    "Kiste.exe": "C:\WINDOWS\system32\comctl32.dll" geladen, Keine Symbole geladen.
    "Kiste.exe": "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Culture.dll" geladen, Keine Symbole geladen.
    "Kiste.exe": "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Culture.dll" entladen.
    "Kiste.exe": "C:\WINDOWS\assembly\NativeImages_v2.0.50727_32\mscorlib\5218717562b50665493552b61816dff1\mscorlib.ni.dll" geladen, Keine Symbole geladen.
    "Kiste.exe" (Verwaltet): "C:\WINDOWS\assembly\GAC_32\mscorlib\2.0.0.0__b77a5c561934e089\mscorlib.dll" geladen, keine Symbole geladen.
    "Kiste.exe" (Verwaltet): "d:\Meine Programme\Kiste\debug\Kiste.exe" geladen, Symbole geladen.
    "Kiste.exe": "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorjit.dll" geladen, Keine Symbole geladen.
    "Kiste.exe": "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\diasymreader.dll" geladen, Keine Symbole geladen.
    "Kiste.exe": "C:\WINDOWS\system32\rsaenh.dll" geladen, Keine Symbole geladen.
    "Kiste.exe" (Verwaltet): "C:\WINDOWS\WinSxS\x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_5490cd9f\msvcm80d.dll" geladen, Symbole geladen.
    "Kiste.exe": "C:\WINDOWS\assembly\NativeImages_v2.0.50727_32\System\59d98071df278bbd103bce10c06bb8ca\System.ni.dll" geladen, Keine Symbole geladen.
    "Kiste.exe" (Verwaltet): "C:\WINDOWS\assembly\GAC_MSIL\System\2.0.0.0__b77a5c561934e089\System.dll" geladen, keine Symbole geladen.
    "Kiste.exe" (Verwaltet): "C:\WINDOWS\assembly\GAC_MSIL\mscorlib.resources\2.0.0.0_de_b77a5c561934e089\mscorlib.resources.dll" geladen, keine Symbole geladen.
    Eine Ausnahme (erste Chance) des Typs "System.FormatException" ist in mscorlib.dll aufgetreten.
    Eine nicht behandelte Ausnahme des Typs "System.FormatException" ist in mscorlib.dll aufgetreten.

    Zusätzliche Informationen: Die Eingabezeichenfolge hat das falsche Format.

    Der Thread 'Win32 Thread' (0xdc8) hat mit Code 0 (0x0) geendet.
    Der Thread 'Win32 Thread' (0xe7c) hat mit Code 0 (0x0) geendet.
    Das Programm "[1912] Kiste.exe: Systemeigen" wurde mit Code 0 (0x0) beendet.
    Das Programm "[1912] Kiste.exe: Verwaltet" wurde mit Code 0 (0x0) beendet.



  • CStoll schrieb:

    Und wie äußert sich jetzt dieses "es ist alles falsch"? Die switch()-Anweisung betrifft naturgemäß nur die Anweisungen, die im anschließenden Block drinstehen - in deinem Fall die "Sie haben x eingegeben"-Ausgaben. Wenn du willst, daß je nach Eingabe einer der nachfolgenden Anweisungsblöcke ausgeführt wird, mußt du diesen IN die switsch reinpacken:

    switch (funktionAuswahl) {
    case 1:
      Console::WriteLine("Sie haben 1 eingegebnen");
      {
        kiste kleineKiste[100]; 
    
        // das Einlesen der Daten über die Funtion
        for(Int32 schleife=0; schleife<2; schleife++)
          kleineKiste[schleife]=einlesen(schleife+1);
        for(Int32 schleife=0; schleife<2; schleife++)
          Console::WriteLine("\tDas Volumen von Kiste {0} ist:    = {1}",schleife+1, volumen(kleineKiste[schleife]));
        Console::ReadLine();
      }
      break;
    case 2:
      ...
    

    Entschuldigung ich muss ja erst mal darauf antworten was du geschrieben hast.
    Es geht nur noch die Eingabe für die Kistendaten mehr geht garnicht mehr


Anmelden zum Antworten