Shopping Cart Project Using C Language - GeeksforGeeks (2025)

// C Program to implement

// Shopping Cart

#include <ctype.h>

#include <math.h>

#include <stdio.h>

#include <string.h>

#include <time.h>

// Structure declared for storing

// details

struct details {

char uname[50];

int age;

char password[100];

char email[100];

char mobile[10];

};

// Structure to store details about

// shops

struct Shops {

char shop[100];

char item1[20];

char item2[20];

char item3[20];

char item4[25];

int first, second, third, fourth;

};

// Array of Structure declared

struct Shops m[5];

struct details s[100];

void signup();

void account_validate();

int validate();

void login();

void cart();

void shop();

void items();

void item_order(int item);

void shop_initialize();

void Shop(int shop_choice);

// Global variables declared

char t_name[100], t_password1[100];

char t_password2[100], t_email[100];

char t_mobile[100];

int flag = 1, i, j = 0, count = 0, caps = 0;

int Small = 0,total = 0 ,success = 0,special = 0, numbers = 0;

int x, choice,t_age, item_choice, n,shop_choice, search_choice, confirm,ch, item, shop_id;

// Driver code

int main()

{

// Loop while till which runs till break is called

while (1) {

// First Page

printf("\n\n\t******************Welcome to Shop "

"Cart*******************\n");

printf("\n\n1)SIGNUP");

printf("\n2)LOGIN");

printf("\n3)EXIT");

// Asking for choice

printf("\n\n\nEnter your choice : ");

scanf("%d", &choice);

// Switch used to check the input

// choice

switch (choice) {

case 1: {

// Signup function called

signup();

break;

}

case 2: {

// Login function called

login();

break;

}

case 3: {

printf(

"\n\t*************************Thank you "

"Visit Again***********************\n\n");

// close the program

return 0;

}

default: {

// Choice entered is not correct

printf("\n\nPlease enter valid choice!!\n");

break;

}

}

}

}

// Signup function declared

void signup()

{

printf("\n\n\t******************"

"Welcome to Signup "

"Page****************"

"*\n\n");

// Taking name as input

printf("\tEnter Your name : ");

scanf("%s", t_name);

// Taking email as input

printf("\tEnter Your Email : ");

scanf("%s", t_email);

// Taking password as input

printf("\tEnter Password : ");

scanf("%s", t_password1);

// Taking Confirm Password as input

printf("\tConfirm Password : ");

scanf("%s", t_password2);

// Taking Mobile number as input

printf("\tEnter Your Mobile Number : ");

scanf("%s", t_mobile);

// Taking Age as input

printf("\tEnter Your Age : ");

scanf("%d", &t_age);

x = validate();

if (x == 1) {

// Calling account_validate to check

// if entered details follows the defined

// rules

account_validate();

// login function appears

login();

}

}

// Signup process

int validate()

{

// Name Validation

for (i = 0; t_name[i] != '\0'; i++) {

if (!((t_name[i] >= 'a' && t_name[i] <= 'z')

|| (t_name[i] >= 'A' && t_name[i] <= 'Z'))) {

printf("\nPlease enter the valid Name!\n");

flag = 0;

break;

}

}

if (flag == 1) {

count = 0;

// Email ID Validation

for (i = 0; t_email[i] != '\0'; i++) {

if (t_email[i] == '@' || t_email[i] == '.')

count++;

}

if (count >= 2 && strlen(t_email) >= 5) {

// Password Validation

if (!strcmp(t_password1, t_password2)) {

if (strlen(t_password1) >= 8

&& strlen(t_password1) <= 12) {

caps = 0;

Small = 0;

numbers = 0;

special = 0;

for (i = 0; t_password1[i] != '\0';

i++) {

if (t_password1[i] >= 'A'

&& t_password1[i] <= 'Z')

caps++;

else if (t_password1[i] >= 'a'

&& t_password1[i] <= 'z')

Small++;

else if (t_password1[i] >= '0'

&& t_password1[i] <= '9')

numbers++;

else if (t_password1[i] == '@'

|| t_password1[i] == '&'

|| t_password1[i] == '#'

|| t_password1[i] == '*')

special++;

}

if (caps >= 1 && Small >= 1

&& numbers >= 1 && special >= 1) {

// Age Validation

if (t_age != 0 && t_age > 0) {

// Mobile Validation

if (strlen(t_mobile) == 10) {

for (i = 0; i < 10; i++) {

if (t_mobile[i] >= '0'

&& t_mobile[i]

<= '9') {

success = 1;

}

else {

printf(

"\n\nPlease");

printf(

"Enter Valid ");

printf(

"Mobile "

"Number\n\n");

return 0;

break;

}

}

// Success flag to know

// every inputs are valid

if (success == 1)

return 1;

}

else {

printf("\n\nPlease Enter "

"the 10 digit "

"mobile number\n\n");

return 0;

}

}

else {

printf("\n\nPlease Enter the "

"valid age\n\n");

return 0;

}

}

else {

printf(

"\n\nPlease Enter the strong "

"password, Your password must "

"contain atleast one "

"uppercase,Lowercase, Number "

"and special character\n\n ");

return 0;

}

}

else {

printf("\nYour Password is very "

"short\nLength must between 8 "

"to 12\n\n");

return 0;

}

}

else {

printf("\nPassword Mismatch\n\n");

return 0;

}

}

else {

printf("\nPlease Enter Valid E-Mail\n\n");

return 0;

}

}

}

