Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I have this code so far for processing a a priority queue. I have a set interval

ID: 3533330 • Letter: I

Question

I have this code so far for processing a a priority queue. I have a set interval time when items get queued from an input file . Then each item has a time to start or go into processing and how long to be in processing.

Node1: 6     5    add to queue at counter 0

Node2: 7    4    add to queue counter 4         

Node3: 18   6    add to queue counter 8

Node4: 23     3 add to queue counter 12

Node5: 27    5 add to queue counter 16

Node 1 gets queued at counter 0, once counter is at 6 it moves into processing, at this point it stays in processing for 5 counts. At the same time when counter has reached 4 node 2 gets queued.

The goal is to add nodes to queues, move from queue to processing and if something is in the process check if it is finished.

#include <iostream>

?

#include <fstream>

using namespace std;

?

const int maxqueue = 8;

struct queuetype

{

int start[maxqueue];

int process [maxqueue];

int front;

int back;

};

void createqueue(queuetype &queue);

bool fullqueue(queuetype queue);

bool emptyqueue(queuetype queue);

void enqueue(queuetype &queue, int &starting , int &processing);

void dequeue(queuetype &queue, int &starting , int &processing);

int main()

{

ifstream inputfile;

inputfile.open("nums.txt");

if (!inputfile)

{

cout<<"The input file could not be opened"<<endl;

system ("PAUSE");

return 1;

}

queuetype standard;

int starting, processing;

char quest;

createqueue(standard);

int machine;

int counter=0;

while (counter!=500)

{

?

if (counter==0)

{

inputfile>>starting;

inputfile>>processing;

enqueue(standard, starting, processing);

}

if (counter==starting)

{

machine=processing;

}

if (counter==5)

{

inputfile>>starting;

inputfile>>processing;

enqueue(standard, starting, processing);

}

while(!(emptyqueue(standard)))

{

dequeue(standard, starting, processing);

cout << "START :"<< starting<< " "<<"Processing :"<<processing<<endl;

}

?

cin.get();

cin.ignore();

//system("pause");

}

void createqueue(queuetype &queue)

{

queue.front = maxqueue - 1;

queue.back = maxqueue - 1;

}

bool fullqueue(queuetype queue)

{

if(queue.front == (queue.back +1) % maxqueue ) return 1;

else return 0;

}

void enqueue(queuetype &queue, int &starting , int &processing)

{

queue.back = (queue.back + 1) % maxqueue;

queue.start[queue.back] = starting;

queue.process[queue.back] = processing;

}

bool emptyqueue(queuetype queue)

{

if(queue.front == queue.back) return 1;

else return 0;

}

void dequeue(queuetype &queue, int &starting , int &processing)

{

queue.front = (queue.front +1) % maxqueue;

starting = queue.start[queue.front];

processing = queue.process[queue.front];

}

Explanation / Answer

the code is right it work's