Ejemplo n.º 1
0
/**
 * get minimum price associated product form inputbuffers
 */
Product getMinProduct(InputBuffer * head)
{
    Product product;
    if (head==NULL||head->next==NULL)
    {
        product.price=-1;
        return product;
    }
    InputBuffer * p=head->next;
    InputBuffer * q=p;
    float minPrice=p->data[p->currentIndex].price;
    while (p!=NULL)
    {
        float price=p->data[p->currentIndex].price;
        if (minPrice>price)
        {
            q=p;
            minPrice=price;
        }
        p=p->next;
    }
    product.setId(q->data[q->currentIndex]);
    product.price=minPrice;
    product.setName();
    q->currentIndex++;
    if (q->currentIndex>=q->count)           //retrieve data
    {
        if(readDataToInputBuffer(q->infile, q->count, q->data))
        {
            q->currentIndex=0;
        }
        else                                // file is readed completely
        {
            deleteInputBufferFromInpuBuffers(head, q);
        }
    }
    return  product;
}