AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Warteschlange einer arztpraxis

Ein Thema von anDy2k5 · begonnen am 18. Dez 2006 · letzter Beitrag vom 19. Dez 2006
Antwort Antwort
anDy2k5

Registriert seit: 18. Dez 2006
1 Beiträge
 
#1

Warteschlange einer arztpraxis

  Alt 18. Dez 2006, 23:39
Hallo,

Ich soll im Rahmen einer Schulaufgabe eine Warteschlange für eine Arztpraxis erstellen.
Hierbei sollen Personen, die ich mit Hilfe einer INI-Datei zufällig hinzufüge, auf 4 Wartezimmer aufgeteilt werden
und zwar max. 5 Stück pro Wartezimmer (der letzte Patient eines Wartezimmers wird mit Hilfer eines Timers alle 5 Sekunden entfernt).
Dieses Problem habe ich auch soweit lösen können, allerdings möchte ich das Programm noch etwas erweitern bzw. umstellen.

Ich würde es gern so regeln, daß Patienten eine zufällige Abarbeitungszeit zugewiesen bekommen und keinen festen Wert von 5 Sekunden und eventuell noch eine Anzeige über den der Status ersichtlich ist.
Leider stehe ich im Moment etwas auf dem Schlauch und komme nicht wirklich weiter, daher würde ich mich über eine Hilfestellung freuen.

Schon jetzt VIELEN DANK für eure Hilfe!

Hier noch der Code:

Delphi-Quellcode:
var
  Form1: TForm1;
  patienten:integer;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var ini: TIniFile;
vorname: string;
nachname: string;
begin
 ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+
    'namen.ini');
  try
    vorname:=ini.ReadString('Vornamen',inttostr(RandomRange(1,43)),'');
    nachname:=ini.ReadString('Nachname',inttostr(RandomRange(1,43)),'');
  finally
    ini.free;
  end;
    edit1.text := vorname + ' ' + nachname;
patienten:=patienten+1;
rechnen(patienten);
if Zimmer1.Lines.Count = 5 then
  if Zimmer2.Lines.Count = 5 then
    if Zimmer3.Lines.Count = 5 then
    Zimmer4.Lines.Add(Edit1.Text)
    else
    Zimmer3.Lines.Add(Edit1.Text)
  else
  Zimmer2.Lines.Add(Edit1.Text)
else
Zimmer1.Lines.Add(Edit1.Text);
 end;

procedure TForm1.rechnen(z1:integer);
var z2:integer;
var ergebnis:integer;
begin
z2:=10;
ergebnis:=z1*z2;
edit2.text:=inttostr(ergebnis);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Zimmer1.Lines.Delete(0);
Zimmer2.Lines.Delete(0);
Zimmer3.Lines.Delete(0);
Zimmer4.Lines.Delete(0);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
zimmer1.Clear;
zimmer2.Clear;
zimmer3.Clear;
zimmer4.Clear;
end;
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#2

Re: Warteschlange einer arztpraxis

  Alt 19. Dez 2006, 00:10
Deine Zuweisung finde ich nicht gut. Bei 4 Patienten werden sie alle in das erste Zimmer geschickt und die anderen haben nichts zu tun. Du solltest eher das Zimmer mit den wenigsten Patienten suchen und da den nächsten hinschicken.
Wenn du dann zufällige Zeiten benutzen willst (F1: random, randomize) solltest du den nächsten Patienten in das Zimmer schicken, bei dem die Summe über die Wartezeiten der schon wartenden ab geringsten ist, unabhängig davon, wie viele Patienten dort warten.
Die Anzeige könntest du über ein Label pro Zimmer machen, das du jede Sekunde aktualisierst.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Warteschlange einer arztpraxis

  Alt 19. Dez 2006, 09:07
Guten Morgen,

dein Lehrer will anscheinend auf die RoundRobin Verteilung hinaus.

4 Wartezimmer (a,b,c,d)
nun werden die Patienten reihenweise auf die Wartezimmer veteilt.

1.P auf a
2.P auf b
3.P auf c
4.P auf d
6.P auf a
...

Sind alle Wartezimmer belegt wird so lange gewartet bis ein Patient das Wartezimmer verläßt.

Code:
For wartezimmerCount:=1 to 5 do
  if PatientenCount < maxPatienten then
    warteZimmer[WarteZimmerCount].addPatient
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

Re: Warteschlange einer arztpraxis

  Alt 19. Dez 2006, 11:02
Ja, so wie es jetzt ist, ist es nicht optimal. Wenn alle Wartezimmer voll sind, wohin mit den Patienten?
Hast du eine Vorgabe für die max. Anzahl an Patienten je Wartezimmer? Wenn nicht müssen die Patienten gleichmäßiger verteilt werden, wenn ja musst du sie wieder nach Hause schicken. ^^

Ich nehme an, Berechnen berechnet die Wartezeit.

Bei dir werden in allen 4 Wartezimmern zur gleichen Zeit jemand rausgefischt. Vielleicht hilft ein Timer je Wartezimmer mit randomRange Intevall.

Das nur mal so am Rande.

MfG
freak
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz