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

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

Article Contributed By :
https://www.rrtutors.com/site_assets/profile/assets/img/avataaars.svg

4489 Views