Ayuda en programa para bibloteca en lenguaje C

Discussion in 'Programación & Programación Web' started by saicroh, Nov 20, 2012.

  1. saicroh

    saicroh Usuario Nuevo nvl. 1
    36/41

    Joined:
    Oct 17, 2009
    Messages:
    43
    Likes Received:
    0
    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();


    }
     
  2. cavoso

    cavoso Usuario Casual nvl. 2
    37/41

    Joined:
    May 31, 2008
    Messages:
    2,727
    Likes Received:
    13
    tambien coloca el error que te aparece para identificar mas facil el problema
     
  3. El Fin

    El Fin Usuario Habitual nvl.3 ★
    187/244

    Joined:
    Oct 2, 2009
    Messages:
    16,562
    Likes Received:
    16
    En C++ a menudo suceden errores de la nada, es cosas de acostumbrarse nomás o encontrar algún hack xD.

    Saludos.
     
  4. rikr2_krtes

    rikr2_krtes Usuario Nuevo nvl. 1
    16/41

    Joined:
    Jun 2, 2010
    Messages:
    151
    Likes Received:
    0
    prueba agregando la libreria string.h... me parecio ver cadenas de caracteres


    saludos
     
  5. Sammy

    Sammy Usuario Casual nvl. 2
    36/41

    Joined:
    Jan 23, 2007
    Messages:
    2,301
    Likes Received:
    1
    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!