Ask Question

Name:
Title:
Your Question:

Answer Question

Name:
Your Answer:
User Submitted Source Code!


Description:
  yo
Language: C/C++
Code:
#include<stdio.h>

#include<conio.h>

#include<string.h>

#include<process.h>

#include<stdlib.h>

#include<dos.h>

struct contact

{

    long ph;

    char name[20],add[20],email[30];

} list;

char query[20],name[20];

FILE *fp, *ft;

int i,n,ch,l,found;

int main()

{

main:

    system("cls");    /* ************Main menu ***********************  */

    printf("/n/t **** Welcome to Contact Management System ****");

    printf("nnntttMAIN MENU/n/t/t=====================/n/t/t[1] Add a new Contact /n/t/t[2] List all Contacts/n/t/t[3] Search for contact/n/t/t[4] Edit a Contactntt[5] Delete a Contact/n/t/t[0] Exit/n/t/t=================/n/t/t");

    printf("Enter the choice:");

    scanf("%d",&ch);

    switch(ch)

    {

    case 0:

        printf("nnttAre you sure you want to exit?");

        break;

        /* *********************Add new contacts************  */

    case 1:

        system("cls");

        fp=fopen("contact.dll","a");

        for (;;)

        {
            fflush(stdin);

            printf("To exit enter blank space in the name inputnName (Use identical):");

            scanf("%[^n]",&list.name);

            if(stricmp(list.name,"")==0 || stricmp(list.name," ")==0)

                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("ntt================================ntttLIST OF CONTACTSntt================================nnNamettPhone Not    AddressttE-mail ad.n=================================================================nn");

        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("nNamet: %snPhonet: %ldnAddresst: %snEmailt: %sn",list.name,

                           list.ph,list.add,list.email);

                    found++;

                }

            }

            if(found!=0)

            {
                printf("=========================================================== [%c]-(%d)nn",i-32,found);

                getch();
            }

            fclose(fp);

        }

        break;

        /* *******************search contacts**********************  */

    case 3:

        system("cls");

        do

        {

            found=0;

            printf("nnt..::CONTACT SEARCHnt===========================nt..::Name of contact to search: ");

            fflush(stdin);

            scanf("%[^n]",&query);

            l=strlen(query);

            fp=fopen("contact.dll","r");

            system("cls");

            printf("nn..::Search result for '%s' n===================================================n",query);

            while(fread(&list,sizeof(list),1,fp)==1)

            {

                for(i=0; i<=l; i++)

                    name[i]=list.name[i];

                name[l]='';

                if(stricmp(name,query)==0)

                {

                    printf("n..::Namet: %sn..::Phonet: %ldn..::Addresst: %sn..::Emailt: %sn",list.name,list.ph,list.add,list.email);

                    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?nnt[1] Yestt[0] Nont");

            scanf("%d",&ch);

        }
        while(ch==1);

        break;

        /* *********************edit contacts************************/

    case 4:

        system("cls");

        fp=fopen("contact.dll","r");

        ft=fopen("temp.dat","w");

        fflush(stdin);

        printf("..::Edit contactn===============================nnt..::Enter the name of contact to edit:");

        scanf("%[^n]",name);

        while(fread(&list,sizeof(list),1,fp)==1)

        {

            if(stricmp(name,list.name)!=0)

                fwrite(&list,sizeof(list),1,ft);

        }

        fflush(stdin);

        printf("nn..::Editing '%s'nn",name);

        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");

        fwrite(&list,sizeof(list),1,ft);

        fclose(fp);

        fclose(ft);

        remove("contact.dll");

        rename("temp.dat","contact.dll");

        break;

        /* ********************delete contacts**********************/

    case 5:

        system("cls");

        fflush(stdin);

        printf("nnt..::DELETE A CONTACTnt==========================nt..::Enter the name of contact to delete:");

        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("nnn..::Enter the Choice:nnt[1] Main Menutt[0] Exitn");

    scanf("%d",&ch);

    switch (ch)

    {

    case 1:

        goto main;

    case 0:

        break;

    default:

        printf("Invalid choice");

        break;

    }

    return 0;

}

          
Comments: