Kanika0503 / DataStructures_KS

5 stars 0 forks source link

Using doubly linkedlist #4

Open Kanika0503 opened 3 months ago

Kanika0503 commented 3 months ago

Develop a system for businesses to track their inventory, manage stock levels, and generate reports on sales and stock movements.

harshavardhan2321 commented 2 months ago

include

using namespace std;

struct Item { string name; int quantity; int quantitySold; int quantityRestocked; Item next; Item prev; }temp,head,tail,nn;

void addItem(string name, int quantity) //adding item to the inventory { nn = new Item; nn->name = name; nn->quantity = quantity; nn->quantitySold = 0; nn->quantityRestocked = 0; nn->next = NULL;

if (head == NULL) {
    head = nn;
    tail = nn;
} else {
    tail->next = nn;
    nn->prev = tail;
    tail = nn;
}

}

void updateQuantity(string name, int newQuantity) // i used this function to update the quantity of an item in the inventory { temp = head; while (temp != NULL) { if (temp->name == name) { int quantityDiff = newQuantity - temp->quantity; //// it will calculate quantity difference for stock movement if (quantityDiff < 0) {

            temp->quantitySold -= quantityDiff; // if quantity decreased, it indicates item saled
        } else
        {
            temp->quantityRestocked += quantityDiff; //// if quantityy increased, it indicates item is restocking
        }
        temp->quantity = newQuantity;
        return;
    }
    temp = temp->next;
}
cout << "Item not found in inventory." << endl;

}

// i used it for generating the sales and stock movements void generateReport() { temp = head; cout << "Inventory Report:" << endl; while (temp != NULL) { cout << "Item: " << temp->name << ", Quantity: " << temp->quantity << ", Quantity Sold: " << temp->quantitySold << ", Quantity Restocked: " << temp->quantityRestocked << endl; temp = temp->next; } }

int main() {

addItem("Item1", 10);
addItem("Item2", 20);
addItem("Item3", 15);

updateQuantity("Item2", 25); // Restock
updateQuantity("Item1", 7); // Sale
updateQuantity("Item3", 20); // Restock
updateQuantity("Item2", 15); // Sale

generateReport();

return 0;

}

Harshak2058 commented 2 months ago

include

using namespace std;

struct Item { string name; int quantity; int quantitySold; int quantityRestocked; Item next; Item prev; }temp,head,tail,nn;

void addItem(string name, int quantity) //adding item to the inventory { nn = new Item; nn->name = name; nn->quantity = quantity; nn->quantitySold = 0; nn->quantityRestocked = 0; nn->next = NULL;

if (head == NULL) { head = nn; tail = nn; } else { tail->next = nn; nn->prev = tail; tail = nn; } }

void updateQuantity(string name, int newQuantity) // i used this function to update the quantity of an item in the inventory { temp = head; while (temp != NULL) { if (temp->name == name) { int quantityDiff = newQuantity - temp->quantity; //// it will calculate quantity difference for stock movement if (quantityDiff < 0) {

        temp->quantitySold -= quantityDiff; // if quantity decreased, it indicates item saled
    } else
    {
        temp->quantityRestocked += quantityDiff; //// if quantityy increased, it indicates item is restocking
    }
    temp->quantity = newQuantity;
    return;
}
temp = temp->next;

} cout << "Item not found in inventory." << endl; }

// i used it for generating the sales and stock movements void generateReport() { temp = head; cout << "Inventory Report:" << endl; while (temp != NULL) { cout << "Item: " << temp->name << ", Quantity: " << temp->quantity << ", Quantity Sold: " << temp->quantitySold << ", Quantity Restocked: " << temp->quantityRestocked << endl; temp = temp->next; } }

int main() {

addItem("Item1", 10); addItem("Item2", 20); addItem("Item3", 15);

updateQuantity("Item2", 25); // Restock updateQuantity("Item1", 7); // Sale updateQuantity("Item3", 20); // Restock updateQuantity("Item2", 15); // Sale

generateReport();

return 0; }