Welcome Guest ( Log In | Register)



 
Reply to this topicStart new topic
> A Telephone Directory Source Code In C
jibnet
post Jun 5 2006, 09:17 AM
Post #1


Member [Level 1]
****

Group: Members
Posts: 53
Joined: 4-June 06
Member No.: 24,718



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.

CODE
#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
Go to the top of the page
 
+Quote Post
iGuest
post Apr 17 2008, 11:32 AM
Post #2


Trap Double Mocha Member
***************

Group: Members
Posts: 2,360
Joined: 21-September 07
Member No.: 50,369



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
Go to the top of the page
 
+Quote Post
galexcd
post Apr 18 2008, 06:31 PM
Post #3


Define:EVIL PROGRAMMER (ē'vəl prō'grăm'ər)- n. An organism that converts caffeine into evil software.
***********

Group: [HOSTED]
Posts: 1,076
Joined: 25-September 05
From: Los Angeles, California
Member No.: 12,251



QUOTE(FeedBacker @ Apr 17 2008, 04:32 AM) *
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.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic

Collapse

> Similar Topics

Topics Topics
  1. C Code, Can U Solve This?(22)
  2. Adding Myfileexists Function To My Basic Code?(2)
  3. Code Documentation(1)
  4. Simple C File Handling In Action(4)
  5. Prob With My C Code(4)
  6. Source Code For Paint Like Program Under Dos In C(2)
  7. Wolfenstein Source Code Now In Public Domain(3)
  8. C++ Roman Numeral Conversion Code Help(5)
  9. Most Efficient Code To Get Prime Numbers(7)


 



- Lo-Fi Version Time is now: 8th October 2008 - 10:10 AM