private void SchuelerdatenAnnehmenButton_Click(object sender, RoutedEventArgs e) { if (schuelerCollection != null && schuelerCollection.Count > 0) { try { loadAllScheulerInKartei(); VerteilungskriteriumGUI verteilungskriteriumGUI = new VerteilungskriteriumGUI(); verteilungskriteriumGUI.Show(); this.Close(); } catch (ArgumentOutOfRangeException exception) { if (exception.ParamName.Equals("Geschlecht")) { Schueler s = (Schueler)exception.ActualValue; MessageBox.Show("Der Schüler " + s.name + ", " + s.vorname + " hat ein ungültiges Geschlecht. Nur m und w sind gültige Werte."); } if (exception.ParamName.Equals("Leer")) { MessageBox.Show("Ein oder mehrere Schüler sind nicht vollständig ausgefüllt."); } } } else { MessageBox.Show("Bitte fügen Sie Schüler hinzu"); } }
public void setzeSchueler(Schueler schueler, int position) { if (position < this.sitzplaetze.Count()) { sitzplaetze[position] = schueler; } }
//tauschen mit Positionangaben --> wird benötigt Schüler auf bisher unbesetzte Plätze (null) zu verschieben public void tauschePlaetze(int tischA, int platzA, int tischB, int platzB) { Schueler speicher = this.tischgruppen[tischA].getSitzplaetze()[platzA]; this.tischgruppen[tischA].setzeSchueler(this.tischgruppen[tischB].getSitzplaetze()[platzB], platzA); this.tischgruppen[tischB].setzeSchueler(speicher, platzB); }
private void setKlassennummer() { List <Schueler> schuelerListe = sk.getSchuelerListe(); Schueler schueler = schuelerListe[1]; klasse = schueler.klasse; Klassennummer.Text = klasse; }
private void schuelerGrid_SelectionChanged(object sender, SelectionChangedEventArgs e) { var dg = sender as DataGrid; if (dg == null) { return; } var index = dg.SelectedIndex; var itemCount = dg.Items.Count; if (index != -1 && index != (itemCount - 1)) { DataGridRow row = dg.ItemContainerGenerator.ContainerFromIndex(index) as DataGridRow; selectedSchueler = (Schueler)dg.ItemContainerGenerator.ItemFromContainer(row); } }
private SortedList <String, int> sitzNachbarnbestimmen(Sitzplan sitzplan, Schueler schuelerAusListe, SortedList <String, int> sitznachbarn) { foreach (Tischgruppe tischgruppe in sitzplan.getTischgruppen()) { int sitzposition = tischgruppe.getSitzplaetze().IndexOf(schuelerAusListe); if (sitzposition >= 0) { //0 sitzt neben 1 if (sitzposition == 0) { sitznachbarn = bestimmeSitznachbar(sitznachbarn, tischgruppe.getSitzplaetze()[1]); } //1 sitzt neben 0 und 2 if (sitzposition == 1) { sitznachbarn = bestimmeSitznachbar(sitznachbarn, tischgruppe.getSitzplaetze()[2]); sitznachbarn = bestimmeSitznachbar(sitznachbarn, tischgruppe.getSitzplaetze()[0]); } //2 sitzt neben 1 und 3 if (sitzposition == 2) { sitznachbarn = bestimmeSitznachbar(sitznachbarn, tischgruppe.getSitzplaetze()[1]); sitznachbarn = bestimmeSitznachbar(sitznachbarn, tischgruppe.getSitzplaetze()[3]); } //3 sitzt neben 4 und 2 if (sitzposition == 3) { sitznachbarn = bestimmeSitznachbar(sitznachbarn, tischgruppe.getSitzplaetze()[4]); sitznachbarn = bestimmeSitznachbar(sitznachbarn, tischgruppe.getSitzplaetze()[2]); } //4 sitzt neben 5 und 3 if (sitzposition == 4) { sitznachbarn = bestimmeSitznachbar(sitznachbarn, tischgruppe.getSitzplaetze()[5]); sitznachbarn = bestimmeSitznachbar(sitznachbarn, tischgruppe.getSitzplaetze()[3]); } //5 sitzt neben 4 if (sitzposition == 5) { sitznachbarn = bestimmeSitznachbar(sitznachbarn, tischgruppe.getSitzplaetze()[4]); } } } return(sitznachbarn); }
private void SchuelerLoeschenButton_Click(object sender, RoutedEventArgs e) { if (selectedSchueler != null) { MessageBoxResult messageBoxResult = System.Windows.MessageBox.Show ("Wollen Sie " + selectedSchueler.vorname + " " + selectedSchueler.name + " wirklich löschen?", "Löschen bestätigen", System.Windows.MessageBoxButton.YesNo); if (messageBoxResult == MessageBoxResult.Yes) { schuelerCollection.Remove(selectedSchueler); } selectedSchueler = null; schuelerGrid.Items.Refresh(); } else { MessageBox.Show("Wählen Sie einen Schüler aus"); } }
private void swapSchuelerButton_Click(object sender, RoutedEventArgs e) { int anzahl = 0; Schueler schueler1 = new Schueler(); Schueler schueler2 = new Schueler(); foreach (Schueler schueler in schuelerGrid.ItemsSource) { if (((CheckBox)checkGrid.GetCellContent(schueler)).IsChecked == true) { if (anzahl == 0) { schueler1 = schueler; anzahl++; } else if (anzahl == 1) { schueler2 = schueler; anzahl++; break; } } } if (anzahl == 2) { sitzplanFuerBlock.tauschePlaetze(schueler1, schueler2); String tischnummerSpeicher = schuelerCollection[schuelerCollection.IndexOf(schueler1)].tischnummer; String platzSpeicher = schuelerCollection[schuelerCollection.IndexOf(schueler1)].sitzplatznummer; entferneHaeckchen(); schuelerCollection[schuelerCollection.IndexOf(schueler1)].tischnummer = schuelerCollection[schuelerCollection.IndexOf(schueler2)].tischnummer; schuelerCollection[schuelerCollection.IndexOf(schueler1)].sitzplatznummer = schuelerCollection[schuelerCollection.IndexOf(schueler2)].sitzplatznummer; schuelerCollection[schuelerCollection.IndexOf(schueler2)].tischnummer = tischnummerSpeicher; schuelerCollection[schuelerCollection.IndexOf(schueler2)].sitzplatznummer = platzSpeicher; schuelerGrid.Items.Refresh(); MessageBox.Show("Schüler " + schueler1.vorname + " " + schueler1.name + " wurde mit Schüler " + schueler2.vorname + " " + schueler2.name + " getauscht"); } else { MessageBox.Show("Sie müssen 2 Schüler auswählen um zu tauschen."); } }
//Mischen der SchülerListe public static List <Schueler> Shuffle(List <Schueler> list) { RNGCryptoServiceProvider provider = new RNGCryptoServiceProvider(); int n = list.Count; while (n > 1) { byte[] box = new byte[1]; do { provider.GetBytes(box); }while (!(box[0] < n * (Byte.MaxValue / n))); int k = (box[0] % n); n--; Schueler value = list[k]; list[k] = list[n]; list[n] = value; } return(list); }
//Tauschen hinweg mit Schülern --> Nukk Elemente können hiermit nicht angesprochen werden public void tauschePlaetze(Schueler schuelerA, Schueler schuelerB) { int tischA = -1; int platzA = -1; int tischB = -1; int platzB = -1; foreach (Tischgruppe gruppe in this.tischgruppen) { if (gruppe.getSitzplaetze().IndexOf(schuelerA) >= 0) { tischA = this.tischgruppen.IndexOf(gruppe); platzA = gruppe.getSitzplaetze().IndexOf(schuelerA); } if (gruppe.getSitzplaetze().IndexOf(schuelerB) >= 0) { tischB = this.tischgruppen.IndexOf(gruppe); platzB = gruppe.getSitzplaetze().IndexOf(schuelerB); } } tauschePlaetze(tischA, platzA, tischB, platzB); }
public void removeSchueler(Schueler schueler) { int index = this.sitzplaetze.IndexOf(schueler); this.sitzplaetze[index] = null; }
public void aenderSchuelerInListe(int index, Schueler schuelerNeu) { this.schuelerListe[index] = schuelerNeu; }
public void aenderSchuelerInListe(Schueler schuelerAlt, Schueler schuelerNeu) { this.schuelerListe[this.schuelerListe.IndexOf(schuelerAlt)] = schuelerNeu; }
public void entferneSchuelerInListe(int index) { Schueler schueler = schuelerListe[index]; entferneSchuelerInListe(schueler); }
public void entferneSchuelerInListe(Schueler schueler) { this.schuelerListe.Remove(schueler); }
public void neuerSchuelerInListe(Schueler schueler) { this.schuelerListe.Add(schueler); }
private SortedList <String, int> bestimmeSitznachbar(SortedList <String, int> sitznachbarn, Schueler sitznachbar) { //Sitzplatz auf Besetztheit prüfen if (sitznachbar != null) { if (sitznachbarn.ContainsKey(sitznachbar.getVollerName())) { sitznachbarn[sitznachbar.getVollerName()] += 1; } else { sitznachbarn.Add(sitznachbar.getVollerName(), 1); } } return(sitznachbarn); }
private void addSchuelerButton_Click(object sender, RoutedEventArgs e) { Schueler newSchueler = new Schueler(); schuelerCollection.Add(newSchueler); }