Dobrý deň,
mám za úlohu jeden projekt a moc ho nechápem. môžete mi napísať ako danú problematiku vydíte vy a ako by som mal s projektom zacať poprípade aj nejaký ten kod by si ma zišiel. Dakujem
Simulace pošty
Problém
Na poště je N přepážek (např. N = 5), každá z nich je určena pro jiný typ transakcí. U každé přepážky je fronta pro libovolné množství zákazníků. Zákazník, který přijde na poštu, si zvolí typ transakce a postaví se do fronty u odpovídající přepážky. Doba strávená u přepážky je závislá na tom, kolik trans-akcí daného typu potřebuje zákazník realizovat - nejméně jednu transakci, nejvýše P transakcí (např. P = 3). Zpracování jedné transakce bez ohledu na její typ trvá jednu časovou jednotku. Pravidelně přicházejí noví zákazníci k překážkám (v jedné časové jednotce přijde na poštu právě jeden zákazník). Simulujte průběh zpracování front u přepážek pro M zákazníků pošty (např. M = 100).
Implementace
• Čísla N, M, P deklarujte jako globální konstanty.
• Každou přepážku reprezentujte frontou implementovanou pomocí ukazatelů. Fronta bude umět poskytnout první prvek. Nepoužívejte třídy (fronta bude reprezentována jako struktura).
• N přepážek reprezentujte polem délky N, prvky pole budou fronty.
• Prvek fronty implementujte jako strukturu, která bude obsahovat identifikaci zákazníka (číslo typu int) a počet požadovaných transakcí (číslo typu int).
• Průběh zpracování front u přepážek reprezentujte cyklem while, který bude ukončen, pokud bu-dou všechny fronty prázdné. V každém kroku cyklu (jedné časové jednotce) bude všem zákazní-kům, kteří jsou na řadě (první ve frontě), buď zpracována jedna transakce, nebo pokud nebude žádná transakce požadována (není co zpracovat), bude zákazník odebrán z fronty. Pokud celkový počet zákazníků vygenerovaných během simulace nedosáhl M, bude vygenerován další zákazník s náhodně vygenerovaným typem transakce (0 až N-1 tak, aby to odpovídalo některému indexu fronty v poli) a s náhodným počtem požadovaných transakcí (od 1 do P). Identifikátorem zákazní-ka je pořadí, ve kterém byl vygenerován (první zákazník bude mít identifikátor 1, poslední M). Zá-kazník se poté se zařadí do fronty pro odpovídající typ transakce.
Na výstupu zobrazte odděleny mezerou tyto operace:
• Vygenerování nového zákazníka ve formě G#1[F#2][#3], kde #1 je identifikace zákazníka a #2 je typ transakce (index fronty v poli) a #3 je počet požadovaných transakcí. Třetí zákazník pro druhý typ transakce se třemi požadavky bude vytisknut ve tvaru G3[F1][3].
• Vložení zákazníka do fronty ve formě V#1[F#2], kde #1 je identifikace zákazníka, #2 je index fron-ty v poli. Pokud bude vložen třetí zákazník do druhé fronty, bude na výstupu V3[F1].
• Zpracování jedné transakce zákazníka ve formě T#1[#2], kde #1 je identifikace zákazníka a #2 je počet zbývajících transakcí. Pokud zpracujeme jednu transakci třetímu zákazníkovi, bude na vý-stupu K3[2].
• Odebrání zákazníka z fronty ve tvaru O#1[F#2], kde #1 je identifikace zákazníka, #2 je index fronty v poli. Pokud bude odebrán třetí zákazník z druhé fronty, bude na výstupu O3[F1].