static public LancoltLista Beolvas(LancoltLista lista, int darab) { string[] lines = File.ReadAllLines(@"adatok.txt"); int ID = 0; foreach (string line in lines) { string[] SplittedLine = line.Split(); if (SplittedLine[0] == "NORM") { NormalButor uj = new NormalButor(int.Parse(SplittedLine[1]), int.Parse(SplittedLine[2]), int.Parse(SplittedLine[3]), ID); lista.VegereBeszuras(uj); ID++; } else if (SplittedLine[0] == "ALLO") { AlloButor uj = new AlloButor(int.Parse(SplittedLine[1]), int.Parse(SplittedLine[2]), int.Parse(SplittedLine[3]), ID); lista.VegereBeszuras(uj); ID++; } else { AlacsonyButor uj = new AlacsonyButor(int.Parse(SplittedLine[1]), int.Parse(SplittedLine[2]), int.Parse(SplittedLine[3]), ID); lista.VegereBeszuras(uj); ID++; } } return(lista); }
public void OsszesButorElhelyezeseARaktarban(bool UjraRendezes) { bool van = false; int butorDarabSeged = ButorDarab; int[,] raktarButorokkalseged = raktarButorokkal; bool[,] R = new bool[ButorDarab, 2]; for (int i = 0; i < ButorDarab; i++) { R[i, 0] = true; R[i, 1] = false; } bool[] E = new bool[ButorDarab]; BTSs.BTS(0, ref E, R, ref van, this); if (UjraRendezes) { Console.WriteLine("\n\nBefer-e(true/false) teljes ujrarendezes utan + annak a butornak az adatai"); int i = 0; LancoltLista masikRaktarbaKuldesButorok = new LancoltLista(); foreach (bool item in E) { Console.Write(item + " "); Console.WriteLine(lista.NthElem(i)); if (!item) { masikRaktarbaKuldesButorok.VegereBeszuras(lista.NthElem(i)); } i++; } if (masikRaktarbaKuldesButorok.DarabElem(masikRaktarbaKuldesButorok) != 0) { for (int j = 0; j < masikRaktarbaKuldesButorok.DarabElem(masikRaktarbaKuldesButorok); j++) { lista.KitorolListabol(masikRaktarbaKuldesButorok.NthElem(j).ID, lista); } throw new NincsTobbHelyButornakTeljesRendezesUtanException() { HibaUzenet = "[ERR]Butor(ok)nak nincs hely teljes ujrarendezés után", elemek = masikRaktarbaKuldesButorok }; } } else { Console.WriteLine("\n\nBefer-e(true/false) + annak a butornak az adatai"); for (int i = 0; i < ButorDarab; i++) { Console.Write(E[i] + " "); Console.WriteLine(lista.NthElem(i)); } } }
public void ButorKihozatal(int ID, Raktar raktar) { ButorAlap elem = raktar.lista.IDthElem(ID); int[] UtbanVanIDk = new int[raktar.ButorDarab - 1]; Utbanvan(ref UtbanVanIDk, elem, raktar); LancoltLista kihozottButorokLista = new LancoltLista(); int j = 0; while (j < raktar.ButorDarab && UtbanVanIDk[j] != 0) { kihozottButorokLista.VegereBeszuras(raktar.lista.IDthElem(UtbanVanIDk[j])); raktar.ElemKivetel(UtbanVanIDk[j++]); } raktar.ElemKivetel(ID); raktar.lista.KitorolListabol(ID, raktar.lista); raktar.ButorDarab--; int kihozottDb = kihozottButorokLista.DarabElem(kihozottButorokLista); if (kihozottDb != 0) { bool[] OPT = new bool[kihozottDb]; bool[] E = new bool[kihozottDb]; bool[,] R = new bool[kihozottDb, 2]; for (int i = 0; i < kihozottDb; i++) { R[i, 0] = true; R[i, 1] = false; } bool van = false; OptimBTS.OPTIMBTS(0, ref E, R, ref van, this, ref OPT, kihozottButorokLista); for (int i = 0; i < kihozottDb; i++) { if (OPT[i]) { getHely(kihozottButorokLista.NthElem(i), true); // visszarakas a raktarba OnUjHely(kihozottButorokLista.NthElem(i).ID, kihozottButorokLista.NthElem(i).BalFelsoKoordinata); } else { throw new NincsTobbHelyButornakTeljesRendezesElottException() { HibaUzenet = "[ERR]Egy butornak nem sikerült helyet találni", elem = kihozottButorokLista.NthElem(i) }; } } } }