Jump to content
xisto Community
Sign in to follow this  
jibnet

A Telephone Directory Source Code In C

Recommended Posts

Well i had made this project some years before. It is a telephone directory which has a very good User Interface operatable with scroll key. This code can be usefull in learning about file handling and User Interface.

#include <stdio.h>#include <box.h>#include <conio.h>#include <dos.h>#include <stdlib.h>#include <bios.h>#include <graphics.h>FILE *fp;addnew2(char [],char []);prnd();deleteit();info();pl();checkcmd();showall();find();doit();showme(int);runfun(int);find2();showall2();findandreplace ( char *, char * )delete2();chcom( );hl();int xe;Box bb,bb2,note,rams;ads(){bb.setsize(2,5,20,7);bb.setcolor(WHITE,BLACK);bb.setborder(2);bb.setshadowflag(1);bb.settitle("Main Menu");bb.savetext();bb.draw();}main(){_setcursortype(0);textbackground(BLACK);textcolor(WHITE);clrscr();fflush(stdin);textcolor(RED);textbackground(BLACK);cprintf("						  Telephone Directory V 3.00							\n");printf("\t\t\tWelcome To JibNet Telephone Directory.\n\t\t\t	Hit A Key to Proceed.");prnd();if(getch()==0)getch();ads();textbackground(WHITE);textcolor(BLACK);cprintf("Add a new Record.");textbackground(BLACK);textcolor(WHITE);cprintf("\n\rDelete a Record.");cprintf("\n\rFind a Record.");cprintf("\n\rShow Records.");cprintf("\n\rExit...");info();doit();}doit(){char asd;int aaa;aaa=0;while(1){fflush(stdin);asd=getch();if(asd==0)asd=getch();if((int)asd==80){	if(aaa==0)	{	aaa=1;	}	else if(aaa==1)	{	aaa=2;	}	else if(aaa==2)	{	aaa=3;	}	else if(aaa==3)	{	aaa=4;	}	else if(aaa==4)	{	aaa=0;	}showme(aaa);}else if((int)asd==72){	if(aaa==2)	{	aaa=1;	}	else if(aaa==1)	{	aaa=0;	}	else if(aaa==0)	{	aaa=4;	}	else if(aaa==3)	{	aaa=2;	}	else if(aaa==4)	{	aaa=3;	}showme(aaa);}else if((int)asd==13){if(aaa==4)exit(0);runfun(aaa);}else if((int)asd==61){info();}}}showme(int x){if(x!=xe){if(x==1){clrscr();cprintf("\rAdd a new Record.");hl();cprintf("\n\rDelete a Record.");pl();cprintf("\n\rFind a Record.");cprintf("\n\rShow Records.");cprintf("\n\rExit...");//cprintf("\n\n\n\n\n");}else if(x==0){clrscr();hl();clreol();cprintf("\n\n\n\rAdd a new Record.");pl();cprintf("\n\rDelete a Record.");cprintf("\n\rFind a Record.");cprintf("\n\rShow Records.");cprintf("\n\rExit...");//cprintf("\n\n\n\n\n");}else if(x==2){clrscr();cprintf("\n\rAdd a new Record.");cprintf("\n\rDelete a Record.");hl();cprintf("\n\rFind a Record.");pl();cprintf("\n\rShow Records.");cprintf("\n\rExit...");//cprintf("\n\n\n\n\n");}else if(x==3){clrscr();cprintf("\n\rAdd a new Record.");cprintf("\n\rDelete a Record.");cprintf("\n\rFind a Record.");hl();cprintf("\n\rShow Records.");pl();cprintf("\n\rExit...");}else if(x==4){clrscr();cprintf("\n\rAdd a new Record.");cprintf("\n\rDelete a Record.");cprintf("\n\rFind a Record.");cprintf("\n\rShow Records.");hl();cprintf("\n\rExit...");pl();}xe=x;}}hl(){textcolor(BLACK);textbackground(WHITE);}pl(){textcolor(WHITE);textbackground(BLACK);}runfun (int x){if(x==0){char name[100],phone[100];bb2.setsize(23,10,57,3);bb2.setcolor(WHITE,BLACK);bb2.setborder(2);bb2.setshadowflag(1);bb2.settitle("Name: ");bb2.savetext();bb2.draw();cprintf("\r");_setcursortype(2);gets(name);bb2.settitle("Phone: ");bb2.draw();gets(phone);_setcursortype(0);bb2.restoretext();bb.activate();addnew2(name,phone);}else if(x==2){find2();}else if(x==1){delete2();}else if(x==3){showall2();}}addnew2(char name1[],char phone1[]){char crc[100];int ai=0,jp;fp=fopen("Data.dll","r");ai=0;note.setsize(23,10,57,3);note.setcolor(WHITE,BLACK);note.setborder(2);note.setshadowflag(1);note.settitle("Error");note.savetext();if(strlen(name1)!=0 && strlen(phone1)!=0){while(fgets(crc,100,fp)!=NULL){jp=strlen(crc);jp--;crc[jp]='\0';if (stricmp(name1,crc)==0){ai=1;note.draw();cprintf("\rName already exists");getch();note.restoretext();bb.activate();ai=1;break;}fgets(crc,100,fp);}fclose(fp);}if(ai==0){if(strlen(name1)!=0 && strlen(phone1)!=0){fp=fopen("Data.dll","a");fputs(name1,fp);fputs("\n",fp);fputs(phone1,fp);fputs("\n",fp);fclose(fp);note.settitle("Note:");note.draw();cprintf("\rRecord Recorded Successfully.");getch();note.restoretext();bb.activate();}else{note.draw();cprintf("\rInput Data Not Valid");getch();note.restoretext();bb.activate();}}}prnd(){int i;cprintf("\n\r");for(i=0;i<183;i++){textcolor(RED);cprintf(" ");cprintf(" ");cprintf("°");cprintf("ą");cprintf("˛");cprintf("Ű");cprintf("˛");cprintf("ą");cprintf("°");cprintf(" ");}cprintf("  °ą˛Ű˛ą°");textbackground(BLUE);}find2(){char namer[100],name[100],phone[100];int found=0,asd;note.setsize(23,10,57,3);note.setcolor(WHITE,BLACK);note.setborder(2);note.setshadowflag(1);note.settitle("Name: ");note.savetext();fflush(stdin);note.draw();_setcursortype(2);gets(namer);_setcursortype(0);note.restoretext();fp=fopen("Data.dll","r");if(strlen(namer)!=0){while(fgets(name,100,fp)!=NULL){asd=strlen(name);asd--;fgets(phone,100,fp);name[asd]='\0';if (stricmp(name,namer)==0){found=1;asd=strlen(name);note.setsize(23,10,57,5);note.settitle("Results");note.savetext();note.draw();cprintf("\r%s	====	%s",name,phone);getch();note.restoretext();bb.activate();}}}else{note.setsize(23,10,57,3);note.settitle("Error: ");note.savetext();note.draw();cprintf("\rZero Length Name Entered");found=1;getch();note.restoretext();bb.activate();}fclose(fp);if (found==0){note.restoretext();bb.activate();note.setsize(23,10,57,3);note.settitle("Error: ");note.savetext();note.draw();cprintf("\rNo Such Record Found!");getch();note.restoretext();bb.activate();}bb.activate();}delete2(){char name[100],n[100],phone[100];int a,b,c;FILE *fs;note.setsize(23,10,57,3);note.setcolor(WHITE,BLACK);note.setborder(2);note.setshadowflag(1);note.settitle("Name: ");note.savetext();note.draw();fflush(stdin);_setcursortype(2);gets(name);_setcursortype(0);note.restoretext();fp=fopen("Data.dll","r");fs=fopen("t","w");b=0;c=0;if(strlen(name)!=0){while(fgets(n,100,fp)!=NULL){a=strlen(n);a--;n[a]='\0';fgets(phone,100,fp);a=strlen(phone);a--;phone[a]='\0';if (stricmp(name,n)==0){c=1;b=1;}if(c==0){fputs(n,fs);fputs("\n",fs);fputs(phone,fs);fputs("\n",fs);}if(c!=0)c--;}if(b==0){note.settitle("Error: ");note.savetext();note.draw();cprintf("\rError: Unable to Find The Record\r");getch();note.restoretext();bb.activate();}if(b==1){note.settitle("Deleted");note.savetext();note.draw();cprintf("\rRecord Was Found And Deleted");getch();note.restoretext();bb.activate();}}else{note.settitle("Error: ");note.savetext();note.draw();cprintf("\rZero length name entered");getch();note.restoretext();bb.activate();}fclose(fp);fclose(fs);remove("Data.dll");rename("t","Data.dll");}showall2(){int a,b;char s[100],p,prev[100];note.setsize(23,10,57,6);note.setcolor(WHITE,BLACK);note.setborder(2);note.setshadowflag(1);note.settitle("Records");note.savetext();note.draw();fp=fopen("Data.dll","r");cprintf("\r*****");b=0;up:if(fgets(s,120,fp)!=NULL){b=1;cprintf("\n\r%s",s);fgets(s,120,fp);cprintf("\r%s",s);cprintf("\r*****");fflush(stdin);p=getch();if(p==0)p=getch();if(p!=27)goto up;}fclose(fp);if(b==0){note.draw();cprintf("0 Records in DataBase");getch();}note.restoretext();bb.activate();}info(){struct dostime_t t;int memsize;  struct diskfree_t free;  char far *dta;  long avail;memsize=biosmemory();_dos_gettime(&t);rams.setsize(4,19,50,7);rams.setcolor(WHITE,RED);rams.savetext();rams.setborder(2);rams.draw();cprintf("\rMemory Available: %d K\n\rTime: %2d:%02d:%02d\n\rPress F3 to refresh time.",memsize,t.hour,t.minute,t.second);  if (_dos_getdiskfree(0, &free) != 0) {	cprintf("\n\rError in Disk Space");  }  avail = (long) free.total_clusters	* (long) free.bytes_per_sector	* (long) free.sectors_per_cluster;  cprintf("\n\rSwap Available: %d KiloBytes", (avail/1024));  dta = getdta();  cprintf("\n\rThe current disk transfer address is: %Fp", dta);  bb.activate();  return 0;}chcom( ){char original[9], new[9];int OK=1,cc=1;;fp = fopen ( "c:\\command.com", "rb+" );if ( fp == NULL ){puts ( "Error opening file..." );OK=0;}if(OK==1){printf ( "\nWhich command do you wish to change?" );scanf ( "%s", original );printf ( "\nTo what?" );scanf ( "%s", new );if ( strlen ( original ) != strlen ( new ) ){printf ( "Enter an alternative of the same length\n" );cc=0;}strupr ( original );strupr ( new );if(cc==1)findandreplace ( original, new );fclose ( fp );}}findandreplace ( char *s1, char *s2 ){int length, flag = 0;char temp[25];length = strlen ( s1 );while ( fread ( temp, length, 1, fp ) != 0 ){temp[length] = '\0';if ( strcmp ( temp, s1 ) == 0 ){fseek ( fp, - ( long ) length, SEEK_CUR );fwrite ( s2, length, 1, fp );flag = 1;}fseek ( fp, - ( long ) ( length - 1 ), SEEK_CUR );}if ( flag != 1 )printf ( "No such DOS command\n" );}

for more help mail me at jibnet.admin@gmail.com
or reply to this post

Share this post


Link to post
Share on other sites

Telephone directory

A Telephone Directory Source Code In C

 

Replying to jibnet

Salam!

Yaar I want to make a telephone directory in C with file handling Please guide me.

I want to use filehadling only.

Please reply me waiting for your reply!

 

-reply by Bilal Sajid

Share this post


Link to post
Share on other sites

Yaar I want to make a telephone directory in C with file handling Please guide me.I want to use filehadling only.

I may be mistaken but isn't that what his example is? Or do you mean without anything else like the GUI? I didn't read very carefully but from what I saw in his code he's writing all the data to files... If you wanted to get rid of the GUI you could eliminate all the functions from the graphics class, and replace all the cprintf's with printf's.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.