Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Having some trouble finshing up a C project. From the looks of it I believe my s

ID: 3820998 • Letter: H

Question

Having some trouble finshing up a C project. From the looks of it I believe my shopping chart is not updateing correctly.

If I could have some help with this I would appericate it.

How output should look

Code follows below.

ItemToPurchase.c

#include "ItemToPurchase.h"
#include <string.h>
#include <stdio.h>

void MakeItemBlank(ItemToPurchase* item){
strcpy((*item).itemName, "none");
strcpy((*item).itemDescription, "none");
(*item).itemPrice=0;
(*item).itemQuantity=0;
}

void PrintItemCost(ItemToPurchase item){
printf("%s %d @ $%d = $%d ", item.itemName, item.itemQuantity, item.itemPrice, (item.itemPrice*item.itemQuantity));
}

void PrintItemDescription(ItemToPurchase item){
printf("%s: %s. ", item.itemName, item.itemDescription);
}

ItemToPurcahse.h

#ifndef ITEM_TO_PURCHASE_H
#define ITEM_TO_PURCHASE_H

typedef struct ItemToPurchase_struct {
char itemName[50];
char itemDescription[50];
int itemPrice;
int itemQuantity;
} ItemToPurchase;

void MakeItemBlank(ItemToPurchase *item);

void PrintItemCost(ItemToPurchase item);

void PrintItemDescription(ItemToPurchase item);

#endif

main.c

#include <stdio.h>
#include "ItemToPurchase.h"
#include "ShoppingCart.h"

char PrintMenu(ShoppingCart usrShopping) {

char menuOp = ' ';

printf("MENU ");
printf("a - Add item to cart ");
printf("r - Remove item from cart ");
printf("c - Change item quantity ");
printf("i - Output items' descriptions ");
printf("o - Output shopping cart ");
printf("q - Quit ");

while (menuOp != 'a' && menuOp != 'r' && menuOp != 'c' &&
menuOp != 'i' && menuOp != 'o' && menuOp != 'q') {
printf("Choose an option: ");
gets(&menuOp);
}

if (menuOp == 'a') {
ItemToPurchase item;

printf("ADD ITEM TO CART ");

printf("Enter the item name: ");
gets(item.itemName);
printf("Enter the item description: ");
gets(item.itemDescription);
printf("Enter the item price: ");
scanf("%d", &item.itemPrice);
printf("Enter the item quantity: ");
scanf("%d", &item.itemQuantity);

AddItem(item, usrShopping);

printf(" ");

menuOp = ' ';


} else if (menuOp == 'r') {
printf("REMOVE ITEM FROM CART ");

/*char name[50];

printf("Enter name of item to remove:");
fgets(name, 50, stdin);

RemoveItem(name, usrShopping);*/

menuOp = ' ';
} else if (menuOp == 'c') {
printf("CHANGE ITEM QUANTITY ");
/*char name[50];

printf("Enter the item name:");
fgets(name, 50, stdin);

int i = 0;

while (strcmp(name, usrShopping.cartItems[i].itemName) != 0) {
++i;
}

ModifyItem(usrShopping.cartItems[i], usrShopping);*/


menuOp = ' ';
} else if (menuOp == 'i') {
printf("OUTPUT ITEM'S DESCRIPTIONS ");
PrintDescriptions(usrShopping);
menuOp = ' ';

} else if (menuOp == 'o') {
printf("OUTPUT SHOPPING CART ");
PrintTotal(usrShopping);
menuOp = ' ';
}

return menuOp;
}


int main() {

ShoppingCart usrShopping;
usrShopping.cartSize = 0;

printf("Enter Customer's Name: ");
gets(usrShopping.customerName);
printf("Enter Today's Date: ");
gets(usrShopping.currentDate);

printf("Customer Name: %s ", usrShopping.customerName);
printf("Today's Date: %s ", usrShopping.currentDate);

char menuChoice = ' ';

while (menuChoice != 'q') {
menuChoice = PrintMenu(usrShopping);
}

return 0;
}

