Autor Beitrag
12345678qw
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Do 04.06.09 08:37 
Hi,
ich muss für die Schule drei kassen-System vergleichen und die Wartezeit herausfinden, um dann eine Auswertung darüber zu machen, welche Wartezeiten und Kosten für Personal(wenn eine zusätzliche Kasse geöffnet wird).

Hat jemand schon mal so etwas gemacht.

Ich bin schon angefangen und es klappt schon , aber durch die neu geöffneten Kassen, wird es bei mir immer verzweigter.

Eine Warteschlange ist ein 2-dimensionales Array. Index [0,0]=Anzahl der Produkte (daraus ergibt sichdie Servicezeit). Index[0,1]=Servicezeit
Ja, und Index 0 ist halt dann immer mein erster Kunde.
Wenn ein Kunde bedient wurde, dann initialisiere ich das Array neu.

Danke im Voraus.

PS: Die mathematische komponente (Auswertung) ist nicht das problem und die zählt nachher. Der Programmierteil interessiert nicht so doll


Moderiert von user profile iconGausi: Topic aus Freeware Projekte verschoben am Do 04.06.2009 um 13:18
Horst_H
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1654
Erhaltene Danke: 244

WIN10,PuppyLinux
FreePascal,Lazarus
BeitragVerfasst: Do 04.06.09 12:01 
Hallo,

es gibt verschiedene grundlegende abstrakte Datentypen.
de.wikipedia.org/wiki/Datenstruktur
Dabei gibt es auch die Warteschlange / queue
In Delphi kannst Du auch TList nehmen und dort Objekte anhängen (add) und löschen (Delete wer hätte das gedacht ;-) )
Du erzeugst also statt eines Array ein Kunden-Objekt mit den passenden Eigenschaften.
und verwaltest es in einer Liste, indem du es einfach anhängst und immer das erste in der Liste verarbeitest und dann löschst.
www.delphi-forum.de/...hlight=warteschlange gibt zum Teil sinnvolle Anhaltspunkte, was den den Kunden an relevanten Eigenschaften haben kann.
Ein Tutorial von Luckie:
www.michael-puff.de/...er/Delphi/Tutorials/ Klassen_in_Delphi mit Demo
Hier wird sogar ein Kunde/customer mit Tlist benutzt:
www.delphibasics.co....&ExpandCode1=Yes


Gruß Horst
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 480

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Do 04.06.09 13:20 
Ich habe die Beiträge, die nichts mit dem Thema zu tun haben, die dafür aber geeignet waren, eine leicht gereizte Stimmung zu provozieren, gelöscht. Bitte bleibt beim Thema, danke.

_________________
We are, we were and will not be.
Horst_H
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1654
Erhaltene Danke: 244

WIN10,PuppyLinux
FreePascal,Lazarus
BeitragVerfasst: Do 04.06.09 15:42 
Hallo,

Zitat:
Ich bin schon angefangen und es klappt schon , aber durch die neu geöffneten Kassen, wird es bei mir immer verzweigter.


Um es vielleicht klarer zu machen, Du hast die Warteschlangen an den verschiedenen Kassen und eine die die ankommenden Kunden repräsentiert die jetzt zahlen wollen und noch unschlüssig sind, an welche Kasse sie sich anstellen wollen.
Bei der Verarbeitung läuft sozusagen eine Uhr/Zeitstempel mit.
Jede Warteschlange an der Kasse hat die Angabe wann der nächste Kunde fertig ist (Uhrzeit letzter Kunde fertig+Verarbeitungszeit neuerKunde ). Wenn jetzt ein Kunde fertig ist, wird die Zeit an der Kasse für den nächsten Kunden korrigiert. Mit dieser Zeit werden jetzt die anderen Kassen verglichen, haben sie eine kleinere Zeit ist das die neue 'aktuelle' Kasse, damit weiter abfragen , bis man alle abgefragt hat.
Jetzt weiß man um die nächste Kasse, nun ist es auch gut den nächsten Kunden auf eine der Kassenwarteschlangen zu verteilen, denn erst jetzt hat sich die Situation geändert, entsprechend werden die neu generierten Kunden hinten ankommenden Kunden gehängt.
Dann geht das Spiel bei der aktuellen Kasse weiter.

Mit TList kannst Du auch einen Kunden aus der Mitte der einen Warteschlange entfernen (delete) und an beliebiger Stelle in einer anderen Warteschlange einfügen ( insert ) .
Am Ende läuft es darauf hinaus, das es eine große Warteschlange gibt, und jeder zur nächsten freien Kasse läuft (siehe Flughafen beim einchecken ).

Gruß Horst