Witam.
Mam do napisania program realizujący kolejkę. Programowi mam podawać prawdopodobieństwo p, jeżeli p mniejsze od losowe liczby z zakresu 0-100 to przychodzi klient jeżeli nie to jeden odchodzi z kolejki. Napisałem program według schematu który dostałem i wskazówek lecz program wywala się nie mam pojęcia dlaczego proszę o pomoc.
#include <iostream>
#include <stdio.h>
#include <ctime>
using namespace std;
struct Klient
{
int IdOsoby;
Klient *wsk;
};
class Kolejka
{
private:
Klient *pierwszy;
Klient *ostatni;
public:
Kolejka()
{
pierwszy = 0;
ostatni = 0;
}
~Kolejka()
{
Klient *tmp;
while(pierwszy != 0)
{
tmp = pierwszy;
pierwszy = pierwszy ->wsk;
delete tmp;
}
}
bool Przyszedl(const int & ID)
{
Klient *nowy = new Klient();
if(nowy == 0)
return 0;
nowy->IdOsoby = ID;
nowy->wsk = NULL;
if(pierwszy = NULL)
pierwszy = nowy;
else
{
ostatni->wsk = nowy;
}
ostatni = nowy;
printf("Klient o ID: %i staje w kolejce.", ID);
return 1;
}
bool Wyszedl(/*const int & ID*/)
{
if(pierwszy == NULL)
return 0;
int ID = pierwszy->IdOsoby;
Klient *tmp = pierwszy;
pierwszy = pierwszy->wsk;
delete tmp;
if(pierwszy == NULL)
ostatni = NULL;
printf("Klient o ID: %i wychodzi z kolejki i udaje sie do okienka.", ID);
return 1;
}
};
int main()
{
Kolejka *wsk = new Kolejka();
srand(time(NULL));
int p;
int identyfikator = 1;
do{
scanf("%i", &p);
}while(p>100 || p<0);
do
{
if(rand() % 100 < p)
{
wsk->Przyszedl(identyfikator);
identyfikator += 1;
}
else
{
wsk->Wyszedl();
}
_sleep(1000);
}while(1);
system("pause");
return 0;
}