ShoppingCart.c

#include "ShoppingCart.h"
#include <string.h>
#include <stdio.h>

ShoppingCart AddItem(ItemToPurchase item, ShoppingCart cart) {
cart.cartItems[cart.cartSize] = item;
++cart.cartSize;
return cart;
}

/*ShoppingCart RemoveItem(char name[], ShoppingCart cart) {
int i = 0;

while (strcmp(name, cart.cartItems[i].itemName) != 0) {
++i;
}

for(i; i< cart.cartSize; ++i){
ItemToPurchase temp = cart.cartItems[i];
cart.cartItems[i] = temp;
}

}*/

ShoppingCart ModifyItem(ItemToPurchase item, ShoppingCart cart) {
/*int quantity;

printf("Enter the new quantity:");
scanf("%d", quantity);

int i = 0;

while (strcmp(item.itemName, cart.cartItems[i].itemName) != 0) {
++i;
}

cart.cartItems[i].itemQuantity = quantity;*/
}

int GetNumItemsInCart(ShoppingCart cart) {
return cart.cartSize;
}

int GetCostOfCart(ShoppingCart cart) {
int total = 0;
int temp = 0;

for (int i = 0; i < cart.cartSize; ++i) {
temp = (cart.cartItems[i].itemQuantity * cart.cartItems[i].itemPrice);
total = total + temp;
}
return total;
}

void PrintTotal(ShoppingCart cart) {
int total = 0;
int temp = 0;

printf("%s's Shopping Cart - %s ", cart.customerName, cart.currentDate);
printf("Number of Items: %d ", cart.cartSize);

if (cart.cartSize == 0) {
printf("SHOPPING CART IS EMPTY ");
printf("Total: $0 ");
} else {
for (int i = 0; i < cart.cartSize; ++i) {
temp = (cart.cartItems[i].itemQuantity * cart.cartItems[i].itemPrice);
printf("%s %d @ %d = %d ", cart.cartItems[i].itemName, cart.cartItems[i].itemQuantity,
cart.cartItems[i].itemPrice, temp);
total = total + temp;
}
printf("Total: $%d ", total);
}
}

void PrintDescriptions(ShoppingCart cart) {

printf("%s's Shopping Cart - %s ", cart.customerName, cart.currentDate);

printf("Item Descriptions ");
for (int i = 0; i < cart.cartSize; ++i) {
PrintItemDescription(cart.cartItems[i]);
//printf("%s: %s ", cart.cartItems[i].itemName, cart.cartItems[i].itemDescription);
}

}

#include "ShoppingCart.h"
#include <string.h>
#include <stdio.h>

ShoppingCart AddItem(ItemToPurchase item, ShoppingCart cart) {
cart.cartItems[cart.cartSize] = item;
++cart.cartSize;
return cart;
}

/*ShoppingCart RemoveItem(char name[], ShoppingCart cart) {
int i = 0;

while (strcmp(name, cart.cartItems[i].itemName) != 0) {
++i;
}

for(i; i< cart.cartSize; ++i){
ItemToPurchase temp = cart.cartItems[i];
cart.cartItems[i] = temp;
}

}*/

ShoppingCart ModifyItem(ItemToPurchase item, ShoppingCart cart) {
/*int quantity;

printf("Enter the new quantity:");
scanf("%d", quantity);

int i = 0;

while (strcmp(item.itemName, cart.cartItems[i].itemName) != 0) {
++i;
}

cart.cartItems[i].itemQuantity = quantity;*/
}

int GetNumItemsInCart(ShoppingCart cart) {
return cart.cartSize;
}

int GetCostOfCart(ShoppingCart cart) {
int total = 0;
int temp = 0;

for (int i = 0; i < cart.cartSize; ++i) {
temp = (cart.cartItems[i].itemQuantity * cart.cartItems[i].itemPrice);
total = total + temp;
}
return total;
}