// Account Validation

void account_validate()

{

for (i = 0; i < 100; i++) {

// Check account already exist

if (!(strcmp(t_email, s[i].email)

&& strcmp(t_password1, s[i].password))) {

printf("\n\nAccount Already Existed. Please "

"Login !\n\n");

login();

break;

}

}

// If no account present it creates

if (i == 100) {

strcpy(s[j].uname, t_name);

s[j].age = t_age;

strcpy(s[j].password, t_password1);

strcpy(s[j].email, t_email);

strcpy(s[j].mobile, t_mobile);

j++;

printf("\n\n\nAccount Successfully Created!\n\n");

}

}

// Login function

void login()

{

printf("\n\n\t******************"

"Welcome to Login "

"Page********************"

"****\n\n");

printf("\n\nLOGIN\n\n");

printf("\t Enter Your Email: ");

// Askinf for email

scanf("%s", t_email);

printf("\t Enter Your Password: ");

// Asking for your Password

scanf("%s", t_password1);

for (i = 0; i < 100; i++) {

// Check whether the input email is already existed

// or not

if (!strcmp(s[i].email, t_email)) {

// Check whether the password is matched with

// the email or not

if (!strcmp(s[i].password, t_password1)) {

printf("\n\nWelcome %s, ", s[i].uname);

printf(

"Your are successfully logged in\n\n ");

printf(

"We Provide two ways of search : \n ");

printf("1) Search By Shop\n ");

printf("2) Search by item\n ");

printf("3) Exit\n\n");

printf("Please Enter your choice : ");

scanf("%d", &search_choice);

// Getting the input whether

// the user are going to search

// /Order by Shop or search/

// order by item.

switch (search_choice) {

case 1: {

shop();

break;

}

case 2: {

items();

break;

}

case 3: {

// main function called again

main();

break;

}

default: {

// Choice entered is wrong

printf("Please Enter the valid "

"choice!!!\n\n");

break;

}

}

break;

}

else {

// Password entered is wrong

printf("\n\nInvalid Password!!\n ");

printf("Please Enter the correct "

"password\n\n");

login();

break;

}

}

else {

// If details are incorrect

printf("\n\nAccount doesn't exist, Please "

"signup!!\n\n ");

main();

break;

}

}

}

// Calling shop_initialize function

void shop_initialize()

{

// All the Products avaiable are being stored

// in variables

strcpy(m[1].shop, "Puma");

strcpy(m[1].item1, "puma sneaker V2");

strcpy(m[1].item2, "mens dryflex");

strcpy(m[1].item3, "one8x puma");

m[1].first = 3499;

m[1].second = 2999;

m[1].third = 5999;

strcpy(m[2].shop, "USA");

strcpy(m[2].item1, "US polo Tshirt");

strcpy(m[2].item2, "Shoes");

strcpy(m[2].item3, "shirt");

m[2].first = 999;

m[2].second = 2000;

m[2].third = 1499;

strcpy(m[3].shop, "WROGN");

strcpy(m[3].item1, "Mens Watch");

strcpy(m[3].item2, "mens solid jacket");

strcpy(m[3].item3, "casusal T-shirt");

m[3].first = 2000;

m[3].second = 2239;

m[3].third = 799;

}

// shop Function is called

void shop()

{

// Shop Products are collected

shop_initialize();

// Showing all the availableshop

printf("\n\nPlease Choose the Shop \n\n1) %s\n2) "

"%s\n3) %s",

m[1].shop, m[2].shop, m[3].shop);

printf("\n4) Exit\n\nPlease ");

printf("select the shop\t");

// Asking for choice

scanf("%d", &shop_choice);

if (shop_choice > 4) {

printf("Please Enter the");

printf("valid choice\n\n");

shop();

}

else if (shop_choice == 4)

main();

else{

// Shop function called with your choice

Shop(shop_choice);

}

}

// Function to implement the shop

void Shop(int shop_choice)

