-
Notifications
You must be signed in to change notification settings - Fork 0
/
ccqueue.cpp
70 lines (54 loc) · 1.16 KB
/
ccqueue.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
// Description: Implmentation of a customer complaint queue class
#include "ccqueue.h"
CCQueue :: CCQueue()
{
DLinkedList<Ticket> *tickets = new DLinkedList<Ticket>;
maxticketid = 0;
}
bool CCQueue::Add(string customer, string complaint)
{
if (customer.length() == 0 || complaint.length() == 0)
{
return false;
}
else
{
Ticket NewTicket = Ticket(maxticketid + 1, customer, complaint);
tickets.InsertBack(NewTicket);
maxticketid++;
return true;
}
}
Ticket CCQueue::Service()
{
if (tickets.IsEmpty() == true)
{
throw std::out_of_range("Empty List");
}
Ticket RemovedTicket = tickets.RemoveAt(0);
return RemovedTicket;
}
bool CCQueue::MoveUp(int index)
{
if (index <= 0 || index >= tickets.Size())
{
return false;
}
Ticket RemovedTicket = tickets.RemoveAt(index);
tickets.InsertAt(RemovedTicket, index - 1);
return true;
}
bool CCQueue::MoveDown(int index)
{
if (index >= tickets.Size() - 1 || index < 0)
{
return false;
}
Ticket RemovedTicket = tickets.RemoveAt(index);
tickets.InsertAt(RemovedTicket, index + 1);
return true;
}
int CCQueue::Size() const
{
return tickets.Size();
}