void PrintTotal(ShoppingCart cart) {
int total = 0;
int temp = 0;

printf("%s's Shopping Cart - %s ", cart.customerName, cart.currentDate);
printf("Number of Items: %d ", cart.cartSize);

if (cart.cartSize == 0) {
printf("SHOPPING CART IS EMPTY ");
printf("Total: $0 ");
} else {
for (int i = 0; i < cart.cartSize; ++i) {
temp = (cart.cartItems[i].itemQuantity * cart.cartItems[i].itemPrice);
printf("%s %d @ %d = %d ", cart.cartItems[i].itemName, cart.cartItems[i].itemQuantity,
cart.cartItems[i].itemPrice, temp);
total = total + temp;
}
printf("Total: $%d ", total);
}
}

void PrintDescriptions(ShoppingCart cart) {

printf("%s's Shopping Cart - %s ", cart.customerName, cart.currentDate);

printf("Item Descriptions ");
for (int i = 0; i < cart.cartSize; ++i) {
PrintItemDescription(cart.cartItems[i]);
//printf("%s: %s ", cart.cartItems[i].itemName, cart.cartItems[i].itemDescription);
}

}

ShopingCart.h

#ifndef SHOPPING_CART_H
#define SHOPPING_CART_H

#include "ItemToPurchase.h"

typedef struct ShoppingCart_struct {
char customerName[50];
char currentDate[50];
ItemToPurchase cartItems[10];
int cartSize;
} ShoppingCart;

ShoppingCart AddItem(ItemToPurchase item, ShoppingCart cart);

ShoppingCart RemoveItem(char name[], ShoppingCart cart);

ShoppingCart ModifyItem(ItemToPurchase item, ShoppingCart cart);

int GetNumItemsInCart(ShoppingCart cart);

int GetCostOfCart(ShoppingCart cart);

void PrintTotal(ShoppingCart cart);

void PrintDescriptions(ShoppingCart cart);

#endif

Choose an option ADD ITEM TO CART Enter the item name: Enter the item description: Enter the item price Enter the item quantity: MENU a Add item to cart r Remove item from cart Change item quantity c output items' descriptions i o Output shopping cart Quit Your output ends with Choose an option Choose an option OUTPUT SHOPPING CART John Doe's Shopping Cart February 1, 2016 Number of Items: 0 SHCP PING CART IS EMPTY Total: $0 MENU a Add item to cart r Remove item from cart c Change item quantity output items' descriptions i o Output shopping cart Quit Choose an option:

Explanation / Answer

You should use Do--while statement for menus

Here is Correct code:

ItemToPurchase.c

include "ItemToPurchase.h"
#include <string.h>
#include <stdio.h>

void MakeItemBlank(ItemToPurchase* item){
strcpy((*item).itemName, "none");
strcpy((*item).itemDescription, "none");
(*item).itemPrice=0;
(*item).itemQuantity=0;
}

void PrintItemCost(ItemToPurchase item){
printf("%s %d @ $%d = $%d ", item.itemName, item.itemQuantity, item.itemPrice, (item.itemPrice*item.itemQuantity));
}

void PrintItemDescription(ItemToPurchase item){
printf("%s: %s. ", item.itemName, item.itemDescription);
}

ItemToPurcahse.h

#ifndef ITEM_TO_PURCHASE_H
#define ITEM_TO_PURCHASE_H

typedef struct ItemToPurchase_struct {
char itemName[50];
char itemDescription[50];
int itemPrice;
int itemQuantity;
} ItemToPurchase;

void MakeItemBlank(ItemToPurchase *item);

void PrintItemCost(ItemToPurchase item);

void PrintItemDescription(ItemToPurchase item);

#endif

main.c

#include <stdio.h>
#include "ItemToPurchase.h"
#include "ShoppingCart.h"

