#include
#include
#include
#include
#define null 0
void delay (int);
struct telephone_book
{
char name[20];
long unsigned int ph_no;
struct telephone_book *next;
};
typedef struct telephone_book T_BOOK;
T_BOOK *list=null;
void main()
{
T_BOOK *get_node(void);
int insert(T_BOOK *);
int display();
int modify(char []);
int del(char []);
int search(char []);
T_BOOK *node;
char name[20];
int choice;
clrscr();
printf("\n\n\n\t\t Telephone book using Link list");
do
{
printf("\n\n\n\t\t\t 1.Add a member");
printf("\n\n\t\t\t 2.Query a member");
printf("\n\n\t\t\t 3.Delete a member");
printf("\n\n\t\t\t 4.Modify a member");
printf("\n\n\t\t\t 5.List all member");
printf("\n\n\t\t\t 6.Exit");
printf("\n\n\n\t\t\t Enter your choice-> ");
scanf("%d",&choice);
fflush(stdin);
switch(choice)
{
case 1: node=get_node();
insert(node);
break;
case 2: printf("\n\n\t\t\t Enter the name to search-> ");
fflush(stdin);
scanf("%[^'\n']",name);
search(name);
break;
case 3: printf("\n\n\t\t\t Enter the name to delete :");
fflush(stdin);
scanf("%[^'\n']",name);
del(name);
break;
case 4: printf("\n\n\t\t\t Enter the name to modify :");
fflush(stdin);
scanf("%[^'\n']",name);
modify(name);
break;
case 5: display();
break;
case 6: exit(); break;
default : printf("\n\n\t\t\t Invalid choice...");break;
}
fflush(stdin);
} while(choice!=6);
getch();
}
T_BOOK *get_node()
{
T_BOOK *newnode;
newnode=(T_BOOK *)malloc(sizeof(T_BOOK));
newnode->next=null;
printf("\n\n\t\t\t Enter Name : ");
fflush(stdin);
scanf("%[^'\n']",newnode->name);
printf("\n\n\t\t\t Enter Phone no. : ");
fflush(stdin);
scanf("%lu",&newnode->ph_no);
return(newnode);
}
int insert(T_BOOK *node)
{
T_BOOK *ptr;
ptr=list;
if(ptr==null)
{
ptr=node;
list=ptr;
printf("\n\n\n\t\t\t New member aded...");
delay(1500);
return 1;
}
else
{
while(ptr->next!=null)
ptr=ptr->next;
ptr->next=node;
printf("\n\n\n\t\t\t New member aded...");
delay(1500);
return 1;
}
}
int display()
{
int i=1;
T_BOOK *ptr;
ptr=list;
printf("\n\n\t\t******* List of all your friends ******");
if(ptr==null)
{
printf("\n\n\t\t\t Phonebook is empty...");
delay(1500);
return 1;
}
while(ptr!=null)
{
printf("\n\n\n\t\t\t(%d) Name : %s",i++,ptr->name);
printf("\n\n\t\t\t Phone No. : %lu",ptr->ph_no);
ptr=ptr->next;
}
printf("\n\n\t\t***************************************");
delay(1500);
return 1;
}
int search(char name[])
{
T_BOOK *ptr;
ptr=list;
while(ptr!=null)
{
if(strcmpi(ptr->name,name)==0)
{
printf("\n\n\t\t\t Phone No. is = %lu",ptr->ph_no);
delay(1500);
return 1;
}
ptr=ptr->next;
}
printf("\n\n\t\t\t Name doesn't found....");
delay(1500);
return 0;
}
int del(char name[])
{
T_BOOK *ptr,*p;
ptr=list;
if(strcmpi(ptr->name,name)==0)
{
list=list->next;
printf("\n\n\n\t\t\t Data deleted...");
delay(1500);
return 1;
}
while(ptr!=null)
{
if(strcmpi(ptr->name,name)==0)
{
p->next=ptr->next;
free(ptr);
printf("\n\n\n\t\t\t Data deleted...");
delay(1500);
return 1;
}
p=ptr;
ptr=ptr->next;
}
printf("\n\n\t\t\t Name doesn't exist....");
delay(1500);
return 0;
}
int modify(char name[])
{
T_BOOK *ptr;
ptr=list;
while(ptr!=null)
{
if(strcmpi(ptr->name,name)==0)
{
printf("\n\n\t\t *** Persent Data *** ");
printf("\n\n\t\t\t Name : %s",ptr->name);
printf("\n\n\t\t\t Phone No. is = %lu",ptr->ph_no);
printf("\n\n\t\t *** Enter New Data ***");
printf("\n\n\n\t\t\t New Name : ");
fflush(stdin);
scanf("%[^'\n']",ptr->name);
printf("\n\n\t\t\t New Number : ");
scanf("%lu",&ptr->ph_no);
printf("\n\n\n\t\t\t Data modified...");
delay(1500);
return 1;
}
ptr=ptr->next;
}
printf("\n\n\t\t\t Name doesn't found....");
delay(1500);
return 0;
}
void delay (int x)
{
for(int i=0;i
}
No comments:
Post a Comment