Contact Management System in C - Javatpoint
Contact Management System in C - Javatpoint
ADVERTISEMENT
Contact Management System in C
ADVERTISEMENT
ADVERTISEMENT
Edit Contacts: When adding contacts, you can change the name,
phone number, address and email.
Name each contact: includes each contact in the file along with
their individual contact information.
Edit Contacts: When adding contacts, you can change the name,
phone number, address and email.
Program Breakdown
struct contact
{
long ph ;
char name [ 20 ] , add [ 20 ] , email [ 30 ] ;
} list ;
The driver code looks something like above code which will display the
main menu of the contact management system in C having options to
add a new contact, list all contacts, search for contacts, edit a contact,
and delete a contact and exit.
case 1 :
system ( " cls " ) ;
fp = fopen ( " contact . dll " , " a " ) ;
for ( ; ; )
{
fflush ( stdin ) ;
printf ( " To exit enter blank space in the name input \ n Name ( U
scanf ( " % [ ^ \ n ] " , & list . name ) ;
if ( stricmp ( list . name , " " ) = = 0 | | stricmp ( list . name , " " ) =
break ;
fflush ( stdin ) ;
printf ( " Phone : " ) ;
scanf ( " % l d " , & list . ph ) ;
fflush ( stdi ) ;
printf ( " address : " ) ;
scanf ( " % [ ^ \ n ] " , & list . add ) ;
fflush ( stdin ) ;
printf ( " email address : " ) ;
gets ( list . email ) ;
printf ( " \ n " ) ;
fwrite ( & list , sizeof ( list ) , 1 , fp ) ;
}
fclose ( fp ) ;
break ;
If the user has selected the option 1 i.e. to add a contact then the
above code will come in action.
case 2 :
system ( " cls " ) ;
printf ( " \ n \ t \ t = = = = = = = = = = = = = = = \ n \ t \ t \ t LIST OF C
mail ad.\n= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
for ( i = 97 ; i < = 122 ; i = i + 1 )
{
fp = fopen ( " contact . dll " , " r " ) ;
fflush ( stdin ) ;
found = 0 ;
while ( fread ( & list , sizeof ( list ) , 1 , fp ) = = 1 )
{
if ( list . name [ 0 ] = = i | | list . name [ 0 ] = = i - 32 )
{
printf ( " \ n Name \ t : % s \ n Phone \ t : % l d \ n Address \
list . ph , list . add , list . email ) ;
found + + ;
}
}
if ( found ! = 0 )
{
printf ( " = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
getch ( ) ;
}
fclose ( fp ) ;
}
break ;
The above code is used to display the contact list entered by the user.
case 3 :
system ( " cls " ) ;
do
{
found = 0 ;
printf ( " \ n \ n \ t . . : : CONTACT SEARCH \ n \ t = = = = = = = = =
fflush ( stdin ) ;
scanf ( " % [ ^ \ n ] " , & query ) ;
l = strlen ( query ) ;
fp = fopen ( " contact . dll " , " r " ) ;
system ( " cls " ) ;
printf ( " \ n \ n . . : : Search result for ' % s ' \ n = = = = = = = = = =
while ( fread ( & list , sizeof ( list ) , 1 , fp ) = = 1 )
{
for ( i = 0 ; i < = l ; i + + )
name [ i ] = list . name [ i ] ;
name [ l ] = ' \ 0 ' ;
if ( stricmp ( name , query ) = = 0 )
{
printf ( " \ n . . : : Name \ t : % s \ n . . : : Phone \ t : % l d \ n .
found + + ;
if ( found % 4 = = 0 )
{
printf ( " . . : : Press any key to continue... " ) ;
getch ( ) ;
}
}
}
if ( found = = 0 )
printf ( " \ n . . : : No match found! " ) ;
else
printf ( " \ n . . : : % d match ( s ) found ! " , found ) ;
fclose ( fp ) ;
printf ( " \ n . . : : Try again ? \ n \ n \ t [ 1 ] Yes \ t \ t [ 0 ] No \ n \
scanf ( " % d " , & ch ) ;
} while ( ch = = 1 ) ;
break ;
If the user wants to search for a contact then the above code will come
in action.
case 4 :
system ( " cls " ) ;
fp = fopen ( " contact . dll " , " r " ) ;
fflush ( stdin ) ;
fflush ( stdin ) ;
fflush ( stdin ) ;
fflush ( stdin ) ;
fclose ( fp ) ;
fclose ( ft ) ;
break ;
If the user wants to edit an existing contact then the above code will
come in action.
case 5 :
system ( " cls " ) ;
fflush ( stdin ) ;
printf ( " \ n \ n \ t . . : : DELETE A CONTACT \ n \ t = = = = = = = = =
scanf ( " % [ ^ \ n ] " , & name ) ;
fp = fopen ( " contact . dll " , " r " ) ;
ft = fopen ( " temp . dat " , " w " ) ;
while ( fread ( & list , sizeof ( list ) , 1 , fp ) ! = 0 )
if ( stricmp ( name , list . name ) ! = 0 )
fwrite ( & list , sizeof ( list ) , 1 , ft ) ;
fclose ( fp ) ;
fclose ( ft ) ;
remove ( " contact . dll " ) ;
rename ( " temp . dat " , " contact . dll " ) ;
break ;
default :
printf ( " Invalid choice " ) ;
break ;
}
printf ( " \ n \ n \ n . . : : Enter the Choice : \ n \ n \ t [ 1 ] Main Menu \ t
scanf ( " % d " , & ch ) ;
switch ( ch )
{
case 1 :
goto main ;
case 0 :
break ;
default :
printf ( " Invalid choice " ) ;
break ;
}
return 0 ;
}
If the user wants to delete a contact from the list then the above code
will come in action.
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <process.h>
#include <stdlib.h>
#include <dos.h>
struct contact
{
long ph;
} list;
int main()
main:
printf("\n\n\n\t\t\tMAIN MENU\n\t\t=====================\n\t\t
scanf("%d", &ch);
switch (ch)
case 0:
break;
system("cls");
fp = fopen("contact.dll", "a");
for (;;)
{
fflush(stdin);
scanf("%[^\n]", &list.name);
break;
fflush(stdin);
printf("Phone:");
scanf("%ld", &list.ph);
fflush(stdin);
printf("address:");
scanf("%[^\n]", &list.add);
fflush(stdin);
printf("email address:");
gets(list.email);
printf("\n");
fwrite(&list, sizeof(list), 1, fp);
}
fclose(fp);
break;
/* * * * * * * * * * * * * * * * * *list of contacts* * * * * * * * * * * * * * * * * *
case 2:
system("cls");
printf("\n\t\t================================\n\t\t\tLIST O
mail ad.\n=================================================
fp = fopen("contact.dll", "r");
fflush(stdin);
found = 0;
found++;
}
}
if (found != 0)
{
printf("============================================
(%d)\n\n", i - 32, found);
getch();
}
fclose(fp);
}
break;
/* *******************search contacts********************** */
case 3:
system("cls");
do
found = 0;
printf("\n\n\t..::CONTACT SEARCH\n\t=====================
fflush(stdin);
scanf("%[^\n]", &query);
l = strlen(query);
fp = fopen("contact.dll", "r");
system("cls");
name[i] = list.name[i];
name[l] = '\0';
if (stricmp(name, query) == 0)
found++;
if (found % 4 == 0)
getch();
}
}
}
if (found == 0)
else
fclose(fp);
break;
/* *********************edit contacts************************/
case 4:
system("cls");
fp = fopen("contact.dll", "r");
ft = fopen("temp.dat", "w");
fflush(stdin);
printf("..::Edit contact\n===============================\n\n
scanf("%[^\n]", name);
if (stricmp(name, list.name) != 0)
fflush(stdin);
printf("..::Name(Use identical):");
scanf("%[^\n]", &list.name);
fflush(stdin);
printf("..::Phone:");
scanf("%ld", &list.ph);
fflush(stdin);
printf("..::address:");
scanf("%[^\n]", &list.add);
fflush(stdin);
printf("..::email address:");
gets(list.email);
printf("\n");
fclose(fp);
fclose(ft);
remove("contact.dll");
rename("temp.dat", "contact.dll");
break;
/* * * * * * * * * * * * * * * * * * * * * delete contacts * * * * * * * * * * * * * *
case 5:
system("cls");
fflush(stdin);
printf("\n\n\t..::DELETE A CONTACT\n\t=====================
scanf("%[^\n]", &name);
fp = fopen("contact.dll", "r");
ft = fopen("temp.dat", "w");
if (stricmp(name, list.name) != 0)
fclose(fp);
fclose(ft);
remove("contact.dll");
rename("temp.dat", "contact.dll");
break;
default:
printf("Invalid choice");
break;
}
scanf("%d", &ch);
switch (ch)
case 1:
goto main;
case 0:
break;
default:
printf("Invalid choice");
break;
}
return 0;
}
OUTPUT:
MAIN MENU
=====================
[1] Add a new Contact
[2] List all Contacts
[3] Search for contact
[4] Edit a Contact
[5] Delete a Contact
[0] Exit
= = = = = = = = = = = = = = = = =
Enter the choice:
To exit enter blank space in the name input
Name (Use identical):Vikas
Phone:123456789
address:A block
email address:[email protected]
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
LIST OF CONTACTS
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Name Phone No Address E-mail ad.
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Name : Vikas
Phone : 123456789
Address : A block
Email : [email protected]
Name : Vivan
Phone : 546738546
Address : C Block
Email : [email protected]
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = [ V ] - ( 2 )
. . : : Search result for 'Vikas'
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
. . : : Name : Vikas
. . : : Phone : 123456789
. . : : Address : A block
. . : : Email : [email protected]
. . : : 1 match(s) found!
. . : : Try again?
[1] Yes [0] No
. . : : Search result for 'Vivan'
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
. . : : Name : Vivan
. . : : Phone : 546738546
. . : : Address : C Block
. . : : Email : [email protected]
. . : : 1 match(s) found!
. . : : Try again?
← Prev Next →
Feedback
Regex R
tutorial Reinforcement Programming
learning tutorial
Regex
tutorial
R Programming
Reinforcement
RxJS tutorial
Learning React Native Python
tutorial Design Patterns
RxJS
React Native Python Design
Patterns
Preparation
Interview Company
Questions Interview
Interview
Questions
Questions Company
Questions
Trending Technologies
B.Tech / MCA