Necesito ayuda en c++ un programa que es una agenda
Necesito el código de este lenguaje ya casi esta terminado falta muy poco pero esto tiene algunos errores pues bo hace lo que quiero que haga, en primera si introduzco los datos pero al momento de verlos no aparecen todos, ademas no se borran por favor lo necesito bueno aquí esta lo que llevo...
/* Agenda de telefonos*/
#include "stdio.h"
#include "stdlib.h"
#define MAX 5
struct dir {
char nombre[30];
char calle[40];
char ciudad[20];
char telefono[12];
} datos[MAX];
void inic_lista(void);
void intro(void);
void borrar(void),listar(void);
int menu(void),busca_libre(void);
/*Bloque Principal**********************************************/
main(void)
{
char opcion;
inic_lista();
for (;;)
{
opcion = menu();
switch(opcion)
{
case 1: intro();
break;
case 2:borrar();
break;
case 3: listar();
break;
case 4: exit(0);
}
}
}
/*rutina para inicilizar el array**********************************/
void inic_lista(void)
{
register int t;
for (t=0; t<MAX; ++t)
datos[t].nombre[0]='\0';
}
/*rutina para vizulizar un menu************************************/
menu (void)
{
char s[80];
int c;
printf("\n\n\n\n");
printf(" MENU \n\n");
printf ("1. Introducir un nombre\n");
printf ("2. Borrar un nombre \n");
printf ("3. Listar el archivo\n");
printf ("4. Salir\n");
do
{
printf("\nIntroduzca su opcion NUMERICA : ");
gets(s);
c = atoi(s);
}
while(c<0 || c>4);
return c;
}
/*rutina para introducir un dato****************************************/
void intro(void)
{
int sitio;
sitio = busca_libre();
if(sitio==-1)
{
printf("\n lista llena");
return;
}
printf("introduzca nombre: ");
gets(datos[sitio].nombre);
printf("introduzca calle: ");
gets(datos[sitio].calle);
printf("introduzca ciudad: ");
gets(datos[sitio].ciudad);
printf("introduzca telefono: ");
gets(datos[sitio].telefono);
}
/*rutina para buscar una localidad vacia***********************************/
busca_libre(void)
{
register int t;
for (t=0;datos[t].nombre[0] && t<MAX;++t);
if (t==MAX)
return -1;
return t;
}
/* rutina para borrar un dato*********************************************/
void borrar(void)
{
register int sitio;
char s[80];
printf("Introdusca el numero de registro");
gets(s);
sitio= atoi(s);
if (sitio>=0 && sitio< MAX)
datos[sitio].nombre[0]='\0';
}
/* rutina para listar los datos********************************************/
void listar(void)
{
register int t;
for (t=0; t<MAX;++t)
{
if(datos[t].nombre[0])
{printf("posicion %s\n",t);
printf ("%s\n",datos-> nombre);
printf ("%s\n",datos->calle);
printf ("%s\n",datos->ciudad);
printf ("%s\n",datos->telefono);
}
}
printf("\n\n");
}
/* Agenda de telefonos*/
#include "stdio.h"
#include "stdlib.h"
#define MAX 5
struct dir {
char nombre[30];
char calle[40];
char ciudad[20];
char telefono[12];
} datos[MAX];
void inic_lista(void);
void intro(void);
void borrar(void),listar(void);
int menu(void),busca_libre(void);
/*Bloque Principal**********************************************/
main(void)
{
char opcion;
inic_lista();
for (;;)
{
opcion = menu();
switch(opcion)
{
case 1: intro();
break;
case 2:borrar();
break;
case 3: listar();
break;
case 4: exit(0);
}
}
}
/*rutina para inicilizar el array**********************************/
void inic_lista(void)
{
register int t;
for (t=0; t<MAX; ++t)
datos[t].nombre[0]='\0';
}
/*rutina para vizulizar un menu************************************/
menu (void)
{
char s[80];
int c;
printf("\n\n\n\n");
printf(" MENU \n\n");
printf ("1. Introducir un nombre\n");
printf ("2. Borrar un nombre \n");
printf ("3. Listar el archivo\n");
printf ("4. Salir\n");
do
{
printf("\nIntroduzca su opcion NUMERICA : ");
gets(s);
c = atoi(s);
}
while(c<0 || c>4);
return c;
}
/*rutina para introducir un dato****************************************/
void intro(void)
{
int sitio;
sitio = busca_libre();
if(sitio==-1)
{
printf("\n lista llena");
return;
}
printf("introduzca nombre: ");
gets(datos[sitio].nombre);
printf("introduzca calle: ");
gets(datos[sitio].calle);
printf("introduzca ciudad: ");
gets(datos[sitio].ciudad);
printf("introduzca telefono: ");
gets(datos[sitio].telefono);
}
/*rutina para buscar una localidad vacia***********************************/
busca_libre(void)
{
register int t;
for (t=0;datos[t].nombre[0] && t<MAX;++t);
if (t==MAX)
return -1;
return t;
}
/* rutina para borrar un dato*********************************************/
void borrar(void)
{
register int sitio;
char s[80];
printf("Introdusca el numero de registro");
gets(s);
sitio= atoi(s);
if (sitio>=0 && sitio< MAX)
datos[sitio].nombre[0]='\0';
}
/* rutina para listar los datos********************************************/
void listar(void)
{
register int t;
for (t=0; t<MAX;++t)
{
if(datos[t].nombre[0])
{printf("posicion %s\n",t);
printf ("%s\n",datos-> nombre);
printf ("%s\n",datos->calle);
printf ("%s\n",datos->ciudad);
printf ("%s\n",datos->telefono);
}
}
printf("\n\n");
}
2 Respuestas
Respuesta de brisli
1
Respuesta de rolan2kn
1