// metoda przedłużania tygodników oraz miesięczników, jednak nie działa do końca jak trzeba, więc nie ma faktycznej realizacji w kodzie //public void Przedluzanie() //{ // foreach (Drukarnia d in drukarnie) // { // foreach (Zlecenie z in d.GetZlecenia()) // { // if (z.GetProdukt().GetType().Name == "Tygodnik") // { // Tygodnik t = (Tygodnik)z.GetProdukt(); // if ( (Dzien - t.DataRozpoczecia()) % t.Czestotliwosc() == 0) // { // Zlecenie zl = new Zlecenie() { stan = "czeka" }; // PrzyjmijZamowienie(zl); // } // } // if (z.GetProdukt().GetType().Name == "Miesiecznik") // { // Miesiecznik m = (Miesiecznik)z.GetProdukt(); // if ((Dzien - m.DataRozpoczecia()) % m.Czestotliwosc() == 0) // { // Zlecenie zl = new Zlecenie() { stan = "czeka" }; // zl.UstawProdukt(new Miesiecznik(30, Dzien) { tytul = m.tytul + (Dzien / m.Czestotliwosc()), cena = m.cena, naklad = m.naklad, strony = m.strony }); // foreach (Autor a in m.GetAutorzy()) zl.GetProdukt().DodajAutora(a); // PrzyjmijZamowienie(zl); // } // } // } // } //} //przydzielanie zleceń dla drukarni na koniec każdego dnia public void PrzydzielZlecenia() { foreach (Zlecenie z in zlecenia) { Drukarnia d = NajmniejZajeta(z.GetProdukt().GetType().Name); d.CzasWydruku(z); d.DodajZlecenie(z); } zlecenia.Clear(); }
//sprawdzenie, która drukarnia jest w danym momencie najmniej zajęta, aby drukowanie kolejnych zleceń przebiegało możliwie szybko public Drukarnia NajmniejZajeta(string typ) { Drukarnia dr = drukarnie[0]; foreach (Drukarnia d in drukarnie) { if (d.zajeta < dr.zajeta && d.CzyMozeDrukowac(typ) == true) { dr = d; } } return(dr); }
//kupowanie drukarni public void KupDrukarnie() { Random r = new Random(); Drukarnia d = new Drukarnia(); double cena = 2000 * ((float)d.jakosc / 5.0) * ((float)d.wydajnosc / 35000.0); if (cena < 2500) { cena = 2500; } cena = Math.Round(cena); Saldo -= cena; drukarnie.Add(d); }
//znajdowanie najlepszej jakościowo drukarni, aby umożliwić jej drukowanie albumów public void CoDrukujeDrukarnia() { Drukarnia d = new Drukarnia(); d.jakosc = 0; foreach (Drukarnia dr in drukarnie) { if (dr.jakosc > d.jakosc) { d = dr; } } d.DodajCoDrukuje("Album"); }
//wczytywanie stanu drukarni public List <Drukarnia> WczytajDrukarnie() { List <Drukarnia> drukarnie = new List <Drukarnia>(); for (int i = 1; i <= 3; i++) { if (File.Exists("drukarnia" + i.ToString() + ".txt")) { Drukarnia d = new Drukarnia(); string[] lines = File.ReadAllLines("drukarnia" + i.ToString() + ".txt"); int x = 1, l = lines.Length; string[] tmp = lines[x].Split(';'); foreach (string s in tmp) { d.DodajCoDrukuje(s); } while (lines[x] != "Zlecenia") { x++; } x++; while (lines[x] != "Staty") { tmp = lines[x].Split(';'); Zlecenie z = new Zlecenie() { ileDni = Int32.Parse(tmp[4]), stan = tmp[5] }; z.UstawDrukarnie(d); if (tmp[6] == "Tygodnik") { z.UstawProdukt(new Tygodnik(7) { cena = Int32.Parse(tmp[0]), naklad = Int32.Parse(tmp[1]), strony = Int32.Parse(tmp[2]), tytul = tmp[3] }); } else if (tmp[6] == "Miesiecznik") { z.UstawProdukt(new Miesiecznik(30) { cena = Int32.Parse(tmp[0]), naklad = Int32.Parse(tmp[1]), strony = Int32.Parse(tmp[2]), tytul = tmp[3] }); } else if (tmp[6] == "Romans") { z.UstawProdukt(new Romans() { cena = Int32.Parse(tmp[0]), naklad = Int32.Parse(tmp[1]), strony = Int32.Parse(tmp[2]), tytul = tmp[3] }); } else if (tmp[6] == "Sensacja") { z.UstawProdukt(new Sensacja() { cena = Int32.Parse(tmp[0]), naklad = Int32.Parse(tmp[1]), strony = Int32.Parse(tmp[2]), tytul = tmp[3] }); } else { z.UstawProdukt(new Album() { cena = Int32.Parse(tmp[0]), naklad = Int32.Parse(tmp[1]), strony = Int32.Parse(tmp[2]), tytul = tmp[3] }); } d.DodajZlecenie(z); x++; } x++; tmp = lines[x].Split(';'); d.jakosc = Int32.Parse(tmp[0]); d.wydajnosc = Int32.Parse(tmp[1]); d.zajeta = Int32.Parse(tmp[2]); drukarnie.Add(d); } } return(drukarnie); }
public void UstawDrukarnie(Drukarnia d) { drukarnia = d; }