C Program
C Program
h>
#include <string.h>
typedef struct {
int id;
char name[50];
float price;
int quantity;
} Product;
typedef struct {
int product_id;
int quantity;
} InvoiceItem;
typedef struct {
int invoice_id;
InvoiceItem items[MAX_PRODUCTS];
int item_count;
float total_amount;
} Invoice;
Product products[MAX_PRODUCTS];
Invoice invoices[MAX_INVOICES];
void addProduct() {
if (product_count >= MAX_PRODUCTS) {
return;
Product p;
p.id = product_count + 1;
scanf("%s", p.name);
scanf("%f", &p.price);
scanf("%d", &p.quantity);
products[product_count] = p;
product_count++;
void viewProducts() {
if (product_count == 0) {
return;
printf("ID\tName\tPrice\tQuantity\n");
void generateInvoice() {
Invoice inv;
inv.invoice_id = invoice_count + 1;
inv.item_count = 0;
inv.total_amount = 0.0;
scanf("%d", &inv.item_count);
scanf("%d", &product_id);
i--;
continue;
scanf("%d", &quantity);
continue;
// Decrease stock
inv.items[i].product_id = product_id;
inv.items[i].quantity = quantity;
invoices[invoice_count] = inv;
invoice_count++;
printf("Item\tQuantity\tPrice\tTotal\n");
int main() {
int choice;
while (1) {
printf("4. Exit\n");
scanf("%d", &choice);
switch (choice) {
case 1:
addProduct();
break;
case 2:
viewProducts();
break;
case 3:
generateInvoice();
break;
case 4:
printf("Exiting...\n");
return 0;
default:
return 0;
}