IKG/FIFO

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Python</language>
<run id="693818082b422">
from collections import deque

class Warteschlange:
    def __init__(self):
        self.queue = deque()

    def anstellen(self, person):
        self.queue.append(person)
        print(f"{person} stellt sich an.")

    def bedienen(self):
        if self.ist_leer():
            print("Die Warteschlange ist leer. Niemand kann bedient werden.")
        else:
            person = self.queue.popleft()
            print(f"{person} wird bedient.")

    def anzeigen(self):
        if self.ist_leer():
            print("Die Warteschlange ist leer.")
        else:
            print("Aktuelle Warteschlange:")
            for position, person in enumerate(self.queue, start=1):
                print(f"{position}. {person}")

    def ist_leer(self):
        return len(self.queue) == 0


def menue():
    print("\n--- FIFO Warteschlangen-Simulation ---")
    print("Erstens: Person anstellen")
    print("Zweitens: Person bedienen")
    print("Drittens: Warteschlange anzeigen")
    print("Viertens: Programm beenden")


def main():
    warteschlange = Warteschlange()

    while True:
        menue()
        auswahl = input("Bitte wähle eine Option: ")

        if auswahl == "1":
            name = input("Name der Person: ")
            warteschlange.anstellen(name)

        elif auswahl == "2":
            warteschlange.bedienen()

        elif auswahl == "3":
            warteschlange.anzeigen()

        elif auswahl == "4":
            print("Programm wird beendet.")
            break

        else:
            print("Ungültige Eingabe. Bitte erneut wählen.")


if __name__ == "__main__":
    main()
</run>

<run id="693817ea930bd">
</run>