Ayuda en programa para bibloteca en lenguaje C

  • Iniciador del tema Iniciador del tema saicroh
  • Fecha de inicio Fecha de inicio

saicroh

Usuario Nuevo nvl. 1
17 Oct 2009
40
0
6
NULL
Necesito ayuda estoy haciendo un programa en lenguaje C en dev++ y ejecuto todo bien ingreso el libros y todo lo que me pide pero luego cunado pongo en mostrar libros no me funciona hay un error y no cacho cual es :/
asi es el programa ayuda porfa


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


int op,x,i,salir;
void menu();
void buscar_libro();
void Eliminar_libro();
void Modificar_libro();
void Mostrar_libro();
void Ingresar_libro();




void menu() {
printf ("menu \n");
printf ("1.buscar\n");
printf ("2.eliminar\n");
printf ("3.modificar\n");
printf ("4.mostrar todos\n");
printf ("5.Agregar Libro\n");
printf ("6.Salir\n");
scanf ("%d",&op);
switch (op){
case 1: printf("ingrese id a buscar");
scanf("%d",&x);
buscar_libro(x);
case 2: printf("ingrese id a eliminar");
scanf("%d", &x);
Eliminar_libro(x);
break;
case 3: printf("ingresar id a modificar");
scanf("%d",&x);
Modificar_libro(x);
break;
case 4: Mostrar_libro();
break;
case 5: Ingresar_libro();
break;
case 6: salir = 0;
break;
default: printf("opcion invalida \n");
break;
}
}


struct libro
{
char nombre[10];
char autor [10];
int paginas;
int cantidad;
int id;
int act;
}sistema[1000];




int cantidad_libros = 0;

void Ingresar_libro ()
{
int i,cont=0;
for(i=0;i<1000;i++) {
if (sistema.id==0) {
cont++ ;
}
}
cantidad_libros=cont;
printf ("Ingresar nombre del libro\n");
scanf (" %[^\n]",&sistema[cantidad_libros].nombre);

printf ("ingrese autor del libro\n");
scanf (" %[^\n]",&sistema[cantidad_libros].autor);

printf ("ingrese cantidad de paginas\n");
scanf (" %d",&sistema[cantidad_libros].paginas);

printf ("ingrese cantidad de libros\n");
scanf (" %d",&sistema[cantidad_libros].cantidad);

sistema[cantidad_libros].id = cantidad_libros+1;

sistema[cantidad_libros].act=1;
system("cls");
getch();
menu();
}

void Eliminar_libro(int id)
{ int i;
for (i=0; i<cantidad_libros; i++)
{
if(sistema.id==id){
sistema.act=0;
printf ("El Libro esta elimnado");
}
}
}
void Modificar_libro(int id)
{ int i;
for (i=0;i < cantidad_libros;i++)
{
if(sistema.id==id){
printf ("Ingresar nombre del libro \n");
scanf (" %[^\n]",&sistema.nombre);

printf ("ingrese autor del libro");
scanf (" %[^\n]",&sistema.autor);

printf ("ingrese cantidad de paginas");
scanf (" %d",&sistema.paginas);
printf ("ingrese cantidad de libros");
scanf (" %d",&sistema.cantidad);


}
}
}


void buscar_libro(int id)
{
int i;
int op;
op=0;
for (i=0;i < cantidad_libros;i++)
{
if(sistema.id==id){
printf("id %d \n",sistema.id );
printf("nombre %s \n",sistema.nombre);
printf("autor %s \n",sistema.autor);
printf("paginas %d \n",sistema.paginas );
printf(" cantidad %d \n",sistema.cantidad );
op=1;
break;
}
}
if(op==0){
printf("El libro no existe \n");
}
}
void Mostrar_libro()
{

int i;
for (i=0;i<10;i++)
{
if(sistema.act=1){


printf("id %d \n",sistema.id);
printf("nombre %s",sistema.nombre);
printf("autor %s",sistema.autor);
printf("paginas %d \n",sistema.paginas);
printf(" cantidad %d \n",sistema.cantidad);

}
}
}


int main (){
salir=1;


do{
menu();
}while(salir);
return 0;
getch();


}
 
En C++ a menudo suceden errores de la nada, es cosas de acostumbrarse nomás o encontrar algún hack xD.

Saludos.
 
revisa las variables donde guardas los datos...

cada vez que guardes, edites o elimines...tira para afuera los datos y revisa si van tal cual tu quieres...

saludos!