Skip to content

Instantly share code, notes, and snippets.

@aaayushsingh
Last active July 5, 2017 19:09
Show Gist options
  • Save aaayushsingh/a27c0b168b616e1ad8e30a3892667a67 to your computer and use it in GitHub Desktop.
Save aaayushsingh/a27c0b168b616e1ad8e30a3892667a67 to your computer and use it in GitHub Desktop.
phonebook using linked list for mayank
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<malloc.h>
#include<string.h>
struct entry{
char name[50];
char nick[50];
char email[50];
char address[50];
char city[50];
char cont[50];
char pin[50];
struct entry *lptr;
struct entry *rptr;
}*temp,*newe,*l,*r;
typedef struct entry *list;
void newentry();
void display(char n[50]);
void deletentry(char n[50]);
void displayall();
void makempty();
int isempty();
void saventry();
void loadentry();
void deleteall();
void newentry()
{
char a[50],b[50],f[50],g[50],c[50],d[50],e[50];
int i,k=0;
printf("Enter the Datas for the New Entry:\n");
printf("Name :");
scanf("%s",a);
printf("Nick name :");
scanf("%s",b);
printf("E-mail ID :");
scanf("%s",c);
printf("Address :");
scanf("%s",d);
printf("City :");
scanf("%s",e);
printf("Contact No:");
scanf("%s",f);
printf("Pincode :");
scanf("%s",g);
newe=(struct entry*)malloc(sizeof(struct entry));
for(i=0;i<50;i++){
newe->name[i]=' ';
newe->nick[i]=' ';
newe->email[i]=' ';
newe->address[i]=' ';
newe->city[i]=' ';
newe->cont[i]=' ';
newe->pin[i]=' ';
}
for(i=0;i<50;i++){
newe->name[i]=a[i];
newe->nick[i]=b[i];
newe->email[i]=c[i];
newe->address[i]=d[i];
newe->city[i]=e[i];
newe->cont[i]=f[i];
newe->pin[i]=g[i];
}
if(isempty()){
newe->lptr=newe->rptr=NULL;
l=r=newe;
printf("Your Entry is Added\n");
} else {
temp=l;
while(temp!=NULL) {
i=stricmp(newe->name,temp->name);
if(i<0)
break;
else if(i>0)
temp=temp->rptr;
else if(i==0){
printf("Name Already Exists.Entry cannot be Added");
k=1;
break;
}
}
if(k!=1) {
if(temp==l) {
newe->lptr=NULL;
newe->rptr=l;
l->lptr=newe;
l=newe;
printf("Your Entry is Added");
} else if(temp==NULL) {
newe->rptr=NULL;
newe->lptr=r;
r->rptr=newe;
r=newe;
printf("Your Entry is Added");
} else {
newe->rptr=temp;
newe->lptr=temp->lptr;
temp->lptr=newe;
(newe->lptr)->rptr=newe;
printf("Your Entry is Added");
}
}
}
}
void displayall() {
int n=1;
if(!isempty()) {
temp=l;
while(temp!=NULL) {
printf("[%d] \nName :%s\n Nick Name :%s\n E-mail ID :%s\n address : %s\n City :%s\n Contact.No :%s\n Pin code :%s",n,temp->name,temp->nick,temp->email,temp->address,temp->city,temp->cont,temp->pin);
temp=temp->rptr;
n++;
}
}
else
printf("Address Book is Empty");
}
void deletentry(char n[50]) {
int i;
if(isempty())
printf("Address Book is Empty");
else {
temp=l;
while(temp!=NULL) {
i=stricmp(temp->name,n);
if(i==NULL) {
if(l==r) {
l=r=NULL;
printf("Entry deleted");
break;
}
else if(temp==l) {
l=l->rptr;
l->lptr=NULL;
printf("Entry deleted");
break;
}
else if(temp==r) {
r=r->lptr;
r->rptr=NULL;
printf("Entry deleted");
break;
}
else {
(temp->lptr)->rptr=temp->rptr;
(temp->rptr)->lptr=temp->lptr;
printf("Entry deleted");
break;
}
}
temp=temp->rptr;
}
if(temp==NULL)
printf("Not Found");
}
}
int isempty() {
return l==NULL;
}
void makempty() {
l=r=NULL;
printf("Address Book is Emptied");
}
void display(char n[50]) {
int i,p=1;
if(isempty())
printf("Address Book is Empty");
else {
temp=l;
while(temp!=NULL) {
i=stricmp(temp->name,n);
if(i==NULL){
if(p==1)
printf("Entry is found in %dst position",p);
else if(p==2)
printf("Entry is found in %dnd position",p);
else if (p==3)
printf("Entry is found in %drd position",p);
else
printf("Entry is found in %dth position",p);
printf("\nName :%s\n Nick Name :%s\n E-mail ID :%s\n address : %s\n City :%s\n Contact.No :%s\n Pin code :%s",temp->name,temp->nick,temp->email,temp->address,temp->city,temp->cont,temp->pin);
break;
}
temp=temp->rptr;
p++;
}
if(temp==NULL)
printf("Entry Not Found");
}
}
void main()
{
int l=1,m;
char n[50];
while(l!=8) {
system("cls");
printf("********************************************************************************\n#------------------------MINI PROJECT-SIMPLE ADDRESSBOOK----------------------\n#********************************************************************************");
printf("\nEnter Your Choice");
printf("\n");
printf("(1)-New Entry");
printf("\n");
printf("(2)-Display an Entry");
printf("\n");
printf("(3)-Delete an Entry");
printf("\n");
printf("(4)-Display all Entries");
printf("\n");
printf("(5)-Empty the book");
printf("\n");
printf("(6)-Save Entry");
printf("\n");
printf("(7)-Load Entries");
printf("\n");
printf("(8)-Delete All Saved Files");
printf("\n");
printf("(9)-End");
printf("\n");
printf("********************************************************************************");
printf("\n");
scanf("%d",&l);
switch(l) {
case 1:
newentry();
getch();
break;
case 2:
printf("Enter the Name of the Person to Display");
printf("\n");
scanf("%s",&n);
display(n);
getch();
break;
case 3:
printf("Enter the Name of the Person to Delete");
printf("\n");
scanf("%s",&n);
deletentry(n);
getch();
break;
case 4:
displayall();
getch();
break;
case 5:
makempty();
getch();
break;
case 6:
saventry();
getch();
break;
case 7:
loadentry();
getch();
break;
case 8:
deleteall();
getch();
break;
case 9:
printf("Program Ends Here. Thank You!!!");
printf("\n");
getch();
exit(0);
break;
default:
printf("Enter a Valid Choice from 1-9 only");
printf("\n");
getch();
break;
}
}
getch();
}
void saventry() {
char n[50];
int c;
printf("Enter the Name of the Person: ");
scanf("%s",n);
list t;
if(isempty())
printf("Address Book is Empty\n");
else {
FILE *f;
f=fopen("entry.c","a");
int i;t=l;
while(t!=NULL) {
i=stricmp(t->name,n);
if(i==0) {
fprintf(f,"%s %s %s %s %s %s %s",t->name,t->nick,t->email,t->address,t->city,t->cont,t->pin);
printf("Your Entry Saved\n");
printf("Add Another Entry? (1-yes/2-no)");
scanf("%d",&c);
if(c==1)
saventry();
else if(c==2)
break;
}
t=t->rptr;
}
fclose(f);
if(t==NULL)
printf("Entry Not Found");
}
}
void loadentry() {
int i=1;
list t;
FILE *f;
f=fopen("entry.c","r");
if(f==NULL) {
printf("Cannot Open");
exit(1);
}
while(fscanf(f," %s %s %s %s %s %s %s",t->name,t->nick,t->email,t->address,t->city,t->cont,t->pin)!=EOF) {
printf("[%d] Name :%s\n Nick Name :%s\n E-mail ID :%s\n address : %s\n City :%s\n Contact.No :%s\n Pin code :%s",i,temp->name,temp->nick,temp->email,temp->address,temp->city,temp->cont,temp->pin);
i++;
}
fclose(f);
}
void deleteall() {
FILE *f;
f=fopen("entry.c","w");
fclose(f);
printf("all saved files were delete");
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment