this is the program:
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
# define MAX 50 /* constant*/
struct addr { /*struct called
list*/
char trn[50] ;
} list[MAX]; /* 50 records*/
main()
{
int
choice;
init_list(); /* initialze the list */
for() {
choice = menu_select(); /* get user's selection*/ switch(choice)
{
case 1: enter(); /* enter a new entry */
break;
}
}
}
/*********************************************************/
/* Function del */
/*********************************************************/
del()
{
int
i;
char str[9];
inputs("enter trn: " , str , 9);
i = find(str);
if (i>=0) *list[i].trn = '\0' ;
else printf("not found\n") ;
}
/**********************************************************/
/* Function display */
/**********************************************************/
display(int i)
{
printf("%s\n" , list[i].trn);
}
/**********************************************************/
/* Function enter */
/**********************************************************/
enter()
{
int i;
for(;;) {
i = find_free(); /* find a free structure */
if(i<0) {
printf("list full\n");
return;
}
inputs("enter trn: ", list[i].trn,50); if(!*list[i].trn) break; /* stop entering */
}
}
/**********************************************************/
/* Function find */
/**********************************************************/
find(char *trn)
{
int i;
for(i=0; i<MAX; i++)
if(!strcmp(trn ,list[i].trn)) break;
if(i==MAX) return
else
return i;
}
/**********************************************************/
/* Function find_free */
/**********************************************************/
find_free()
{
register int i;
for(i=0; i<MAX; i++)
if(!*list[i].trn) return i;
return;
}
/**********************************************************/
/* Function init_list */
/**********************************************************/
init_list()
{
register int i;
for (i=0; i<MAX; i++)
*list[i].trn = '\0'
}
/**********************************************************/
/* Function inputs */
/**********************************************************/
inputs( char *prompt , char *s , int count)
{
char str[9];
do {
printf(prompt);
gets(str);
if(strlen(str) 1; 1; MAX;>=count);
printf("\ntoo long\n");
} while(strlen(str)>=count);
strcpy(s , str);
}
/**********************************************************/
/* Function load */
/**********************************************************/
load()
{
FILE *fp;
if ( (fp=fopen("mlist" , "rb")) == NULL) {
printf("cannot open file\n");
return;
}
printf("\nloading file\n");
fread(list , sizeof list , 1 , fp);
if (ferror(fp))
printf("An error occurred while reading file.\n");
fclose(fp);
}
/**********************************************************/
/* Function menu_select */
/**********************************************************/
menu_select()
{
char s[9];
int c;
printf("1. Enter a trn\n") ;
do {
printf("\nEnter your choice: ");
gets(s);
c = atoi(s);
} while(c<0 || c>7);
return c;
}
/**********************************************************/
/* Function save */
/**********************************************************/
save()
{
FILE *fp;
if ( (fp=fopen("mlist" , "wb")) == NULL) {
printf("cannot open file\n");
return;
}
printf("\nsaving file\n");
fwrite(list , sizeof list , 1 , fp);
if (ferror(fp))
printf("An error occurred while writing file.\n");
fclose(fp);
}
/**********************************************************/
/* Function search */
/**********************************************************/
search()
{
int i;
char trn[50];
inputs("enter trn to find: " , trn , 50);
if ((i=find(trn))<0)
printf("not found\n");
else display(i);
}
/**********************************************************/
/* Function show_list */
/**********************************************************/
show_list()
{
int i;
for(i=0; i<MAX; i++) {
if(*list[i].trn) {
display(i);
printf("\n\n");
}
}
printf("\n\n");
}

New Topic/Question
Reply




MultiQuote






|