prosím o radu jak by jste naprogramovali tohle ???
Problém
V autoservisu poskytují opravy v N různých provozech (např. N = 5). Každý požadavek na opravu v příslušném provozu je zařazen do seznamu na konec. Nicméně se může stát, že vznikne potřeba mimořádné opravy, v tom případě je požadavek na opravu zařazen na začátek seznamu a oprava je realizována neprodleně. Realizace opravy trvá jednu časovou jednotku. Simulujte průběh realizace oprav pro M požadavků (např. M = 500). Předpokládejte, že v jedné časové jednotce může vzniknout až P nových požadavků (např. P = 7).
implementace:
Čísla N, P deklarujte jako globální konstanty.
Každý provoz reprezentujte jednosměrným seznamem implementovaným pomocí ukazatelů. Nepoužívejte třídy (seznam bude reprezentován jako struktura).
N provozů reprezentujte polem, prvky pole budou seznamy.
Prvek seznamu (požadavek na opravu) implementujte jako strukturu, která bude obsahovat iden-tifikaci požadavku na opravu (číslo typu int), provoz, pro který je oprava plánována (číslo typu int) a potřebu zařazení mimo pořadí (hodnota typu bool)
Průběh realizace oprav reprezentujte cyklem while, který bude ukončen, pokud budou všechny seznamy prázdné. V každém kroku cyklu (jedné časové jednotce) bude všem provozům (sezna-mům), pokud nebudou prázdné, odebrán jeden požadavek na opravu. Pokud celkový počet po-žadavků vygenerovaných během simulace nedosáhl M, bude náhodně vygenerována další skupi-na požadavků (nejméně 1, nejvýše P, celkem nejvýše M). Identifikátorem požadavku na opravu je pořadí, ve kterém byl vygenerován (první požadavek bude mít identifikátor 1, poslední M). Dále se náhodně vygeneruje provoz, pro který je oprava určena (0 až N- 1), a náhodně se vygeneruje potřeba zařazení mimo pořadí. Poté se nově vygenerované požadavky na opravy zařadí správně do seznamů reprezentujících provozy (mimořádné na začátek a ostatní na konec).
Na výstupu zobrazte odděleny mezerou tyto operace:
Vygenerování nového požadavku na opravu ve formě G#1*P#2][#3], kde #1 je identifikace poža-davku, #2 je požadovaný provoz a #3 je potřeba zařazení mimo pořadí. Normální desátý požada-vek na druhý provoz bude vytisknut ve tvaru G10[P1][0] (mimo pořadí G10[P1][1]).
Vložení požadavku do seznamu ve formě V#1*S#2+, kde #1 je identifikace požadavku, #2 je poža-dovaný provoz a #3 je potřeba mimo pořadí. Pokud bude vložen desátý požadavek do seznamu pro druhý provoz v normálním pořadí, bude na výstupu V10[S1][0].
Realizace jednoho požadavku (odebrání ze seznamu) ve formě O#1*S#2], kde #1 je identifikace požadavku a #2 provoz. Pokud realizujeme desátý požadavek v seznamu pro druhý provoz, bude na výstupu O10*1+.
předem díky za rady a návody .
je to urgetní
Fórum › C / C++
Simulace autoservisu
To Jurasz : no asi nejdřive si udělej seznam aby si mohl prvky vkladat jak na konec se seznamu tak na zacatek a vymazat jednotlive prvky, plno navodu najdeš na ineternetu(to bude asi ta nejtezsi cast) no a pak realizovami vkladani novych pozadavku a vybirani uz tak tezke nebude...
To Jurasz : Jak jsi s takovým přístupem prošel předmětem Algoritmy I? Nebo snad Algoritmy II na jedničku nenavazují? :-)
Zdravím,
může být seznám naiplementován takto? :
struct provoz
{
int pozadavek;
struct pozadavky
{
int identifikace;
int provozident;
bool poradi;
};
provoz* Next;
};
struct List
{
provoz* Head;
provoz* Current;
};
Nejsem si jist jak udělat jednosměrný seznam ve kterém lze vkládat i přednostně na začátek.
Zdravicko resim stejny ukol a nejak si nevim rady s funkci na odebrani z fronty (resp. realizace opravy).. pomuze nekdo ? :D
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Simulace uživatele — založil midnighter@centrum.cz
SIMULACE CINNOSTI — založil VLAD
Simulace pokladny — založil Noneus
Simulace obchodního domu — založil Fry
Simulace Draggable pluginu — založil wokena
Moderátoři diskuze