• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zadanie z książki - problem ze zrozumieniem zadania.

Object Storage Arubacloud
0 głosów
155 wizyt
pytanie zadane 28 listopada 2016 w C i C++ przez sofnir Gaduła (4,690 p.)

Hej, 

przerabiał ktoś może książkę Stephena Pratta "Język C++ Szkoła Programowania"? Jest tam jedno zadanie, rozdział 12, ćwiczenia programistyczne, zadanie 5. Nie rozumiem jego treści, czyli co mam zrobić. 

"Bank Stu Kas przeprowadził analizę, z której wynika, że klienci bankomatu nie lubią czekać w kolejce dłużej niż minutę. Korzystając z programu symulującego z listingu 12.10, znajdź taką wartość średniej liczby klientów na godzinę, dla której średni czas oczekiwania w kolejce wyniesie minutę (w próbach co najmniej 100-godzinnych).

Klasy:

class Customer
{
private:
    long arrive;
    int processtime;
public:
    Customer() {arrive = processtime = 0;}
    void set(long when);
    long when() const {return arrive;}
    int ptime() const {return processtime;}
};

typedef Customer Item;
class Queue
{
private:
    struct Node {Item item; struct Node * next;};
    enum {Q_SIZE = 10};
    Node * front;
    Node * rear;
    int items;
    const int qsize;
    Queue(const Queue & q) : qsize(0) { }
    Queue & operator=(const Queue & q) {return *this;}
public:
    Queue(int qs = Q_SIZE);
    ~Queue();
    bool isempty() const;
    bool isfull() const;
    int queuecount() const;
    bool enqueue(const Item &item);
    bool dequeue(Item &item);
};

Plik cpp

Queue::Queue(int qs) : qsize(qs)
{
    front = rear = NULL;
    items = 0;
}

Queue::~Queue()
{
    Node * temp;
    while (front != NULL)
    {
        temp = front;
        front = front->next;
        delete temp;
    }
}

bool Queue::isempty() const
{
    return items == 0;
}

bool Queue::isfull() const
{
    return items == qsize;
}

int Queue::queuecount() const
{
    return items == qsize;
}

bool Queue::enqueue(const Item &item)
{
    if(isfull())
        return false;
    Node * add = new Node;
    add->item = item;
    add->next = NULL;
    items++;
    if(front == NULL)
        front = add;
    else
        rear->next = add;
    rear = add;
    return true;
}

bool Queue::dequeue(Item &item)
{
    if(front == NULL)
        return false;
    item = front->item;
    items--;
    Node * temp = front;
    front = front->next;
    delete temp;
    if(items == 0)
        rear = NULL;
    return true;
}

//metody klasy customer

void Customer::set(long when)
{
    processtime = std::rand() % 3 + 1;
    arrive = when;
}

W skrócie program działa w taki sposób (przykład):

Podaj maksymalną długość kolejki: 10
Podaj symulowany czas (w godzinach): 100
Podaj średnią liczbę klientów na godzinę: 15
liczba klientów przyjętych: 1485
liczba klientów obsłużonych: 1485
liczba klientów odesłanych: 0
średnia długość kolejki: 0.15
średni czas oczekiwania: 0.63 minut

Nie rozumiem treści tego zadania. Rozdział omawia dynamiczną alokację pamięci wewnątrz klas, więc powinno się coś w tym kierunku zrobić, ale nie mam pojęcia co.

1 odpowiedź

0 głosów
odpowiedź 28 listopada 2016 przez Kasztan Dyskutant (8,080 p.)
Wydaję mi się, że musisz wpisać odpowiednie wartości i zbadać jakąś zależność. Następne zadanie jest podobne tam już trzeba coś zrobić : )
komentarz 29 listopada 2016 przez sofnir Gaduła (4,690 p.)
Dalej nie wiem co mam właściwie zrobić.

Podobne pytania

0 głosów
2 odpowiedzi 278 wizyt
pytanie zadane 25 kwietnia 2018 w C i C++ przez Piotr_Minda Początkujący (380 p.)
+1 głos
3 odpowiedzi 1,107 wizyt
pytanie zadane 27 października 2016 w C i C++ przez Bartek213 Nowicjusz (200 p.)

92,596 zapytań

141,446 odpowiedzi

319,720 komentarzy

61,980 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...