Program do układania rozkładu zajęć

0

Witam serdecznie.
Piszę tutaj, aby uzyskać przydatne wskazówki. Mianowicie - moim zadaniem jest napisanie programu ułatwiającego układanie rozkładu zajęć dla szkoły. Głównym wymaganiem jest to, aby aplikacja taka działała pod Windowsem 7 albo 8. Język programowania dowolny. Dlatego też mam pytanie - w jakim języku stworzenie takiego programu będzie najprostsze? Dotychczas miałem kontakt i programowałem w C i C++, ale na dość podstawowym poziomie.

Szukając informacji w necie doszedłem do tematu, w którym ktoś ma podobny program do napisania i korzysta z Delphi. Co o tym sądzicie, co poradzicie? Może Java, PHP? Podejrzewam, że będzie trzeba stworzyć bazę danych i przy wyborze języka to należy uwzględnić. Będę musiał zabrać się za harmonogramowanie albo jakieś algorytmy do optymalizacji, mam rację?

Niezależnie jaki język wybiorę i tak będę uczył się go od podstaw (oprócz C i C++). Czasu na napisanie mam ponad rok, ale już chciałbym się za to zabrać, więc proszę o cenne rady.

0

To jest problem NP-zupełny, więc skup się raczej na tym jak go rozwiązać, a nie w jakim języku napisać rozwiązanie.
Możesz zaciągnąć do pracy algorytm genetyczny, w którym w fazie generacji populacji początkowej postarałbyś się spełniać główne założenia. W drugiej fazie radziłbym się skupić głównie na mutacji, bo z krzyżowań raczej nic sensownego by nie wyszło. Osobnikiem mogłaby być trójwymiarowa kostka, w której osiami byłyby dni, godziny i poszczególne klasy. Wtedy polem w tej kostce byłaby informacja na temat lekcji (sala, nauczyciel, etc).

0

Nie ukrywam, że brzmi to dla mnie dość abstrakcyjnie. Od czego w takim razie radzisz/radzicie zacząć działanie?

Rozumiem i zgadzam się, że najpierw trzeba znaleźć rozwiązanie. Ale jaki język nadaje się do jego realizacji? Chyba, że to okaże się dopiero po zaprojektowaniu rozwiązania...

0

W zasadzie każdy język będzie dobry - wybierz ten, którego będziesz w stanie się nauczyć ;)

Ale lepiej zacznij od określenia zakresu zadań jakie taki program miałby realizować. Wspomaganie układania planu zajęć to dość ogólne określenie. Moim zdaniem taki program wcale nie musi tego planu "sam układać". Wystarczy jeśli dostarczy odpowiednich narzędzi. Np:

  • pozwoli w czytelny sposób wizualizować dane (jakieś siatki zajęć dla grupy, prowadzącego, dnia tygodnia, sali, itp),
  • pozwoli wygodnie dorzucać, usuwać, przesuwać i edytować zajęcia,
  • zasygnalizuje istnienie konfliktu (nakładka sali, prowadzącego, itp),
  • podpowie kolejny ruch podczas układania planu (np. wybierze wolną salę),
  • itd...

1 użytkowników online, w tym zalogowanych: 0, gości: 1