我有一个带有优先队列和常规队列的项目。我需要使用优先级队列按从最小到最大的 ID 组织产品。
然后使用常规队列,我需要将它们分为 3 类:(库存过剩、库存不足、在限制范围内);所以输出应该是这样的:
库存不足
14887 10 美元 14
15678 $1 298
积压
12565 4 539 美元
18967 美元 12 401
限额内库存
19847 2 220 美元
我写了这段代码,但有些东西我不确定,我的输出看起来像:
积压
12565 4 539 美元
库存不足
14887 10 美元 14
库存不足
15678 $1 298
积压
18967 美元 12 401
StockWithInLimits
19847 2 220 美元
int main()
{
ifstream inFile; // file containing operations
ofstream outFile; // file containing output
string inFileName = "product.txt";
string outFileName = "result.txt";
inFile.open (inFileName.c_str());
outFile.open (outFileName.c_str());
ItemType item;//declare a temp item that trows into pQue
PQType<ItemType> pqueue(50);//priority queue that sorts items by ID
QueueADT <ItemType> que;
QueueADT <ItemType> lowQ;
QueueADT <ItemType> highQ;
QueueADT <ItemType> withinQ;
while ( item.readProduct (inFile) )
{
pqueue.Enqueue(item);
}
while (!pqueue.IsEmpty())
{
pqueue.Dequeue (item);
int tempcurinvent = item.getcurrentInventory ();
int tempmax = item.getMax ();
int tempmin =item.getMin ();
if ((tempcurinvent < tempmin) && (tempcurinvent < tempmax))//UnderStock
{
lowQ.Enqueue (item);
}
if ((tempcurinvent < tempmax) && ( tempcurinvent > tempmin)) //WithINLimits
{
withinQ.Enqueue (item);
}
else if ((tempcurinvent > tempmin) && (tempcurinvent > tempmax))//OverStock
{
highQ.Enqueue (item);
}
outFile << "UnderStock" << endl;
item.printProduct (outFile);
lowQ.Dequeue (item);
outFile << "WithINLimits:" << endl;
item.printProduct (outFile);
withinQ.Dequeue (item);
outFile << "OverStock" << endl;
item.printProduct (outFile);
highQ.Dequeue (item);
}
inFile.close ();
outFile.close ();
return 0;
}