Bankteller-Konsolenanwendung

Ich mache eine einfache Anwendung, um das zu simulierenBankangestellter Problem. Was ich zu simulieren versuche, ist:

Sie haben 4 Zähler in einem Geschäft. 1 Zähler ist offen. Kunden kommen herein und geben die Zeile für den ersten Zähler ein.

Wenn der vierte Kunde die Zeile für den ersten Zähler eingibt, sollte ein weiterer Zähler geöffnet werden. Die Linie sollte gleichmäßig auf die 2 Zähler aufgeteilt sein. Wenn dem Kunden am zweiten Zähler geholfen wird und keine neuen Kunden in die Linie eintreten, sollte der Zähler geschlossen werden. Grundsätzlich ist 4 zu viel.

Ich kann es nicht herausfinden. Ich weiß, dass ich eine Warteschlange verwenden muss. Aber wie? Kann mir jemand ein Beispiel für eine Konsolenanwendung geben? Bevorzugtes C #.

Danke im Voraus.

Folgendes habe ich bisher versucht:

Klasse eintragen:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace RegisterCounter
{
    class Register
    {
    private int customerCount;
    public Queue<Customer> Line = new Queue<Customer>();

    public Register()
    {
        customerCount = 2;
    }

    public Register(int customerCount)
    {
        this.customerCount = customerCount;
    }

    public int getCustomers()
    {
        return customerCount;
    }
}

}

Kundenklasse:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace RegisterCounter
{
    class Customer
    {
    private int checkoutTime;

    public Customer()
    {
        checkoutTime = 3;
    }

    public Customer(int checkoutTime)
    {
        this.checkoutTime = checkoutTime;
    }

    public int GetCheckoutTime()
    {
        return checkoutTime;
    }
}

}

Manager registrieren:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace RegisterCounter
{
    class RegisterManager
    {
        public List<Register> registers = new List<Register>();
        Register r1 = new Register();
        Customer c1 = new Customer();


        public RegisterManager()
        {
            registers.Add(r1);
        }

        public void ManageCustomers()
    {
        for (int i = 0; i < registers.Count; i++)
        {
            registers.Insert(i, new Register());

            if (i / 4 <= registers..Line.Count)
            { 

            }
        }
    }
}

}

Antworten auf die Frage(0)

Ihre Antwort auf die Frage