{

// total variable

total = 0;

while (1) {

printf("\n\nList of items available ");

printf("in %s\n\n1) %s --> %d\n",

m[shop_choice].shop, m[shop_choice].item1,

m[shop_choice].first);

printf("2) %s --> %d\n3) %s --> %d\n",

m[shop_choice].item2, m[shop_choice].second,

m[shop_choice].item3, m[shop_choice].third);

printf("4) Cart\n5) Exit\n\nPlease Enter ");

printf("Your Choice : ");

scanf("%d", &item_choice);

// Get the input for no of items to calculate the

// total amount

if (item_choice == 1) {

printf("Please Enter the ");

printf("Count of %s\t", m[shop_choice].item1);

scanf("%d", &n);

total = total + (n * m[shop_choice].first);

}

else if (item_choice == 2) {

printf("Please Enter the Count");

printf("of %s : ", m[shop_choice].item1);

scanf("%d", &n);

total = total + (n * m[shop_choice].second);

}

else if (item_choice == 3) {

printf("Please Enter the Count");

printf("of %s : ", m[shop_choice].item3);

scanf("%d", &n);

total = total + (n * m[shop_choice].third);

}

else if (item_choice == 4) {

cart();

}

else if (item_choice == 5) {

shop();

}

else {

printf("Please Enter the");

printf("valid Choice\n\n");

}

}

}

void items()

{

total = 0;

// Initialize all the Shop and their items

shop_initialize();

while (1) {

//Showing all the choices of items

printf("\n\nPlease choose the ");

printf("item\n\n1) %s /t--> %d\n2) %s/t --> %d",

m[1].item1, m[1].first, m[1].item2,

m[1].second);

printf("\n3) %s/t --> %d\n4) %s/t --> %d\n",

m[1].item3, m[1].third, m[2].item1,

m[2].first);

printf("5) %s/t --> %d\n6) %s/t --> %d\n",

m[2].item2, m[2].second, m[2].item3,

m[2].third);

printf("7) %s/t --> %d\n8) %s/t --> %d\n",

m[3].item1, m[3].first, m[3].item2,

m[3].second);

printf("9) %s/t --> %d\n10) Cart\n", m[3].item3,

m[3].third);

printf("11) Exit");

printf("\nPlease Enter Your Choice : ");

scanf("%d", &item);

if (item > 10) {

printf("Please Enter the ");

printf("valid choice\n\n");

items();

}

// Moves to the cart

else if (item == 10)

cart();

else if (item == 11)

// exit(1);

return;

// Function to get the no of items and to calculate

// the total amount of the order.

else

item_order(item);

}

}

// item_order function to process items ordered

void item_order(int item)

{

if (item >= 1 && item <= 3)

shop_id = 1;

else if (item >= 4 && item <= 6)

shop_id = 2;

else

shop_id = 3;

if ((item % 3) == 1) {

// Asking for choice of product

printf("Please Enter the");

printf(" Count of %s : ", m[shop_id].item1);

scanf("%d", &n);

total = total + (n * m[shop_id].first);

}

else if ((item % 3) == 2) {

// Asking for choice of product

printf("Please Enter the ");

printf("Count of %s\t", m[shop_id].item2);

scanf("%d", &n);

total = total + (n * m[shop_id].second);

}

else if ((item % 3) == 0) {

// Asking for choice of product

printf("Please Enter the Count of %s\t",

m[shop_id].item3);

scanf("%d", &n);

total = total + (n * m[shop_id].third);

}

}

// Function to implement the cart

void cart()

{

// details about the products in cart

printf("\n\n\n\n\t*********************************"

"Cart*********************************");

printf("\n\nYour Total Order Amount is : %d\n", total);

printf("\n\nDo You wish to order (y=1/n=0) : ");

scanf("%d", &ch);

if (ch == 1) {

printf("\n\nThank You for your Order");

printf("\nYour item is on the way. Welcome again "

"\n\n ");

main();

return;

}

else if (ch == 0) {

printf("To cancel Your Order = 1 \nTo Exit = 0 ");

printf("Select option : ");

scanf("%d", &confirm);

if (confirm == 1) {

//Failed

printf("\n\nOops! Your item is cancelled!! "

"Exiting..\n\n");

printf("Thank You visit again!\n");

main();

return;

}

else {

// Product is bought

printf("\n\n\t\t************Thank "

"You******************\n\n");

login();

}

}

else {

// Asking for choice

printf("\n\nPlease Enter the correct choice\n\n ");

cart();

}

}

Shopping Cart Project Using C Language - GeeksforGeeks (2025)

References

Top Articles
Latest Posts
Recommended Articles
Article information

Author: Dong Thiel

Last Updated:

Views: 6237

Rating: 4.9 / 5 (59 voted)

Reviews: 90% of readers found this page helpful

Author information

Name: Dong Thiel

Birthday: 2001-07-14

Address: 2865 Kasha Unions, West Corrinne, AK 05708-1071

Phone: +3512198379449

Job: Design Planner

Hobby: Graffiti, Foreign language learning, Gambling, Metalworking, Rowing, Sculling, Sewing

Introduction: My name is Dong Thiel, I am a brainy, happy, tasty, lively, splendid, talented, cooperative person who loves writing and wants to share my knowledge and understanding with you.