dreidimensionales Array

praktische Anwendung eines Arrays mit 3 Dimensionen

Es handelt sich hierbei um ein Programm, welches die Sitzplätze eines Kinos mit 3 Kinosälen reserviert.

Jeder Kinosaal verfügt über 150 Sitzplätze welche in 10 Sitzreihen aufgeteilt sind. Die Aufteilung der Sitzplätze erfolgt durch eine Matrix von 10 Zeilen mit 15 Spalten. Der Kinosaal stellt hierbei die 3. Dimension des Arrays dar.

Zuerst wird das Array mit dem Wert 0 initialisiert. Eine 0 bedeutet, der Sitzplatz ist frei, eine 1 der Sitzplatz ist besetzt. Wird ein Sitzplatz reserviert der bereits vergeben ist, soll eine Fehlermeldung den Benutzer darauf aufmerksam machen.

 

namespace ConsoleApplication_kino2
{
    class Program
    {
        static void Main(string[] args)
        {
            int reihen = 10, platz = 15, saal = 3;
            int sitzreihe = 0, sitzplatz = 0, saalnummer = 0;

            /* Erstmalige initialisierung des Arrays mit 0 */
            int[, ,] mycinema = new int[reihen, platz, saal];   // Ein Array mit 3 Dimensionen

            for (int i = 0; i < saal; i++)                      // 3.) zum Schluß der Saal
            {
                for (int j = 0; j < reihen; j++)                // 2.) dann die Sitzreihen
                {
                    for (int k = 0; k < platz; k++)             // 1.) Zuerst die Platznummer
                    {
                        mycinema[j, k, i] = 0;                  // Alle Sitzplätze mit 0 initialisieren
                    }
                }
            }

            do
            {
                /* Ausgabe des Arrays */
                for (int i = 0; i < saal; i++)                  // 3.) zum Schluß der Saal
                {
                    for (int j = 0; j < reihen; j++)            // 2.) dann die Sitzreihen
                    {
                        for (int k = 0; k < platz; k++)         // 1.) Zuerst die Platznummer
                        {
                            Console.Write(" " + mycinema[j, k, i]);
                        }
                        Console.Write("\n");                    // Zeilenumbruch bei Beginn einer neuen Sitzreihe
                    }
                    Console.Write("\n");                        // Zeilenumbruch bei Beginn eines neuen Saales
                }

                Console.WriteLine("Reservieren Sie Ihren Sitzplatz!");
                Console.WriteLine("================================");

                Console.Write("Geben Sie die Saalnummer ein: ");
                saalnummer = Convert.ToInt32(Console.ReadLine());
                Console.Write("Geben Sie die Sitzreihe ein: ");
                sitzreihe = Convert.ToInt32(Console.ReadLine());
                Console.Write("Geben Sie den Sitzplatz ein: ");
                sitzplatz = Convert.ToInt32(Console.ReadLine());

                if ((sitzreihe >= reihen) || (sitzplatz >= platz) || (saalnummer >= saal)) // Prüfe auf fehlerhafte Eingabe
                {
                    Console.WriteLine("Fehlerhafte Eingabe!");
                    Console.ReadLine();
                    Console.Clear();
                }

                else if (mycinema[sitzreihe, sitzplatz, saalnummer] == 1)    // Sitzplatz bereits vergeben
                {
                    Console.Write("\nDieser Sitzplatz ist bereits vergeben! ");
                    Console.ReadLine();
                    Console.Clear();
                }
                else
                {
                    mycinema[sitzreihe, sitzplatz, saalnummer] = 1;         // Sitzplatz zuweisen
                    Console.Clear();
                }
            } while (true);  // Endlosschleife !
        }
    }
}

 

dreidimensionales array