Foros del Web » Programación para mayores de 30 ;) » C/C++ »

ayuda con una funcion y ver si me orientan con 3..

Estas en el tema de ayuda con una funcion y ver si me orientan con 3.. en el foro de C/C++ en Foros del Web. tengo este pequeño problema al poner q me muestre la informacion q se a introducido no pasa nada si alguien pudiera ayudarme a resolver ese ...
  #1 (permalink)  
Antiguo 25/11/2008, 01:41
 
Fecha de Ingreso: septiembre-2008
Mensajes: 1
Antigüedad: 15 años, 7 meses
Puntos: 0
ayuda con una funcion y ver si me orientan con 3..

tengo este pequeño problema al poner q me muestre la informacion q se a introducido no pasa nada si alguien pudiera ayudarme a resolver ese problemita
y si n oes mucho pedir si podrian orientarme por q aun me falta hacer el de busqueda lineal y binaria y modificar la informacion guardada nomas q aun no c como hacer esas ultimas 3 si alguien me echara la mano se los agradeceria muchisimo bueno gracias

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>

typedef struct nodo{
char clave[5];
char nombre[20];
char apellido[20];
char edad[5];
char modelo_arma[20];
char serial_arma[5];
struct nodo *sig;
} LISTA ;

LISTA *inicio;

void ingresar(void), guardar(void);
void cargar(void), imprimir(void), mostrar(LISTA *info);
void eliminar(LISTA **inicio), insertar(LISTA *nuevo, LISTA **inicio);
char menu(void);
char menu1(void);
char menu2(void);

void main(void){
clrscr();
inicio=NULL;
cargar();
char ver,ver2;
while(ver!='4')
{
fflush(stdin);
ver=menu();
switch(ver)
{
case '1': ver2='R';
while(ver2!='4')
{
fflush(stdin);
ver2=menu1();
switch(ver2)
{
case '1': ingresar(); break;
case '2': eliminar(&inicio); break;
case '3': imprimir(); break;
case '4': clrscr(); break; //Salida
}
} break;
case '2': ver2=1;
while(ver2!='4')
{
fflush(stdin);
ver2=menu2();
switch(ver2)
{
case '1': clrscr(); //Busqueda Binaria
case '2': clrscr(); //Busqueda Lineal
case '4': clrscr(); //Salida
}
} break;
case '4': clrscr(); break; //Salida
}
}
guardar();
}

void cargar(void){
LISTA *info;
FILE *fp;

fp=fopen("pro2000.txt","r");
if(fp==NULL){
printf("No se puede abrir el archivo\n");
return;
}
inicio=NULL;

while(!feof(fp)){
info=(LISTA *) malloc(sizeof(LISTA));
if(info==NULL){
printf("No hay memoria\n");
return;
}

if(fread(info, sizeof(LISTA), 1, fp)!=1) break;
insertar(info, &inicio);
}
fclose(fp);
}

void guardar(void){
LISTA *info;
FILE *fp;

fp=fopen("pro2000.txt","w");
if(fp==NULL){
printf("No se puede abrir el archivo\n");
exit(1);
}

info=inicio;
while(info!=NULL){
fwrite(info, sizeof(LISTA), 1, fp);
info=info->sig;
}
fclose(fp);
}

void imprimir(void){
LISTA *info;
info=inicio;

while(info!=NULL){
mostrar(info);
info=info->sig;
}
printf("\n");
}

void mostrar(LISTA *info){
clrscr();
printf("\nLista de clientes\n");
printf("\nClave: %s\n", info->clave);
printf("Nombre: %s\n", info->nombre);
printf("Apellido: %s\n", info->apellido);
printf("Edad: %s\n", info->edad);
printf("Modelo del arma: %s\n", info->modelo_arma);
printf("Serial del arma: %s\n", info->serial_arma);

}

void eliminar(LISTA **inicio){
LISTA *anterior, *actual, *temp;
char elemento[5];
clrscr();

if(*inicio==NULL){
printf("No hay registros\n\n"); return; }

printf("Ingrese dato a eliminar: "); gets(elemento);

if(atoi(elemento)==atoi((*inicio)->clave)){
temp=*inicio;
*inicio=(*inicio)->sig;
free(temp); }

else{
anterior=*inicio;
actual=(*inicio)->sig;

while(actual!=NULL && atoi(elemento) != atoi(actual->clave)){
anterior=actual;
actual=actual->sig;
}

if(actual!=NULL){
temp=actual;
anterior->sig=actual->sig;
free(temp); }

else{ printf("El elemento no existe\n\n"); return; }

}
printf("El elemento ha sido eliminado\n\n");
}

void ingresar(void){
LISTA *info;
info=(LISTA *) malloc(sizeof(LISTA));
clrscr();

if(info==NULL){
printf("\nNo hay memoria\n"); return; }

printf("Ingrese Clave: "); gets(info->clave);
printf("Ingrese Nombre: "); gets(info->nombre);
printf("Ingrese Apellido: "); gets(info->apellido);
printf("Ingrese Edad: "); gets(info->edad);
printf("Ingrese modelo del arma: "); gets(info->modelo_arma);
printf("Ingrese serial del arma: "); gets(info->serial_arma);
insertar(info, &inicio);
printf("\n");
}

void insertar(LISTA *nuevo, LISTA **inicio){
LISTA *anterior, *actual;
anterior=NULL;
actual=*inicio;

while(actual!=NULL && atoi(nuevo->clave) > atoi(actual->clave)){
anterior=actual;
actual=actual->sig;
}

if(anterior==NULL){
nuevo->sig=*inicio;
*inicio=nuevo;
}

else{
anterior->sig=nuevo;
nuevo->sig=actual;
}
}

char menu(void){
char c;
clrscr();
printf("\n\n\t\t\t***MENU PRINCIPAL***");
printf("\n\t(1) Altas, Bajas y Ver lista \n\t(2) Busqueda Binaria y Busqueda Lineal \n\t(4) Salir\n");
printf("\n\tSeleccion: ");
c=getche();
printf("\n");
return(c);
}

char menu1(void){
char c;
clrscr();
printf("\n\n\t\t\t***Altas, Bajas y Ver lista***");
printf("\n\t(1) Ingresar \n\t(2) Eliminar \n\t(3) Mostrar lista \n\t(4) Salir\n");
printf("\n\tSeleccion: ");
c=getche();
printf("\n");
return(c);
}

char menu2(void){
char c;
clrscr();
printf("\n\n\t\t\t***Busqueda***");
printf("\n\t(1) Busqueda Binaria \n\t(2) Busqueda Lineal \n\t(4) Salir\n");
printf("\n\tSeleccion: ");
c=getche();
printf("\n");
return(c);
}
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:18.