#include<stdio.h> #include<malloc.h> // -------- Structures -------------------------- typedef struct item_part { char name[30]; char type_car[20]; char catalog_number[10]; double price; } item; // -------- Prototype Functions ----------------- item* add(item*,int); item* del(item*,int,char*); item* print_part(item*,int,char*); // ---------------- Main ------------------------ void main() { int num=0,size=0; item *parts,*p; char name[10]; while(num!=4) { printf("1 - Add part to database\n"); printf("2 - Delete part from database\n"); printf("3 - View part by ID \n"); printf("4 - Exit\n"); flushall(); scanf("%d",&num); switch(num) { case 1: { parts=add(parts,size); size++; break; } case 2: { printf("Enter Catalog Number to delate : "); flushall(); gets(name); p=del(parts,size,name); if(p==NULL) { printf("The catalog number doesn't delated\n"); } break; } case 3: { printf("Enter Catalog Number for View : "); flushall(); gets(name); p=print_part(parts,size,name); size--; if(p==NULL) { printf("The catalog number not found\n"); } break; } case 4: exit(1); default: printf("Error"); } } getch(); }
// ---------------- functions ------------------------ item* add(item *x, int size) { int i; item *temp; temp=(item*)malloc(sizeof(item)*size+1); if(temp==NULL) { printf("memory"); exit(1); } strcpy(temp,x); size++; x=(item*)malloc(sizeof(item)*size); strcpy(x,temp); if(x==NULL) { printf("memory"); exit(1); } flushall(); printf("Enter name part : "); gets(x[size-1].name); flushall(); printf("Enter type car : "); flushall(); gets(x[size-1].type_car); flushall(); printf("Enter catalog number : "); gets(x[size-1].catalog_number); flushall(); printf("Enter price : "); scanf("%lf",&x[size-1].price); return x; } // ---------------- function 2 ------------------------ item* print_part(item *x,int size,char *name) { int i,j=-1; for(i=0;i<size;i++) { if(strcmp(x[i].catalog_number,name)==0) { j=i; break; } } if(j!=-1) { printf("Name : %s\n",x[j].name); printf("Car : %s\n",x[j].type_car); printf("Catlog number : %s\n",x[j].catalog_number); printf("Price : %.2lf\n",x[j].price); return x; } else { return NULL; } } // ---------------- function 3 ------------------------ item* del(item *x,int size,char *name) { int i,j=-1,k; item *temp; temp=(item*)malloc(sizeof(item)*size-1); if(temp==NULL) { printf("memory"); exit(1); } for(i=0;i<size;i++) { if(strcmp(x[i].catalog_number,name)==0) { j=i; break; } } if(j==-1) { return NULL; } for(i=0,k=0;i<size;i++,k++) { if(i!=j) { temp[k]=x[i]; } } x=(item*)malloc(sizeof(item)*size-1); if(x==NULL) { printf("memory"); exit(1); } for(i=0;i<size-1;i++) { x[i]=temp[i]; } return x; }
|