I am having a problem with the menu, it isn't reading 'd' to delete..
Code:
#include <stdio.h>
#define NAME_LEN 25
#define MAX_PARTS 50
struct part {
int number;
char name[NAME_LEN +1];
int on_hand;
} inventory[MAX_PARTS];
struct item {
int id;
char name [20];
double cost;
char category;
} ;
int num_parts=0;
int find_part(int number);
void insert(void);
void delete(void);
void search(void);
void update(void);
void print(void);
// main: Prompts the user to enter an operation code, then calls a
// function to perfrom the requested action. Repeats until the user
// enters the command 'q'. Prints an error message if the user
// enters an illegal code
int main ()
{
char code;
printf("Grocery Store Database\n");
printf("Choose an option\n");
printf("i-Insert\t d-Delete\t s-Search\t u-Update\t p-Print\t q-Quit\n");
for(; ;)
{
printf("Enter operation code: ");
scanf(" %c", &code);
while (getchar() != '\n') //skips to end of line
;
switch (code)
{
case 'i': insert();
break;
case 'd': delete();
break;
case 's': search();
break;
case 'u': update();
break;
case 'p': print();
break;
case 'q':
return 0;
default: printf("ILLEGAL CODE!!!\n");
}
printf("\n");
}//end for loop
}//end main
int find_part(int number) //looks up ID# returns array index or -1 if not found
{
int i;
for (i=0; i<num_parts; i++)
if (inventory[i].number == number)
return i;
return -1;
}
void insert(void) //add new item and info
{
int part_number;
if(num_parts==MAX_PARTS)
{
printf("DATABASE IS FULL; CANNOT ADD MORE PARTS.\n");
return;
}
printf("Enter part number: ");
scanf("%d", &part_number);
if (find_part(part_number) >= 0)
{
printf("Part already exists.\n");
return;
}
inventory[num_parts].number = part_number;
printf("Enter part name: ");
scanf("%s",inventory[num_parts].name);
printf("Enter quantity on hand: ");
scanf("%d",&inventory[num_parts].on_hand);
num_parts++;
}
void delete(void) //finds item in database and removes it
{
int i, number;
printf("Enter part number: ");
scanf("%d", &number);
i=find_part(number);
if (i>=0)
{
if (inventory[i].number == number)
number = 0;
return;
}
else printf("PART NOT FOUND!\n");
}
void search(void) // SEARCH and display results
{
int i, number;
printf("Enter part number: ");
scanf("%d", &number);
i=find_part(number);
if (i>=0)
{
printf("Part name: %s\n", inventory[i].name);
printf("Quantity on Hand: %d\n", inventory[i].on_hand);
}
else
printf("PART NOT FOUND!!!\n");
}
void update(void) //Edits items currently in the database
{
int i, number, change;
printf("Enter part number: ");
scanf("%d", &number);
i=find_part(number);
if (i>=0)
{
printf("Enter change in quantity to add to on hand: ");
scanf("%d", &change);
inventory[i].on_hand += change;
}
else
printf("PART NOT FOUND!!!\n");
}
void print (void) //Prints all information in database
{
int i;
printf("Part Number\tPart Name\t\tQuantity on Hand\n");
for (i=0; i<num_parts; i++)
printf("%7d %-25s%11d\n", inventory[i].number, inventory[i].name, inventory[i].on_hand);
}
also, I am trying to put in the cost and category of the items for insert. if anyone could help I would appreciate it