Applicazione console bancaria

Sto facendo una semplice applicazione per simulare il problema dei bancomat . Quello che sto cercando di simulare è:

Hai 4 contatori in un negozio. 1 contatore è aperto. I clienti iniziano a entrare e inseriscono la riga per il primo contatore.

Quando il quarto cliente immette la riga per il primo contatore, deve essere aperto un altro contatore. La linea deve essere divisa equamente tra i 2 contatori. Quando il cliente al secondo contatore viene aiutato e nessun nuovo cliente entra nella linea, il contatore dovrebbe chiudersi. Fondamentalmente 4 sono troppi.

Non riesco a capirlo. So che ho bisogno di usare una coda. Ma come? Qualcuno potrebbe darmi un esempio in un’applicazione console? Preferibile C #.

Grazie in anticipo.

Ecco cosa ho provato finora,

class di registro:

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 Line = new Queue(); public Register() { customerCount = 2; } public Register(int customerCount) { this.customerCount = customerCount; } public int getCustomers() { return customerCount; } } 

}

Classe cliente:

 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; } } 

}

Responsabile del registro:

 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace RegisterCounter { class RegisterManager { public List registers = new List(); 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) { } } } } 

}