char PrintMenu(ShoppingCart usrShopping) {

char menuOp = ' ';

char ch;

do

{

printf("MENU ");
printf("a - Add item to cart ");
printf("r - Remove item from cart ");
printf("c - Change item quantity ");
printf("i - Output items' descriptions ");
printf("o - Output shopping cart ");
printf("q - Quit ");

printf("Choose an option: ");
gets(&menuOp);

switch(menuOp)

{

case 'a':

ItemToPurchase item;

printf("ADD ITEM TO CART ");

printf("Enter the item name: ");
gets(item.itemName);
printf("Enter the item description: ");
gets(item.itemDescription);
printf("Enter the item price: ");
scanf("%d", &item.itemPrice);
printf("Enter the item quantity: ");
scanf("%d", &item.itemQuantity);

AddItem(item, usrShopping);

printf(" ");

menuOp = ' ';

break;

case 'r':
printf("REMOVE ITEM FROM CART ");

printf("Enter name of item to remove:");
fgets(name, 50, stdin);

RemoveItem(name, usrShopping);*/

menuOp = ' ';

break;

case 'c':
printf("CHANGE ITEM QUANTITY ");
/*char name[50];

printf("Enter the item name:");
fgets(name, 50, stdin);

int i = 0;

while (strcmp(name, usrShopping.cartItems[i].itemName) != 0) {
++i;
}

ModifyItem(usrShopping.cartItems[i], usrShopping);*/


menuOp = ' ';

break;

case 'i':
printf("OUTPUT ITEM'S DESCRIPTIONS ");
PrintDescriptions(usrShopping);
menuOp = ' ';

break;

case 'o':

printf("OUTPUT SHOPPING CART ");
PrintTotal(usrShopping);
menuOp = ' ';

break;
}

printf("Do you want to continue..?Y/N");

gets(&ch);

}while(ch=='Y'||ch=='y');

return menuOp;
}


int main() {

ShoppingCart usrShopping;
usrShopping.cartSize = 0;

printf("Enter Customer's Name: ");
gets(usrShopping.customerName);
printf("Enter Today's Date: ");
gets(usrShopping.currentDate);

printf("Customer Name: %s ", usrShopping.customerName);
printf("Today's Date: %s ", usrShopping.currentDate);

char menuChoice = ' ';

while (menuChoice != 'q') {
menuChoice = PrintMenu(usrShopping);
}

return 0;
}

ShoppingCart.c

#include "ShoppingCart.h"
#include <string.h>
#include <stdio.h>

ShoppingCart AddItem(ItemToPurchase item, ShoppingCart cart) {
cart.cartItems[cart.cartSize] = item;
++cart.cartSize;
return cart;
}

/*ShoppingCart RemoveItem(char name[], ShoppingCart cart) {
int i = 0;

while (strcmp(name, cart.cartItems[i].itemName) != 0) {
++i;
}

for(i; i< cart.cartSize; ++i){
ItemToPurchase temp = cart.cartItems[i];
cart.cartItems[i] = temp;
}

}*/

ShoppingCart ModifyItem(ItemToPurchase item, ShoppingCart cart) {
/*int quantity;

printf("Enter the new quantity:");
scanf("%d", quantity);

int i = 0;

while (strcmp(item.itemName, cart.cartItems[i].itemName) != 0) {
++i;
}

cart.cartItems[i].itemQuantity = quantity;*/
}

int GetNumItemsInCart(ShoppingCart cart) {
return cart.cartSize;
}

int GetCostOfCart(ShoppingCart cart) {
int total = 0;
int temp = 0;

for (int i = 0; i < cart.cartSize; ++i) {
temp = (cart.cartItems[i].itemQuantity * cart.cartItems[i].itemPrice);
total = total + temp;
}
return total;
}

void PrintTotal(ShoppingCart cart) {
int total = 0;
int temp = 0;

printf("%s's Shopping Cart - %s ", cart.customerName, cart.currentDate);
printf("Number of Items: %d ", cart.cartSize);

if (cart.cartSize == 0) {
printf("SHOPPING CART IS EMPTY ");
printf("Total: $0 ");
} else {
for (int i = 0; i < cart.cartSize; ++i) {
temp = (cart.cartItems[i].itemQuantity * cart.cartItems[i].itemPrice);
printf("%s %d @ %d = %d ", cart.cartItems[i].itemName, cart.cartItems[i].itemQuantity,
cart.cartItems[i].itemPrice, temp);
total = total + temp;
}
printf("Total: $%d ", total);
}
}

