protected void seatButtonClickEvent(object sender, EventArgs e) //Was passiert wenn ein Sitz angeklickt wird. { //Instanzbildung int[] sitzNummer = new int[sitzplaetze.Count]; Button button = sender as Button; Console.WriteLine("Sitz ausgewählt: " + button.Text); Sitzplatz seat = sitzplaetze.ElementAt((int.Parse(button.Text) - 1)); seat.setVerfuegbar(!seat.istVerfuegbar()); button.BackColor = seat.istVerfuegbar() ? (seat.istPremium() ? Color.DarkGreen : Color.Green) : Color.DimGray; // IF else in einer Zeile. man könnte auch if(abfrage){ dann }else{sonst} benutzten if (!seat.istVerfuegbar()) // Ausrufezeichen ist if(boolean == false) ohne Ausrufenzeichen wäre es if(boolean == true) { price += seat.istPremium() ? Sitzplatz.premiumPrice : Sitzplatz.normalPrice; // IF else in einer Zeile. man könnte auch if(abfrage){ dann }else{sonst} benutzten - Wenn der Sitz kein "Premiumsitzt" ist wird der normale Preis gezahlt, wenn doch wird der Premium Preis bezahlt } else { price -= seat.istPremium() ? Sitzplatz.premiumPrice : Sitzplatz.normalPrice; // IF else in einer Zeile. man könnte auch if(abfrage){ dann }else{sonst} benutzten } changePriceLabel(); //Siehe Zeile 193. this.Update(); //Windows Form updaten }
public void addSitzplaetze() { int x = 20; //"Startposition" der Knöpfe/Buttons, veränderbar int y = 50; //^ int buttonsInRow = 0; // Wie viele Knöpfe momentan in der momentanen Reihe sind for (int i = 0; i < sitzplaetze.Count; i++) // Schleife durch komplette Liste { Sitzplatz sitzplatz = sitzplaetze.ElementAt(i); // Hier bekommen wir den Sitzplatz der in der Liste auf der Position von "i" ist int number = i + 1; //Erhöht "i" um 1 Button button = new Button(); // erstellen des "Knopfes" button.Width = 35; // Größes des Knopfes button.Height = 35; // ^ this.Controls.Add(button); // Knopf zur Form hinzufügen button.Text = number + ""; // Text des Buttons ändern. button.Location = new Point(x, y); // Button auf die richtige Position in der Form setzten. button.Click += new EventHandler(seatButtonClickEvent); // Event hinzufügen das beim Klicken auf dem Button ausgeführt wird. button.BackColor = sitzplatz.istVerfuegbar() ? (sitzplatz.istPremium() ? Color.DarkGreen : Color.Green) : Color.Red; // Button farbe button.Show(); // anzeigen des buttons buttonsInRow++; //"buttonsInRow" um 1 erhöhen if (angaben[1] / 2 == buttonsInRow) //Erstellen des Ganges in der Mittel { x += 95; //Breite des Ganges } else if (angaben[1] == buttonsInRow) //Neue Reihe dies das { x = 20; //Startposition x y += 45; //Startposition y buttonsInRow = 0; //Anzahl der Knöpfe pro Reihe auf 0 setzen } else //Falls keins der Dinge oben zutrifft { x += 45; //Verändern der x-koordinate um 45 } } Console.WriteLine("Alle Sitze hinzugefügt!"); //Nachricht das Alle Sitze hinzugefügt/generiert worden this.Update(); //Windows-Form Klasse updaten }
public void addSitzplaetze() { int x = 20; //"Startposition" der Knöpfe/Buttons, veränderbar int y = 50; //^ int buttonsInRow = 0; // Wie viele Knöpfe momentan in der momentanen Reihe sind for (int i = 0; i < sitzplaetze.Count; i++) { Sitzplatz sitzplatz = sitzplaetze.ElementAt(i); int number = i + 1; Button button = new Button(); // erstellen des "Knopfes" button.Width = 35; // Größes des Knopfes button.Height = 35; // ^ this.Controls.Add(button); // Knopf zur Form hinzufügen button.Text = number + ""; // Text des Buttons ändern. button.Location = new Point(x, y); // Button auf die richtige Position in der Form setzten. button.Click += new EventHandler(seatButtonClickEvent); // Event hinzufügen das beim Klicken auf dem Button ausgeführt wird. button.BackColor = sitzplatz.istVerfuegbar() ? (sitzplatz.istPremium() ? Color.DarkGreen : Color.Green) : Color.Red; // Button farbe button.Show(); // anzeigen des buttons buttonsInRow++; if (angaben[1] / 2 == buttonsInRow) { x += 95; } else if (angaben[1] == buttonsInRow) { x = 20; y += 45; buttonsInRow = 0; } else { x += 45; } } Console.WriteLine("Added seats!"); this.Update(); }
private IList <Sitzplatz> sitzplaetze;//Sitzplätze in "Liste" statt Array weil Liste besser. public SeatControllerUI(int[] angaben, String uhrzeit) { sitzplaetze = new List <Sitzplatz>(); // init der liste int seats = angaben[0] * angaben[1]; // berechnung der gesamten sitze int seatsPerRow = angaben[1]; // wie viele sitze in einer Reihe int currentRow = 1; // momentane reihe price = 0; int currentSeatsInRow = 0; // momentane sitze in momentaniger reihe for (int i = 1; i <= seats; i++) { bool premium = false; if (currentSeatsInRow == seatsPerRow) { currentRow++; currentSeatsInRow = 0; } if (currentRow <= 5) { premium = true; } Sitzplatz seat = new Sitzplatz(premium, currentRow, i); sitzplaetze.Add(seat); //Console.WriteLine("New Seat created! Premium: " + premium + ", Row: " + seat.getReihe() + ", Number: " + i); //Nachricht, welche ausgibt, das ein Sitz erstellt wurde. currentSeatsInRow++; } this.uhrzeit = uhrzeit; this.angaben = angaben; InitializeComponent(); this.FormBorderStyle = FormBorderStyle.FixedSingle; //Fixieren der Größe des grafischen Fensters. this.MaximizeBox = false; //^ resizeForm(); addSitzplaetze(); setPriceLocation(); setPrintLocation(); }
private IList <Sitzplatz> sitzplaetze; //Sitzplätze in "Liste" statt Array weil es für mich persönlich, einfacher war das Ziel zu erreichen. public SeatControllerUI(int[] angaben, String uhrzeit) //Inhalt des Fensters. (Sitze, Preis etc) //Verarbeitung /*Ich zähle dies einfach mal alles als Verarbeitung. * * * Im folgenden Code wird ein Windows-Forms Fenster erstellt. * In diesem Fenster Werden die Sitze des Saals dargestellt. * Durch das Anklicken eines Sitzes wird dieser ausgewählt, * der Preis wird zusammengerechnet. * Durch Anklicken eines "print-buttons" Werden Uhrzeit, Platz, Saal und Preis in einem Textdokument gespeichert. * Die Variablen heißen "csvUhrzeit" etc, da ich erst geplant habe alles in einer CSV-Datei zu speichern, * allerdings wurde die Zeit etwas knapp. * Der untenstehende Code ist bei weitem nicht perfekt und kann Sicherlich auch noch gekürtzt werden, mache ich aber nicht, * oder, falls doch, dann wenn alles andere fertig ist. * * Es ist durchaus möglich, dass der folgende Code Rechtschreibfehler enthält, diese können, * falls sie entdeckt werden, für sich behalten werden.*/ { //Initialisierung, Deklaration und Instanzbildung sitzplaetze = new List <Sitzplatz>(); // init der liste int seats = angaben[0] * angaben[1]; // berechnung der gesamten sitze int seatsPerRow = angaben[1]; // wie viele sitze in einer Reihe sind, bekommt Wert aus "Saal"etc Variable aus "program.cs" class int currentRow = 1; // momentane reihe price = 0; int currentSeatsInRow = 0; // momentane sitze in momentaniger reihe for (int i = 1; i <= seats; i++) //for schleide fürs erstellen der Sitze { bool premium = false; //Bool hat nur "true und false" als Wert. In diesem Fall hat "premium" standartmäßig den Wert "false" if (currentSeatsInRow == seatsPerRow) //Wenn "CurrentSeatsInRow" dem Wert von "seatsPerRow" entspricht wird: { currentRow++; //"eine Reihe weiter gegangen" currentSeatsInRow = 0; //und der Wert für "currentSeatsInRow" wird auf 0 gesetzt, fängt also von neu an. } if (currentRow <= 5) //Falls der Wert von "currenRow" unter 5 ist, also die Reihe, die momentan erstellt wird geringer oder gleich 5 ist, wird: { premium = true; //das Feld als "premium" markiert, sprich, es wird später als "günstiger" angepriesen und in einer anderen Farbe dargestellt. } Sitzplatz seat = new Sitzplatz(premium, currentRow, i); sitzplaetze.Add(seat); //Console.WriteLine("New Seat created! Premium: " + premium + ", Row: " + seat.getReihe() + ", Number: " + i); //Nachricht, welche ausgibt, das ein Sitz erstellt wurde. currentSeatsInRow++; } this.uhrzeit = uhrzeit; //verwenden der privaten Variable "uhrzeit" this.angaben = angaben; //verwenden der privaten Variable, sogar Arrays, "angaben" InitializeComponent(); //Wird automatisch von "windows forms" erstellt. this.FormBorderStyle = FormBorderStyle.FixedSingle; //Fixieren der Größe des grafischen Fensters. this.MaximizeBox = false; //^, "MaximizeBox" entscheidet ob das ein Vollbild-Fenster ist. resizeForm(); //wird später verwendet um die Größe des Fensters festzulegen. addSitzplaetze(); //Hier wird später die Position der Sitzplätze festgelegt setPriceLocation(); //Position des Gesamtpreises setPrintLocation(); //Position des Knopfes welcher alles in die Textddatei schreibt. }
protected void printButtonClickEvent(object sender, EventArgs e) //Hier steht, was passiert wenn der "print" Knopf angeklickt wird. { string dateiPfad = Path.Combine(Environment.GetFolderPath(System.Environment.SpecialFolder.Desktop), "Kino Ticket.csv"); //Ermittelt den Pfad des Desktops. StreamWriter sw = new StreamWriter(dateiPfad); //Erstellen einer Funktion, welche es dem Programm ermöglich, sachen in eine Textdatei zu schreiben. //Man könnte den folgenden Part auch ohne Arrays machen, wird aber aus Lernzwecken mit Arrays gemacht. int b = 0; //b, dies entspricht der Anzahl der ausgewählten Sitzplätze. for (int i = 0; i < sitzplaetze.Count(); i++) //Jedes mal, wenn der print-knopf gedrückt wird, zählt die for-schleife durch. { Sitzplatz sitzplatz = sitzplaetze.ElementAt(i); //Dem Array "sitzplatz" wird der Wert eines Ausgewählten Sitzplatzes zugewiesen, if (!sitzplatz.istVerfuegbar()) //Falls der Sitzplatz verfügbar ist. { b++; //b wird um "1" erhöht. } } if (b == 0) { MessageBox.Show("Du hast keine Plätze ausgewählt!"); // "Errormessage" wenn keine Sitzplätze ausgewählt wurden. "MessageBox" ist ein kleines Fenster, welches sich öffnet und dann die Nachricht anzeigt. return; } Sitzplatz[] sitzplatzArray = new Sitzplatz[b]; //Array in welchem die ausgewwöhlten Sitzplätze gespeichert werden um dann ausgegeben zu werden. b = 0; for (int i = 0; i < sitzplaetze.Count(); i++) //for-Schleife zum speichern der Sitzplätze in einem Array. { Sitzplatz sitzplatz = sitzplaetze.ElementAt(i); //Array bekommt den Wert von dem Wert "i" im Array "sitzplaetze". "ElementAt" besorgt einen Wert and der angegebenen " if (!sitzplatz.istVerfuegbar()) //Der Sitzplatz wird nur gespeichert, falls dieser "verfügbar" ist. { sitzplatzArray[b] = sitzplatz; //Speichern des Wertes b++; //Erhöhen des Wertes "b" } } // Hier wird ein StringBuilder benutzt um die Plätze in einem String aufzulisten. StringBuilder stringBuilder = new StringBuilder(); //"StringBuilder" um den String zur Ausgabe des Sitzplatzes zu "bauen". StringBuilder stringBuilder1 = new StringBuilder(); bool c = false; //Boolean "c", beteiligt am Prozess des Erstellens des Strings foreach (Sitzplatz sitzplatz in sitzplatzArray) // { if (c == false) //falls "c" false ist wird: { stringBuilder.Append(sitzplatz.getNumber()); //Append für Zeichenfolge an String an. Hier wird nur die Nummer des Sitzplatzes in dem String gespeichert. c = true; //und "c" auf "true" gesetzt } else //Falls "c" nicht auf "false" ist { stringBuilder.Append(",").Append(" " + sitzplatz.getNumber()); //Wird zu dieser einen Sitznummer ein Komma hinzugefügt außerdem werden ein "Leerzeichen" und die weitere Sitznummer hinzugefügt. } } Program.csvPlatz = stringBuilder.ToString(); //der eben "gebaute" string wird in der Variable "csvPlatz" gespeichert. string output = ("Uhrzeit: " + Program.csvUhrzeit); //Speichern der Uhrzeit in string string output1 = ("Saal: " + Program.csvSaal); //Speichern des Saals in string string output2 = ("Plätze: " + Program.csvPlatz); //Speichern des/der Sitzplätze in string string output3 = ("Kosten: " + price + " Euro."); //Speichern des zu zahlenden Preises in der string stringBuilder1.AppendLine(" - Reservierung - ").AppendLine(output).AppendLine(output1).AppendLine(output2).AppendLine(output3); //Alle Strings die ausgegeben werden sollen, werden in einem string gespeichert string stringAusgabe = stringBuilder1.ToString(); //gebauten string in string speichern //Ausgabe sw.WriteLine(stringAusgabe); //Schreiben des strings in Textdatei. sw.Close(); //Beenden der StreamWriter-Methode. }
protected void printButtonClickEvent(object sender, EventArgs e) { StreamWriter sw = new StreamWriter(@"E:\test1.txt"); // Man könnte den folgenden Part auch ohne Arrays machen, wird aber aus Lernzwecken mit Arrays gemacht. int b = 0; for (int i = 0; i < sitzplaetze.Count(); i++) { Sitzplatz sitzplatz = sitzplaetze.ElementAt(i); if (!sitzplatz.istVerfuegbar()) { b++; } } if (b == 0) { MessageBox.Show("Du hast keine Plätze ausgewählt!"); // "Errormessage" wenn keine Sitzplätze ausgewählt wurden return; } Sitzplatz[] sitzplatzArray = new Sitzplatz[b]; b = 0; for (int i = 0; i < sitzplaetze.Count(); i++) { Sitzplatz sitzplatz = sitzplaetze.ElementAt(i); if (!sitzplatz.istVerfuegbar()) { sitzplatzArray[b] = sitzplatz; b++; } } // Hier wird ein StringBuilder benutzt um die Plätze in einem String aufzulisten. StringBuilder stringBuilder = new StringBuilder(); bool c = false; foreach (Sitzplatz sitzplatz in sitzplatzArray) { if (c == false) { stringBuilder.Append(sitzplatz.getNumber()); c = true; } else { stringBuilder.Append(",").Append(" " + sitzplatz.getNumber()); } } Program.csvPlatz = stringBuilder.ToString(); string output = ("Uhrzeit: " + Program.csvUhrzeit); string output1 = ("Saal: " + Program.csvSaal); string output2 = ("Plätze: " + Program.csvPlatz); string output3 = ("Kosten: " + price + " Euro."); sw.WriteLine("Reservierung!"); sw.WriteLine(output); sw.WriteLine("{0}. {1}.", output1, output2); sw.WriteLine(output3); sw.Close(); }