Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Skrypt generator - problem
sebix123
post 27.08.2019, 12:28:33
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 27.08.2019

Ostrzeżenie: (0%)
-----


Witam,

tworzę skrypt który pozwoli dyrektorowi w szkole generować dyżury nauczycieli. Aplikacja pobiera wszystkie plany lekcji ze strony z planem lekcji do tablicy. Każdy nauczyciel ma "priorytet" tzn. im wyższy tym ma mniej godzin. Było to pomocne ponieważ nauczyciel który ma 3 godziny dydaktyczne w tygodniu pełni np. 10 min dyżuru w ciągu całego tygodnia. Niestety zdarzało się tak że skrypt losujący nie wylosował go przez co na koniec nie było już gdzie go wstawić i w rezultacie nie dyżurował. Jest określona liczba minut do zagospodarowania w ciągu całego tygodnia. Obliczam współczynnik tzn ilość minut na 1 godzinę dydaktyczną po czym mnożę godziny każdego nauczyciela przez współczynnik i mam ile minut ma dyżurować. Łączna ilość minut dyżurów nauczycieli jest równa ilości minut w całym tygodniu do zagospodarowania. Skrypt pobiera sobie listę z bazy danych o najwyższym priorytecie ( najniższa liczba godzin ), następnie losuje jedno nazwisko po czym sprawdza czy dana osoba jest w tym czasie w szkole, jeśli nie ma to losuję nową osobę, jeśli jest to sprawdza czy ma jeszcze wolne minuty i w zależności od tego ile ma tych minut wstawia lub nie wstawia do planu. Gdy 5 razy nie znajdzie przechodzi do wyższego priorytetu, potem wyższego aż w końcu z wszystkich próbuje kogoś wylosować gdy priorytety zawiodą. Do czego zmierzam, wszystko jest super gdy przyjdzie czas ostatniego dnia czyli piątku. Otóż brakuje minut i skrypt się zawiesza tzn. dochodzi do sytuacji gdzie nie ma nauczyciela który jest równocześnie w szkole i ma wystarczającą ilość wolnych minut do danego dyżuru bo idealnego planu praktycznie nie da się ułożyć. Oprócz priorytetów które nieco rozplanowały lepiej te dyżury dodałem również przy przeliczaniu minut nauczycieli zmienną która losuje 0 lub 1, jeśli 1 to nauczyciel któremu aktualnie jest przeliczana ilość minut dostaje 5 dodatkowych minut. Dodałem również zaokrąglanie do liczby podzielnej przez 5 zawsze w górę tzn. gdy ktoś ma 81 minut wyliczone to zaokrągli do 85 bo 5 min to najkrótsza przerwa. Niestety to również znacząco nie poprawiło sytuacji. Czy macie jakieś pomysły co można by jeszcze dodać oprócz tych losowych 5 minut i priorytetów żeby ten skrypt ciągle się nie zawieszał gdy nie znajdzie tylko generował plan już nie mówie że zawsze ale np. co drugi raz?

Ten post edytował sebix123 27.08.2019, 12:31:09
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 29.03.2024 - 08:23