Startpunkten
This commit is contained in:
144
Simulering/lab1.cpp
Normal file
144
Simulering/lab1.cpp
Normal file
@@ -0,0 +1,144 @@
|
||||
/* *********************************************************************** */
|
||||
/* lab1.cpp 980910 */
|
||||
/* Innehåller köhantering */
|
||||
/* *********************************************************************** */
|
||||
/* Daniel Westerberg */
|
||||
/* Christian Ohlsson */
|
||||
/* Anna-Maria Haglund */
|
||||
/* Ingela Johansson */
|
||||
/* Charlotta Lagerkvist */
|
||||
/* *********************************************************************** */
|
||||
#include "lab1.hpp"
|
||||
|
||||
/* *********************************************************************** */
|
||||
/* constructorn */
|
||||
/* Nollställer variabler */
|
||||
/* INPUT: inget */
|
||||
/* OUTPUT: inget */
|
||||
/* *********************************************************************** */
|
||||
queue::queue()
|
||||
{
|
||||
first = NULL;
|
||||
last = NULL;
|
||||
cur = NULL;
|
||||
r = 0;
|
||||
}
|
||||
|
||||
/* *********************************************************************** */
|
||||
/* destructorn */
|
||||
/* Tömmer listan */
|
||||
/* INPUT: inget */
|
||||
/* OUTPUT: inget */
|
||||
/* *********************************************************************** */
|
||||
queue::~queue()
|
||||
{
|
||||
cur = first;
|
||||
while (cur)
|
||||
{
|
||||
first = cur;
|
||||
cur = cur->next;
|
||||
delete first;
|
||||
}
|
||||
first = NULL;
|
||||
last = NULL;
|
||||
cur = NULL;
|
||||
r = 0;
|
||||
}
|
||||
|
||||
/* *********************************************************************** */
|
||||
/* enqueue() */
|
||||
/* ställer en person med ett antal varor i kön */
|
||||
/* INPUT: antal varor */
|
||||
/* OUTPUT: bool */
|
||||
/* *********************************************************************** */
|
||||
bool queue::enqueue(int v)
|
||||
{
|
||||
if (cur = new kund)
|
||||
{
|
||||
cur->next=NULL;
|
||||
cur->varor = v;
|
||||
if (first == NULL)
|
||||
first = cur;
|
||||
else
|
||||
last->next = cur;
|
||||
last = cur;
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* *********************************************************************** */
|
||||
/* dequeue() */
|
||||
/* tar bort en person ur kön */
|
||||
/* INPUT: inget */
|
||||
/* OUTPUT: bool */
|
||||
/* *********************************************************************** */
|
||||
bool queue::dequeue()
|
||||
{
|
||||
if (cur = first)
|
||||
{
|
||||
if ((first = first->next) == NULL)
|
||||
last=NULL;
|
||||
delete cur;
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* *********************************************************************** */
|
||||
/* warez() */
|
||||
/* kollar hur lång varje kö är, tidsmässigt! */
|
||||
/* INPUT: inget */
|
||||
/* OUTPUT: tiden för varje kund baserad på antal varor */
|
||||
/* *********************************************************************** */
|
||||
int queue::warez()
|
||||
{
|
||||
int x=0;
|
||||
cur = first;
|
||||
while (cur)
|
||||
{
|
||||
x += cur->varor*R + B; // räknar ut tiden för varje kund + 'x'
|
||||
cur = cur->next;
|
||||
}
|
||||
return x;
|
||||
}
|
||||
|
||||
/* *********************************************************************** */
|
||||
/* pay() */
|
||||
/* betalningsfunktion, returnerar antalet varor kvar att betala */
|
||||
/* INPUT: antal varor att läggas till */
|
||||
/* OUTPUT: antal varor för första kunden i kön */
|
||||
/* *********************************************************************** */
|
||||
int queue::pay(int v)
|
||||
{
|
||||
if (first)
|
||||
return (first->varor += v); // lägger till 'v' och returnerar
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* *********************************************************************** */
|
||||
/* queueSize() */
|
||||
/* returnerar antalet kunder i kön */
|
||||
/* INPUT: inget */
|
||||
/* OUTPUT: Antal kunder i kön */
|
||||
/* *********************************************************************** */
|
||||
int queue::queueSize()
|
||||
{
|
||||
int x=0;
|
||||
cur = first;
|
||||
while (cur)
|
||||
{
|
||||
cur = cur->next;
|
||||
x++;
|
||||
}
|
||||
return x;
|
||||
}
|
||||
|
||||
/* *********************************************************************** */
|
||||
/* isEmpty() */
|
||||
/* kollar om en kö är tom */
|
||||
/* INPUT: inget */
|
||||
/* OUTPUT: TRUE om listan är tom */
|
||||
/* *********************************************************************** */
|
||||
bool queue::isEmpty() { return (first == NULL) ; }
|
||||
Reference in New Issue
Block a user