ATTENTIONS: **********MUST USE MY CODES ATTACHED IN FILES**************
struct Donut {
string flavor = "";
float price = 0.0;
Donut(string flvr, float prc) {
flavor = flvr;
price = prc;
}
Donut(){}
};
struct DonutTray {
Donut** donuts;
int capacity, front = 0, back = 0, count = 0;
DonutTray(int size) {
capacity = size;
donuts = new Donut*[capacity];
}
};
void displayDonut(Donut* donut) - displays the favor and price of the donut structure referenced by the donut pointer
void displayDonutTray(DonutTray* tray) - iterates over the array of donut references in the structure referenced by tray pointer, and uses displayDonut() to display each of the donuts referenced by the pointers in the tray array
void enqueueDonut(DonutTray* tray, Donut* donut) - enqueues the donut structure referenced by the donut pointer into the donuts array in the tray structure at the back index. Increments the count and back index making sure the back index does not go beyond the tray’s capacity
Donut* dequeueDonut(DonutTray* tray) - dequeues the donut structure at the front index from the donuts array in the tray structure. Decrements the count and increments front index making sure the front index does not go beyond the tray’s capacity. Returns the dequeued donut
Sample Output
[0] Donut: Chocolate $0.99
[1] Donut: Boston Crm $0.99
[2] Donut: Jelly $0.99
[3] Donut: Glazed $0.99
Donut: Chocolate $0.99
[1] Donut: Boston Crm $0.99
[2] Donut: Jelly $0.99
[3] Donut: Glazed $0.99
[1] Donut: Boston Crm $0.99
[2] Donut: Jelly $0.99
[3] Donut: Glazed $0.99
[4] Donut: Eclair $0.99
[0] Donut: Snowy $0.99
Donut: Boston Crm $0.99
Donut: Jelly $0.99
[3] Donut: Glazed $0.99
[4] Donut: Eclair $0.99
[0] Donut: Snowy $0.99
[1] Donut: Moonraker $0.99