void PrintDescriptions(ShoppingCart cart) {

printf("%s's Shopping Cart - %s ", cart.customerName, cart.currentDate);

printf("Item Descriptions ");
for (int i = 0; i < cart.cartSize; ++i) {
PrintItemDescription(cart.cartItems[i]);
//printf("%s: %s ", cart.cartItems[i].itemName, cart.cartItems[i].itemDescription);
}

}

#include "ShoppingCart.h"
#include <string.h>
#include <stdio.h>

ShoppingCart AddItem(ItemToPurchase item, ShoppingCart cart) {
cart.cartItems[cart.cartSize] = item;
++cart.cartSize;
return cart;
}

/*ShoppingCart RemoveItem(char name[], ShoppingCart cart) {
int i = 0;

while (strcmp(name, cart.cartItems[i].itemName) != 0) {
++i;
}

for(i; i< cart.cartSize; ++i){
ItemToPurchase temp = cart.cartItems[i];
cart.cartItems[i] = temp;
}

}*/

ShoppingCart ModifyItem(ItemToPurchase item, ShoppingCart cart) {
/*int quantity;

printf("Enter the new quantity:");
scanf("%d", quantity);

int i = 0;

while (strcmp(item.itemName, cart.cartItems[i].itemName) != 0) {
++i;
}

cart.cartItems[i].itemQuantity = quantity;*/
}

int GetNumItemsInCart(ShoppingCart cart) {
return cart.cartSize;
}

int GetCostOfCart(ShoppingCart cart) {
int total = 0;
int temp = 0;

for (int i = 0; i < cart.cartSize; ++i) {
temp = (cart.cartItems[i].itemQuantity * cart.cartItems[i].itemPrice);
total = total + temp;
}
return total;
}

void PrintTotal(ShoppingCart cart) {
int total = 0;
int temp = 0;

printf("%s's Shopping Cart - %s ", cart.customerName, cart.currentDate);
printf("Number of Items: %d ", cart.cartSize);

if (cart.cartSize == 0) {
printf("SHOPPING CART IS EMPTY ");
printf("Total: $0 ");
} else {
for (int i = 0; i < cart.cartSize; ++i) {
temp = (cart.cartItems[i].itemQuantity * cart.cartItems[i].itemPrice);
printf("%s %d @ %d = %d ", cart.cartItems[i].itemName, cart.cartItems[i].itemQuantity,
cart.cartItems[i].itemPrice, temp);
total = total + temp;
}
printf("Total: $%d ", total);
}
}

void PrintDescriptions(ShoppingCart cart) {

printf("%s's Shopping Cart - %s ", cart.customerName, cart.currentDate);

printf("Item Descriptions ");
for (int i = 0; i < cart.cartSize; ++i) {
PrintItemDescription(cart.cartItems[i]);
//printf("%s: %s ", cart.cartItems[i].itemName, cart.cartItems[i].itemDescription);
}

}

ShopingCart.h

#ifndef SHOPPING_CART_H
#define SHOPPING_CART_H

#include "ItemToPurchase.h"

typedef struct ShoppingCart_struct {
char customerName[50];
char currentDate[50];
ItemToPurchase cartItems[10];
int cartSize;
} ShoppingCart;

ShoppingCart AddItem(ItemToPurchase item, ShoppingCart cart);

ShoppingCart RemoveItem(char name[], ShoppingCart cart);

ShoppingCart ModifyItem(ItemToPurchase item, ShoppingCart cart);

int GetNumItemsInCart(ShoppingCart cart);

int GetCostOfCart(ShoppingCart cart);

void PrintTotal(ShoppingCart cart);

void PrintDescriptions(ShoppingCart cart);

#endif

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote