C Project: Build a Phone Management System (Contact Book)

This beginner-friendly C project guides you through building a simple Phone Management System (Contact Book) in Code::Blocks using the GCC compiler. Learn to implement core features like adding, modifying, searching, and deleting contacts. Utilizes file handling and data structures for efficient data storage

Last updated Dec 28, 2024

The Phone Management System (Contact Book) is designed in Code:: Block using GCC compiler. It is a simple C console-based project even beginners can give a try.

This Phone Management System (Contact Book) is a beginner-friendly C console project developed in Code::Blocks using the GCC compiler.

Key Features:

  • Basic Phonebook Operations: Allows users to insert, modify, list, search, and delete contacts.
  • Data Storage: Utilizes file handling and appropriate data structures for efficient data storage and retrieval.

This project provides a hands-on learning experience for those starting their C programming journey

 

You can get a clear idea about basic concepts like functions, file handling, and data structure from this c project. 

The options to add new records, listing, modifying, and delete is present in the main menu itself. A person's name, father's name, email id, phone number, etc are some of the personal records asked during the addition of records

Phone Book - C project source code

 

C Project Source code Contact Book

 

Contact Book Application C Language

 

 

Complete code for Contact Book in C Language

//-PROGRAMMING MADE SIMPLE
#include
#include
#include
#include
#include
struct person
{
    char name[35];
    char address[50];
     char father_name[35];
     char mother_name[30];
    long int mble_no;
    char sex[8];
    char mail[100];
    char citision_no[20];

    };
void menu();
void got();
void start();
void back();
void addrecord();
void listrecord();
void modifyrecord();
void deleterecord();
void searchrecord();
int main()
{
    system("color 5f");
    start();
    return 0;
}
void back()
{
    start();
}
void start()
{
    menu();
}
void menu()
{
    system("cls");
printf("\t\t**********WELCOME TO
 PHONEBOOK*************");

printf("\n\n\t\t\t  MENU\t\t\n\n");
printf("\t1.Add New   \t2.List   \t
3.Exit  \n\t
4.Modify \t5.Search\t6.Delete");

switch(getch())
{
    case '1':

                addrecord();
    break;
   case '2': listrecord();
    break;
    case '3': exit(0);
    break;
    case '4': modifyrecord();
    break;
    case '5': searchrecord();
    break;
    case '6': deleterecord();
    break;
    default:
                system("cls");
                printf("\nEnter 1 to 6 only");
                printf("\n Enter any key");
                getch();

menu();
}
}
        void addrecord()
{
        system("cls");
        FILE *f;
        struct person p;
        f=fopen("project","ab+");
        printf("\n Enter name: ");
        got(p.name);
        printf("\nEnter the address: ");
        got(p.address);
        printf("\nEnter father name: ");
        got(p.father_name);
        printf("\nEnter mother name: ");
        got(p.mother_name);
        printf("\nEnter phone no.:");
        scanf("%ld",&p.mble_no);
        printf("Enter sex:");
        got(p.sex);
        printf("\nEnter e-mail:");
         got(p.mail);
        printf("\nEnter citizen no:");
        got(p.citision_no);
        fwrite(&p,sizeof(p),1,f);

      fflush(stdin);
        printf("\nrecord saved");

fclose(f);

    printf("\n\nEnter any key");

    getch();
    system("cls");
    menu();
}
void listrecord()
{
    struct person p;
    FILE *f;
f=fopen("project","rb");
if(f==NULL)
{
printf("\nfile opening error in listing :");

exit(1);
}
while(fread(&p,sizeof(p),1,f)==1)
{
     printf("\n\n\n YOUR RECORD IS\n\n ");
        printf("\nName=%s\n
Adress=%s
\nFather name=%s
\nMother name=%s\nMobile no=%ld\nSex=%s
\nE-mail=%s
\nCitizen no=%s",p.name,
p.address,p.father_name,
p.mother_name,p.mble_no,
p.sex,p.mail,p.citision_no);

    getch();
    system("cls");
}
fclose(f);
 printf("\n Enter any key");
 getch();
    system("cls");
menu();
}
void searchrecord()
{
    struct person p;
FILE *f;
char name[100];

f=fopen("project","rb");
if(f==NULL)
{
    printf("\n error in opening\a\a\a\a");
    exit(1);

}
printf("\nEnter name of person to search\n");
got(name);
while(fread(&p,sizeof(p),1,f)==1)
{
    if(strcmp(p.name,name)==0)
    {
        printf("\n\tDetail Information
 About %s",name);
        printf("\nName:%s\naddress:%s
\nFather name:%s\nMother name:%s
\nMobile no:%ld\nsex:%s\nE-mail:%s
\nCitision no:%s",p.name,
p.address,
p.father_name,p.mother_name,
p.mble_no,p.sex,p.mail,
p.citision_no);
    }
        else
        printf("file not found");

}
 fclose(f);
  printf("\n Enter any key");

    getch();
    system("cls");
menu();
}
void deleterecord()
{
    struct person p;
    FILE *f,*ft;
   int flag;
   char name[100];
   f=fopen("project","rb");
   if(f==NULL)
      {

         printf("CONTACT'S DATA 
NOT ADDED YET.");

      }
   else
   {
      ft=fopen("temp","wb+");
      if(ft==NULL)

            printf("file opaning
 error");
      else

        {


      printf("Enter CONTACT'S NAME:");
      got(name);

      fflush(stdin);
      while(fread(&p,sizeof(p),1,f)==1)
      {
         if(strcmp(p.name,name)!=0)
            fwrite(&p,
sizeof(p),1,ft);
         if(strcmp(p.name,name)==0)
                flag=1;
      }
   fclose(f);
   fclose(ft);
   if(flag!=1)
   {
      printf("NO CONACT'S RECORD 
TO DELETE.");
      remove("temp.txt");
   }
      else
      {
         remove("project");
         rename("temp.txt","project");
         printf("RECORD DELETED 
SUCCESSFULLY.");

      }
   }
}
 printf("\n Enter any key");

    getch();
    system("cls");
menu();
}

void modifyrecord()
{
    int c;
    FILE *f;
    int flag=0;
    struct person p,s;
   char  name[50];
   f=fopen("project","rb+");
   if(f==NULL)
      {

         printf("CONTACT'S DATA NOT ADDED YET.");
         exit(1);


      }
   else
   {
       system("cls");
      printf("\nEnter CONTACT'S 
NAME TO MODIFY:\n");
            got(name);
            while(fread(&p,
sizeof(p),1,f)==1)
            {
                if(strcmp(name,
p.name)==0)
                {



       printf("\n Enter name:");
       got(s.name);
         printf("\nEnter the 
address:");
        got(s.address);
         printf("\nEnter 
father name:");
          got(s.father_name);
        printf("\nEnter
 mother name:");
        got(s.mother_name);
       printf("\nEnter phone no:");
          scanf("%ld",&s.mble_no);
        printf("\nEnter
 sex:");
          got(s.sex);
         printf("\nEnter e-mail:");
             got(s.mail);
            printf("\nEnter citizen no\n");
             got(s.citision_no);
           fseek(f,-sizeof(p),
SEEK_CUR);
          fwrite(&s,sizeof(p),1,f);
          flag=1;
             break;



                }
                fflush(stdin);


            }
            if(flag==1)
            {
                printf("\n
 your
 data id modified");

            }
            else
            {
                    printf("
 \n 
data is not found");

            }
            fclose(f);
   }
    printf("\n Enter 
any key");
    getch();
    system("cls");
   menu();

}
void got(char *name)
{

   int i=0,j;
    char c,ch;
    do
    {
        c=getch();
                if(c!=8&&c!=13)
                {
                    *(name+i)=c;
                        putch(c);
                        i++;
                }
                if(c==8)
                {
                    if(i>0)
                    {
                        i--;
                    }
                   // printf("h");
                    system("cls");
                    for(j=0;jwhile(c!=13);
      *(name+i)='\0';
}

Conclusion: The Phone Management System (Contact Book) is designed in Code:: Block using GCC compiler. It is a simple C console-based project even beginners can give a try

Related Tutorials & Resources