Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<string.h>
- #include<conio.h>
- #include<stdlib.h>
- void clrscr()
- {
- system("@cls||clear");
- }
- struct cnct
- {
- char area[109];
- char name[109];
- char mail[109];
- char number_1[100];
- char number_2[109];
- };
- struct cnct a[1000];
- int size=0;
- void swap(struct cnct a, struct cnct b)
- {
- struct cnct t=a;
- a=b;
- b=t;
- }
- void sort(int sz)
- {
- int ipos=0,jpos=0;
- for(ipos=0; ipos<sz; ipos++)
- {
- for(jpos=ipos+1; jpos<sz; jpos++)
- {
- if(strcmp(a[ipos].area,a[jpos].area)>0)
- {
- struct cnct t=a[ipos];
- a[ipos]=a[jpos];
- a[jpos]=t;
- }
- else if(strcmp(a[ipos].area,a[jpos].area)==0 && strcmp(a[ipos].name,a[jpos].name)>0)
- {
- struct cnct t=a[ipos];
- a[ipos]=a[jpos];
- a[jpos]=t;
- }
- }
- }
- }
- int main()
- {
- FILE *inp;
- FILE *out;
- FILE *usr;
- inp=fopen("input.txt","r");
- usr=fopen("usr.txt","r");
- int n,i=0,j,command,sub,size=0,sub1;
- struct cnct usr_cnct;
- char x[1009],y[1009];
- while(fscanf(inp,"%s",&a[i].area)!=EOF)
- {
- fscanf(inp,"%s",&a[i].name);
- fscanf(inp,"%s",&a[i].mail);
- fscanf(inp,"%s",&a[i].number_1);
- fscanf(inp,"%s",&a[i].number_2);
- i++;
- size++;
- }
- sort(size);
- fclose(inp);
- printf("\n\t ----- Welcome to Contact Manager ------");
- while(1)
- {
- printf("\n\n\n\t\t\tMAIN MENU\n\t\t=====================\n\t\t[1] Add a new Contact\n\t\t[2] Delete a Contact\n\t\t[3] List all Contacts\n\t\t[4] Edit a Contact\n\t\t[5] Search for contact\n\t\t[0] Exit\n\t\t=====================\n\t\t");
- printf("Enter the choice:");
- scanf("%d",&command);
- clrscr();
- if(command==1 || command==2 || command==4 )
- {
- system("COLOR 2F");
- printf("\n\t\t|| Input Type ||\n\t\t[1]From file\n\t\t[2]From console\n\t\t");
- printf("Enter the choice:");
- scanf("%d",&sub);
- }
- if(command==1)
- {
- system("COLOR A0");
- printf("\n\t\tADDING a new contact");
- if(sub==1)
- {
- fscanf(usr,"%s",&usr_cnct.area);
- fscanf(usr,"%s",&usr_cnct.name);
- fscanf(usr,"%s",&usr_cnct.mail);
- fscanf(usr,"%s",&usr_cnct.number_1);
- fscanf(usr,"%s",&usr_cnct.number_2);
- }
- else
- {
- printf("\n\t\tAREA:");
- scanf("%s",&usr_cnct.area);
- printf("\n\t\tName:");
- scanf("%s",&usr_cnct.name);
- printf("\n\t\tMail:");
- scanf("%s",&usr_cnct.mail);
- printf("\n\t\tNumber 1");
- scanf("%s",&usr_cnct.number_1);
- printf("\n\t\tAlternative number:");
- scanf("%s",&usr_cnct.number_2);
- }
- int is=0,f_pos=size,c,qw,d;
- for(is=0; is<size; is++)
- {
- d=strcmp(a[is].area,usr_cnct.area);
- c=strcmp(a[is].name,usr_cnct.name);
- if(c>=0 && d>=0)
- {
- f_pos=is;
- break;
- }
- }
- if(strcmp(a[f_pos].name,usr_cnct.name)==0)
- a[f_pos]=usr_cnct;
- else
- {
- for(is=size-1; is>=f_pos; is--)
- a[is+1]=a[is];
- a[f_pos]=usr_cnct;
- size++;
- }
- inp=fopen("input.txt","w");
- for(i=0; i<size; i++)
- {
- fprintf(inp,"%s\n",a[i].area);
- fprintf(inp,"%s\n",a[i].name);
- fprintf(inp,"%s\n",a[i].mail);
- fprintf(inp,"%s\n",a[i].number_1);
- fprintf(inp,"%s\n",a[i].number_2);
- }
- fclose(inp);
- clrscr();
- }
- else if(command==2)
- {
- system("COLOR 97");
- printf("\n\t\tDELETING A CONTACT");
- if(sub==1)
- {
- fscanf(usr,"%s",&x);
- fscanf(usr,"%s",&y);
- }
- else
- {
- printf("\n\t\tAREA NAME:");
- scanf("%s",&x);
- printf("\n\t\tPerson name:");
- scanf("%s",&y);
- }
- int del_pos=-1,is,c,d;
- for(is=0; is<size; is++)
- {
- d=strcmp(a[is].area,x);
- c=strcmp(a[is].name,y);
- if(c==0 && d==0)
- {
- del_pos=is;
- break;
- }
- }
- if(del_pos!=-1)
- {
- for(is=del_pos; is<size; is++)
- a[is]=a[is+1];
- size--;
- }
- else
- printf("Invalid Input\n");
- inp=fopen("input.txt","w");
- for(i=0; i<size; i++)
- {
- fprintf(inp,"%s\n",a[i].area);
- fprintf(inp,"%s\n",a[i].name);
- fprintf(inp,"%s\n",a[i].mail);
- fprintf(inp,"%s\n",a[i].number_1);
- fprintf(inp,"%s\n",a[i].number_2);
- }
- fclose(inp);
- }
- else if(command==3)
- {
- system("COLOR 0E");
- printf("\n===========================================================");
- printf("\n\t\tViewing all contacts\n");
- for(i=0; i<size; i++)
- {
- printf("\n===========================================================");
- if(i==0)
- printf("\n===========================================================");
- printf("\n\n\t\tArea: %s\n",a[i].area);
- printf("\n\t\tName: %s\n",a[i].name);
- printf("\n\t\tEmail: %s\n",a[i].mail);
- printf("\n\t\tPhone number: %s\n",a[i].number_1);
- printf("\n\t\tAlternative Phone: %s\n\n",a[i].number_2);
- printf("\n===========================================================");
- if(i==size-1)
- printf("\n===========================================================");
- }
- printf("\n");
- printf("\n\t\tType anything to go to main menu");
- getchar();
- getchar();
- clrscr();
- }
- else if(command==4)
- {
- system("COLOR B0");
- printf("\n\t\tUpdating Menu");
- if(sub==1)
- {
- fscanf(usr,"%s",&usr_cnct.area);
- fscanf(usr,"%s",&usr_cnct.name);
- fscanf(usr,"%s",&usr_cnct.mail);
- fscanf(usr,"%s",&usr_cnct.number_1);
- fscanf(usr,"%s",&usr_cnct.number_2);
- }
- else
- {
- printf("\n\t\tAREA:");
- scanf("%s",&usr_cnct.area);
- printf("\n\t\tName:");
- scanf("%s",&usr_cnct.name);
- printf("\n\t\tMail:");
- scanf("%s",&usr_cnct.mail);
- printf("\n\t\tNumber 1");
- scanf("%s",&usr_cnct.number_1);
- printf("\n\t\tAlternative number:");
- scanf("%s",&usr_cnct.number_2);
- }
- int is=0,f_pos=size,c,qw,d;
- for(is=0; is<size; is++)
- {
- d=strcmp(a[is].area,usr_cnct.area);
- c=strcmp(a[is].name,usr_cnct.name);
- if(c==0 && d==0)
- {
- a[is]=usr_cnct;
- break;
- }
- }
- inp=fopen("input.txt","w");
- for(i=0; i<size; i++)
- {
- fprintf(inp,"%s\n",a[i].area);
- fprintf(inp,"%s\n",a[i].name);
- fprintf(inp,"%s\n",a[i].mail);
- fprintf(inp,"%s\n",a[i].number_1);
- fprintf(inp,"%s\n",a[i].number_2);
- }
- fclose(inp);
- clrscr();
- }
- else if(command==5)
- {
- system("COLOR 20");
- printf("\n\t\tSearching menu");
- printf("\n\t\tSearch by\n\t\t[1].Name and area\n\t\t[2].Search by Number");
- printf("\n\t\tChoose an option: ");
- scanf("%d",&sub);
- if(sub==1)
- {
- printf("\n\t\t|| Input Type ||\n\t\t[1]From file\n\t\t[2]From console\n\t\t");
- printf("Enter the choice:");
- scanf("%d",&sub1);
- if(sub1==1)
- {
- fscanf(usr,"%s",&x);
- fscanf(usr,"%s",&y);
- }
- else
- {
- printf("\n\t\tUser area:");
- scanf("%s",&x);
- printf("\n\t\tUser name");
- scanf("%s",&y);
- }
- int fin_pos=-1,is,c,d;
- for(is=0; is<size; is++)
- {
- d=strcmp(a[is].area,x);
- c=strcmp(a[is].name,y);
- if(c==0 && d==0)
- {
- fin_pos=is;
- break;
- }
- }
- if(fin_pos!=-1)
- {
- printf("FOUND!\n===========================================================\n");
- printf("\tArea: %s\n",a[fin_pos].area);
- printf("\tName: %s\n",a[fin_pos].name);
- printf("\tEmail: %s\n",a[fin_pos].mail);
- printf("\tPhone number: %s\n",a[fin_pos].number_1);
- printf("\tAlternative number: %s\n===========================================================\n",a[fin_pos].number_2);
- }
- else
- printf("\n\tInvalid Input\n\t");
- printf("\n\t\tType anything to go to main menu");
- getchar();
- getchar();
- clrscr();
- }
- else
- {
- printf("\n\t\t|| Input Type ||\n\t\t[1]From file\n\t\t[2]From console\n\t\t");
- printf("Enter the choice:");
- scanf("%d",&sub1);
- if(sub==1)
- {
- //printf("\n\t\tUser Number:")
- fscanf(usr,"%s",&x);
- //fscanf(usr,"%s",&y);
- }
- else
- {
- printf("\n\t\tUser number:");
- scanf("%s",&x);
- //scanf("%s",&y);
- }
- int fin_pos=-1,is,c,d;
- for(is=0; is<size; is++)
- {
- d=strcmp(a[is].number_1,x);
- if(c==0)
- {
- fin_pos=is;
- break;
- }
- }
- if(fin_pos!=-1)
- {
- printf("FOUND!\n===========================================================\n");
- printf("\tArea: %s\n",a[fin_pos].area);
- printf("\tName: %s\n",a[fin_pos].name);
- printf("\tEmail: %s\n",a[fin_pos].mail);
- printf("\tPhone number: %s\n",a[fin_pos].number_1);
- printf("\tAlternative number: %s\n===========================================================\n",a[fin_pos].number_2);
- }
- else
- printf("\n\tInvalid Input\n\t");
- printf("\n\t\tType anything to go to main menu");
- getchar();
- getchar();
- clrscr();
- }
- }
- else
- {
- system("COLOR 4E");
- printf("\n\t\t--Thanks--\n\t");
- break;
- }
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment