Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- #define max 50
- int num = 0;
- void delete1();
- void listt();
- void search();
- void display();
- struct contact {
- char f_name[max];
- char l_name[max];
- int number;
- char email[max];
- char address[max];
- struct contact *next;
- }*head = NULL;
- void manage()
- {
- FILE *fp, *f;
- struct contact *new_node, *current;
- char first[100], ex[] = ".txt";
- int a,b,n,i;
- while(1)
- {
- printf("\nEnter : \n1 for add new contact\n2 for delete contact\n3 for view contact list\n4 for search contact\n5 for display a contact\n6 for exit\n\n");
- scanf("%d", &n);
- if(n==1){
- new_node = (struct contact*)malloc(sizeof(struct contact));
- printf("Enter First name : ");
- scanf(" %[^\n]", new_node->f_name);
- strcpy(first, new_node->f_name);
- strcat(first,ex);
- fp = fopen(first, "r");
- if(fp != NULL){
- free(new_node);
- printf("You have already created this contact\n");
- fclose(fp);
- }
- else{
- fclose(fp);
- f = fopen(first, "w");
- fprintf(f, "Name : %s ", new_node->f_name);
- printf("Enter last name : ");
- scanf(" %[^\n]", new_node->l_name);
- fprintf(f, "%s\n", new_node->l_name);
- printf("Enter phone number : ");
- scanf("%d", &new_node->number);
- fprintf(f, "Mobile : %d\n", new_node->number);
- printf("Enter Email address : ");
- scanf(" %[^\n]", new_node->email);
- fprintf(f, "Email : %s\n", new_node->email);
- printf("Enter address : ");
- scanf(" %[^\n]", new_node->address);
- fprintf(f, "Address : %s\n", new_node->address);
- fclose(f);
- new_node->next = NULL;
- if(head == NULL){
- num++;
- head = new_node;
- current = new_node;
- printf("\nContact successfully saved\n");
- }
- else{
- num++;
- current->next = new_node;
- current = new_node;
- printf("\nContact successfully saved\n");
- }
- }
- }
- else if(n==2){
- delete1();
- }
- else if(n==3){
- listt();
- }
- else if(n==4){
- search();
- }
- else if(n==5){
- display();
- }
- else if(n==6){
- break;
- }
- }
- }
- void listt()
- {
- struct contact *current;
- int count = 0;
- current = head;
- if(num>=1){
- printf("\nContact List : \n\n");
- while(current!=NULL){
- count++;
- printf("%d. %s %s\n",count, current->f_name, current->l_name);
- current = current->next;
- }
- }
- else{
- printf("You have no contact\n");
- }
- }
- void delete1()
- {
- struct contact *current, *temp;
- int n,a,b,i,count = 0;
- char ch[100],ex[] = ".txt";
- while(1)
- {
- printf("\nContact List : \n\n");
- if(num>=1){
- current = head;
- while(current != NULL)
- {
- count++;
- printf("%d. %s %s\n", count, current->f_name, current->l_name);
- current = current->next;
- }
- }
- else{
- printf("You have no contact\n");
- break;
- }
- printf("Select a contact : ");
- scanf("%d", &n);
- current = head;
- for(i=1;i<n;i++){
- current = current->next;
- }
- if(current == head)
- {
- strcpy(ch, current->f_name);
- strcat(ch, ex);
- remove(ch);
- head = current->next;
- num--;
- printf("Contact removed successfully\n");
- break;
- }
- else if(current->next == NULL){
- strcpy(ch, current->f_name);
- strcat(ch,ex);
- remove(ch);
- current = head;
- for(i=1;i<=n-2;i++){
- current = current->next;
- }
- current->next = NULL;
- num--;
- printf("Contact removed successfully\n");
- break;
- }
- else{
- strcpy(ch, current->f_name);
- strcat(ch,ex);
- remove(ch);
- temp = current->next;
- current = head;
- for(i=1;i<=n-2;i++){
- current = current->next;
- }
- current->next = temp;
- num--;
- printf("Contact removed successfully\n");
- break;
- }
- }
- }
- void search()
- {
- struct contact *current;
- int i,a = 0,n;
- char ch[50],c[50];
- printf("Enter name for search : ");
- scanf("%s %s", ch, c);
- current = head;
- while(current!=NULL){
- if(strcmp(current->f_name, ch) == 0 && strcmp(current->l_name,c)== 0){
- a = 1;
- printf("\nResult: \n");
- printf("Name : %s %s\nMobile : %d\nEmail : %s\nAddress : %s\n", current->f_name, current->l_name,current->number, current->email, current->address);
- break;
- }
- current = current->next;
- }
- if(a==0){
- printf("You have no contact at this name\n");
- }
- }
- void display()
- {
- struct contact *current;
- int n,i,count = 0;
- while(1)
- {
- current = head;
- if(num>=1){
- printf("\nContact List : \n\n");
- while(current!=NULL){
- count++;
- printf("%d. %s %s\n",count, current->f_name, current->l_name);
- current = current->next;
- }
- }
- else{
- printf("You have no contact\n");
- break;
- }
- printf("\nSelect a contact : ");
- scanf("%d", &n);
- current = head;
- for(i=1;i<n;i++){
- current = current->next;
- }
- printf("Name : %s %s\n", current->f_name,current->l_name);
- printf("Mobile : %d\n", current->number);
- printf("Email : %s\n", current->email);
- printf("Address : %s\n", current->address);
- break;
- }
- }
- int main()
- {
- printf("\n *** >->-> P H O N E B O O K <-<-< *** \n\n\n");
- manage();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement