Program do tworzenia rozkładów jazdy

0

Hej,

Pracuje w małej firmie branży komunikacji miejskiej. Z racji tego, że jest to mała firma, to nie stać nas na zakup programu do tworzenia rozkładów jazdy, który kosztuje kilkadziesiąt tysięcy złotych. Rozkłady tworzy się ręczenie w excelu a następnie za pomocą starego programu tworzy się z tych danych tabliczki przystankowe. Pojawił się w mojej głowie pomysł stworzenia prostego programu, który ułatwiłby ten proces.

Stworzenie rozkładu jazdy w programie wyglądałoby następująco:

krok 1 - utworzenie przystanków
krok 2 - utworzenie odcinków i czasu przejazdów między nimi
krok 3 - ułożenie przebiegu linii
krok 4 - tworzenie rozkładu dla danej linii (wpisujemy częstotliwość kursowania, lub ręcznie wpisujemy odjazdy z pierwszego przystanku i program sam uzupełnia resztę)
krok 5 - określanie ile brygad (wozów) potrzebnych jest to obsłużenia linii
krok 6 - układanie zadań dla kierowców
krok 7 - drukowanie rozkładów liniowych, tabliczek przystankowych i zadaniówek dla kierowców.

Czy ktoś mógłby pomóc w tym, jakie komponenty lub rozwiązania użyć, aby móc zrealizować ten projekt? Będzie on tworzony w delphi 7.

0

Niewiele pomogę. Wiem, że ZDITM Szczeciński korzysta z jakiegoś pogramu, ale nie wiem czy autorskiego. Może ekipa tworząca MMPK potrafiła by pomóc zrobić to taniej. Od siebie mogę doradzić by jeśli wolisz to mieć w Excelu, to są proste rozwiązania w Delphi oparte o obiekty OLE, które pozwalają generować sobie kodem arkusze Excela. Ja jednak od dawna nie używam Excela, w załączniku do tego posta masz prosty program wraz z kodem, który korzysta z Open Office'owego Calca, bo jego używam. Generuje on bardzo szybko proste tabelki do spisania wyników graczy meczów online, pisany kiedyś pod kątem turnieju kultowej Sensible World of Soccer. Może się Tobie to do czegoś przyda.

Co do komponentów. To nie wiem jak to ma dokładniej wyglądać w przypadku firmy, gdzie pracujesz. Ale to, co widać po rozkładach na http://zditm.szczecin.pl/rozklady/index.html można spokojnie osiągnąć w programie robiąć sobie listę przystanków i wyświetlać z TListBox. Natomiast godziny odjazdów dla danego przystanku przedstawił bym w TStringGrid. Przy spokojnym przemyśleniu tematu, można to spokojnie zaprogramować. Nie potrzeba raczej żadnej "magicznej wiedzy" ani zbytecznych kombinacji. Bo skoro używasz Excela do tego póki co, to może Tobie łatwo generować te Arkusze właśnie kod w Delphi. Wprawdzie mój kod generuje bardzo poste tabelki. Jednak przy zagłębieniu się w API OE Calca czy nieco według mnie gorzej udokumentowane Excela. Można zrobić automatyczne generowanie tego samego, co możesz ręcznie wytworzyć sobie pod Excelem czy OE Calciem. Albo też i Wordem czy Writterem.

A z tymi brygadami to nie wiem o co chodzi. Jednak określenie odjazdów z pętli, a później czasów pomiędzy przystankami oraz na tej podstawie przyjazdów na kolejne przystanki to logiczne rozwiązanie i duże ułatwienie. Chociaż nie wiem jak to jest do końca, bo w przypadku ZDITM Szczecińskiego, jeżdząć jako pasażer daje się zauważyć, że suma minut od pętli albo danego przystanku do na przykład końcowego albo wielu po drodze jest niższa po przyjezdzie i faktycznie tak autobus czy tramwaj przyjeżdza, niż jest to podane. Nie chodzi o to że pojazd przyjedzie za wcześnie czy za poźno, tylko że nieraz ta suma jest zupełnie niezrozumiale dla mnie obliczana. Kolega pracujący jako motorniczy, jeżdzący na tramwajach od ponad siedmiu lat, nie umiał mi tego racjonalnie wytłumaczyć. Ale Ty znając temat od strony planowania i technicznej pewnie to sobie ogarniesz.

0

Olesio, brygada, jest to numer danego autobusu kursującego na linii. U Was w Szczecinie chyba nie używa się oznaczania autobusów numerem brygady, ale w Warszawie już tak. Numer brygady oznacza tabliczka z numerkiem za szybą http://phototrans.net/14,138927,0,Solaris_Urbino_15_8515.html

Natomiast jeżeli chodzi o krótszy, czy dłuższy czas dojazdu od przystanku do krańca wynika to z zastosowania różnego czasu przejazdu. Abyś zrozumiał o co chodzi posłużę się przykładem

W dzień powszedni o godzinie 9 czas przejazdu między przystankami A i B wynosi 3 minuty. O godzinie 22 ten czas wynosi już 2 minuty ze względu na mniejsze natężenie ruchu, które daje możliwość pokonania tego odcinka w krótszym czasie.

0

No ok, w Szczecinie to nie przyglądałem się czy są takie tabliczki. Po prostu jako pasażera mnie to nigdy nie musiało interesować. Natomiast z tymi czasami, chodziło mi o coś innego. Chodziło o dane naniesione na rozkład fizycznie. I na przykład pomiędzy pętlą, a końcowym - czas przejazdu wynosić powinien na przykład sumarycznie 25 minut. I tak jest to rozpisane na rozkładzie. Ale jak się aplikacją typu MMPK, spisaną z rozkładów na podanej wcześniej przeze mnie stronie ZDITMu sprawdzi czas przyjazdu na ostatni przystanek albo któryś z przed koncowym, to suma ta się nie zgadza.

A co do kodu to myślę, że ogarniesz. Najlepiej jeśli to jest dla firmy i trzeba się na przykład przejmowac legalnością oraz róznymi licencjami, mozna zaprzęgnąc darmowego Lazarusa do wykorzystania również komercyjnego. Chociaż nie wiem czy ten podany przede mnie kod dla ogarnięcia OE Calca się sprawdzi. Ale po drobnych przeróbkach myślę, że powinien. Wtedy również wiadomo, że pakiet OE jest darmowy, do komercyjnego wykorzystania chyba również i mamy jasną sytuację oraz mniej problemów przy ponoszeniu kosztów na dodatkowe oprogramowanie.

Niemniej jednak co wybierzesz, pod Delphi nawet, tak jak pisałem temat nie jest trudny do ogarnięcia. Tylko nie wiem jak się by trzeba było zabrać do rozplanowania rozkładu tak, by zmniejszać lub zwiększać natężenie pojazdów w zależności od pory dnia. Ponieważ wiadomo, że czasem na godzinę jest więcej przyjazdów, a później autobus/tramwaj zjeżdza na zajezdnie albo zwiększa się odstęp pomiędzy kursami, bo kierowca/motorniczy musi mieć przerwę w pracy.

0

Dawno temu na studiach robiłem coś takiego tyle, że był to system ekspercki. Ja użyłem wszystkich standardowych komponentów Delphi (label, edit, button itd.) aplikacja była bazodanowa więc był również DBGrid i komponenty ZEOS do połączenia z PostrgreSQL. Do rysowania/drukowania użyłem FastReportów. Co prawda FR jest płatny ale możesz zastosować inny darmowy np QuickReport, FreeReport lub wbudowany w delphi RaveReport. Z niestandardowych komponentów użyłem tylko labela z pakietu JEDI ponieważ jest tam fajny edit umożliwiający pisanie w pionie (nie trzeba po canvasie rysować). Nawiązując do mojego projektu ze studiów to czasy przejazdów poszczególnych odcinków właśnie definiował system ekspercki (sam obliczał czas na podstawie blisko setki parametrów - pory dnia, liczby mieszkańców, ilości samochodów na 1 mieszkańca, daty, pory roku, wydarzeń sportowych, wielkości miasta, ceny paliwa, rodzaju trasy, przepisów drogowych, itd. itd.).

0
woolfik napisał(a):

Nawiązując do mojego projektu ze studiów to czasy przejazdów poszczególnych odcinków właśnie definiował system ekspercki (sam obliczał czas na podstawie blisko setki parametrów - pory dnia, liczby mieszkańców, ilości samochodów na 1 mieszkańca, daty, pory roku, wydarzeń sportowych, wielkości miasta, ceny paliwa, rodzaju trasy, przepisów drogowych, itd. itd.).

I to ostatnie zdanie jest najważniejsze, reszta to pikuś ;-)
Robiłeś to wszystko w Delphi?

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