Node1: 6 5 add to queue at counter 0 Node2: 7 4 add to queue counter 4 Node3: 18
ID: 3533355 • Letter: N
Question
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.
THe program shoud keep adding to the queue at the set intercal 0,4,812,12...but only move to the processing variable if the first has completed.
#include <iostream>
?
#include <fstream>
using namespace std;
?
const int maxqueue = 7;
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;
createqueue(standard);
starting;
int counter=0;
int machine;
int processTime;
while (counter <100)
{
while (!(inputfile.eof()) && (!(fullqueue(standard))))
{
if (counter==0)
{
inputfile>>starting;
inputfile>>processing;
enqueue(standard, starting, processing);
processTime = starting+processing;
}
if (counter=starting)
{
dequeue(standard, starting, processing);
machine=processTime;
cout<<starting<<endl;
}
if (counter=counter+4)
{
inputfile>>starting;
inputfile>>processing;
enqueue(standard, starting, processing);
processTime=starting+processing;
}
?
counter++;
}
}
?
?
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
#include ? #include 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) } { coutprocessing; 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); coutRelated Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.