private void PreviousButton_Click(object sender, EventArgs e) { int x = uj_lista.IndexOf(hanyadik_variaciot_nezzuk_eppen); hanyadik_variaciot_nezzuk_eppen = uj_lista[x - 1]; if (hanyadik_variaciot_nezzuk_eppen <= uj_lista.First()) { PreviousButton.Enabled = false; PreviousButton.Visible = false; } if (hanyadik_variaciot_nezzuk_eppen < uj_lista.Last()) { NextButton.Enabled = true; NextButton.Visible = true; } torles(); Kurzus[] egy_variacio = new Kurzus[kivalasztott_targy_objektumok.Count()]; for (int i = 0; i < kivalasztott_targy_objektumok.Count(); i++) { egy_variacio[i] = matrix[hanyadik_variaciot_nezzuk_eppen, i]; } orarendgeneralas(egy_variacio); }
//konstruktor public Orarend(List <Targy> targyobjektumok) { InitializeComponent(); kivalasztott_targy_objektumok = targyobjektumok; variaciok_megszamolasa(kivalasztott_targy_objektumok); //MessageBox.Show("variációk: " + variaciok_szama.ToString()); utkozesek = new bool[variaciok_szama]; egyikSeJoLabel.Text = ""; PreviousButton.Visible = false; //Id generálás int sorId = 0; foreach (Targy t in kivalasztott_targy_objektumok) { int oszlopId = 0; foreach (Kurzus k in t.kurzus_lista) { k.SetId(sorId, oszlopId); //MessageBox.Show("id generated for " + k.EgeszSor + " " + k.getRowId() + " " + k.getColoumnId()); oszlopId++; } sorId++; } matrix = new Kurzus[variaciok_szama, kivalasztott_targy_objektumok.Count()]; Matrix_generalasa(); PreviousButton.Enabled = false; if (variaciok_szama > 1) { NextButton.Enabled = true; } hanyadik_variaciot_nezzuk_eppen = 0; Kurzus[] egy_variacio = new Kurzus[kivalasztott_targy_objektumok.Count()]; for (int i = 0; i < kivalasztott_targy_objektumok.Count(); i++) { egy_variacio[i] = matrix[hanyadik_variaciot_nezzuk_eppen, i]; } orarendgeneralas(egy_variacio); }
private void NextButton_Click(object sender, EventArgs e) { hanyadik_variaciot_nezzuk_eppen += 1; if (hanyadik_variaciot_nezzuk_eppen >= variaciok_szama - 1) { NextButton.Enabled = false; NextButton.Visible = false; } if (hanyadik_variaciot_nezzuk_eppen > 0) { PreviousButton.Enabled = true; PreviousButton.Visible = true; } torles(); Kurzus[] egy_variacio = new Kurzus[kivalasztott_targy_objektumok.Count()]; for (int i = 0; i < kivalasztott_targy_objektumok.Count(); i++) { egy_variacio[i] = matrix[hanyadik_variaciot_nezzuk_eppen, i]; } orarendgeneralas(egy_variacio); bool egyik_se_jo = true; int v = variaciok_szama - 1; if (hanyadik_variaciot_nezzuk_eppen == v) { foreach (bool b in utkozesek) { if (b == false) { egyik_se_jo = false; break; } } if (egyik_se_jo) { egyikSeJoLabel.Text = ("Sajnos ezeket\naz órákat \nnem tudod \nütközés nélkül \nfelvenni."); egyikSeJoLabel.BackColor = Color.FromArgb(255, 77, 77); egyikSeJoPanel.BackColor = Color.FromArgb(255, 77, 77); } } }
public void Vannak_e_utkozesek() { for (int i = 0; i < variaciok_szama; i++) { hanyadik_variaciot_nezzuk_eppen = i; Kurzus[] kurzus_sor = new Kurzus[kivalasztott_targy_objektumok.Count()]; for (int j = 0; j < kivalasztott_targy_objektumok.Count(); j++) { kurzus_sor[j] = matrix[i, j]; } orarendgeneralas_utkozesek_megszamolasara(kurzus_sor); torles(); } for (int i = 0; i < variaciok_szama; i++) { if (utkozesek[i] == false) { uj_lista.Add(i); //ezek a sorai a mátrixnak amik nem ütköznek } } hanyadik_variaciot_nezzuk_eppen = 0; }
private void PreviousButton_Click(object sender, EventArgs e) { hanyadik_variaciot_nezzuk_eppen -= 1; if (hanyadik_variaciot_nezzuk_eppen <= 0) { PreviousButton.Enabled = false; PreviousButton.Visible = false; } if (hanyadik_variaciot_nezzuk_eppen < variaciok_szama - 1) { NextButton.Enabled = true; NextButton.Visible = true; } torles(); Kurzus[] egy_variacio = new Kurzus[kivalasztott_targy_objektumok.Count()]; for (int i = 0; i < kivalasztott_targy_objektumok.Count(); i++) { egy_variacio[i] = matrix[hanyadik_variaciot_nezzuk_eppen, i]; } orarendgeneralas(egy_variacio); }
//konstruktor public Orarend2(List <Targy> targyobjektumok) { InitializeComponent(); kivalasztott_targy_objektumok = targyobjektumok; variaciok_megszamolasa(kivalasztott_targy_objektumok); //MessageBox.Show("variációk: " + variaciok_szama.ToString()); utkozesek = new bool[variaciok_szama]; PreviousButton.Visible = false; //Id generálás int sorId = 0; foreach (Targy t in kivalasztott_targy_objektumok) { int oszlopId = 0; foreach (Kurzus k in t.kurzus_lista) { k.SetId(sorId, oszlopId); oszlopId++; } sorId++; } matrix = new Kurzus[variaciok_szama, kivalasztott_targy_objektumok.Count()]; Matrix_generalasa(); PreviousButton.Enabled = false; if (variaciok_szama > 1) { NextButton.Enabled = true; } Vannak_e_utkozesek(); //szerintem ez nem kell de nem merem kivenni /*if (uj_lista.Count == 0) * { * MessageBox.Show("Sajnos ezeket a tárgyakat nem tudod ütközés nélkül felvenni"); * Form1 f1 = new Form1(); *//*f1.Show(); * this.Close();*//* * Environment.Exit(0); //nem mukodik, ezert be kell zarni * }*/ hanyadik_variaciot_nezzuk_eppen = uj_lista[0]; szamLabel.Text = uj_lista.Count().ToString(); Kurzus[] egy_variacio = new Kurzus[kivalasztott_targy_objektumok.Count()]; for (int i = 0; i < kivalasztott_targy_objektumok.Count(); i++) { egy_variacio[i] = matrix[hanyadik_variaciot_nezzuk_eppen, i]; } orarendgeneralas(egy_variacio); }
private void OpenFileButton_Click(object sender, EventArgs e) { List <string> fileContent = new List <string>(); List <string> osszes_targy = new List <string>(); List <string> idopontos_targyak = new List <string>(); var filePath = string.Empty; if (openFileDialog1.ShowDialog() == DialogResult.OK) { //Get the path of specified file filePath = openFileDialog1.FileName; //Read the contents of the file into a stream var fileStream = openFileDialog1.OpenFile(); Encoding encodingType = Encoding.GetEncoding("Windows-1250"); StreamReader reader = new StreamReader(fileStream, encodingType); //encodingType 2. paraméter ha nem lenne jó a kódolás while (reader.Peek() >= 0) { fileContent.Add(reader.ReadLine()); } foreach (string line in fileContent) //ha tárgyról van szó { if (!line.Equals("*") && !line.Contains(":")) { osszes_targy.Add(line); } } //tárgyak megjelölése ahol nem volt időpont, kell a megjelölgetés mert közben nem lehet törölni mert újrasorszámozódik (asszem) meg akkor nem tudnánk kiírni hogy hány tárgyat töröltünk for (int i = 0; i < fileContent.Count - 1; i++) //utolsó elemet nem kell nézni { if ((osszes_targy.Contains(fileContent[i])) && (fileContent[i + 1].Equals("*"))) //ha az adott sor tárgy és a rákövetkező elem csillag (vagyis nincs hozzá időpont) { fileContent[i] = fileContent[i].Insert(0, "?"); //új stringgel tér vissza fileContent[i + 1] = fileContent[i + 1].Insert(0, "?"); } } //tárgyak törlése ahol nem volt időpont removed_classes = fileContent.RemoveAll(StartsWithQuestionMark) / 2; //itt már a fileContent nem tartalmazza azokat a tárgyakat amikhez nincs időpont foreach (string line in fileContent) { if (!line.Equals("*") && !line.Contains(":")) { idopontos_targyak.Add(line); } } for (int i = 0; i < idopontos_targyak.Count; i++) { listBoxLeft.Items.Insert(i, idopontos_targyak[i]); } //classokba olvasás foreach (string ora in idopontos_targyak) { Targy t = new Targy(ora); targy_objektumok.Add(t); int idx = fileContent.IndexOf(ora); //megkeresi hogy a fileContent-ben hol van ez az óra ++idx; //+1 mert különben saját magát is nézné, ami nem * tehát kurzusnak venné try { for (int i = idx; i < fileContent.Count() - 1; i++) { if (fileContent[i].Equals("*")) //ha csillag { break; } else //ha kurzus { Kurzus k = new Kurzus(fileContent[i]); t.Kurzus_listahoz_adas(k); k.Ora_neve = t.Nev; } } } catch (ArgumentOutOfRangeException ex) { Console.WriteLine(ex.Message); } } //ez csak egy teszt hogy sikerült-e a példányosítás for (int i = 0; i < idopontos_targyak.Count(); i++) { //testLabel.Text += targy_objektumok[i].ToString() + "\n"; } } }