elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con un programa en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con un programa en C  (Leído 4,026 veces)
ivangc44

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Ayuda con un programa en C
« en: 31 Diciembre 2011, 13:56 pm »

Buenas, q tal estan??? Queria hacerles una pregunta que me urge, es la siguiente:

Estoy haciendo una base de datos para una libreria, que tiene como menu lo siguiente:

1. Añadir un nuevo libro.
2. Listar todos los libros.
3. Listar la información de un libro (dado su título).
4. Prestar/Devolver un libro (dado su título).
5. Borrar un libro (dado su título).
6. Salir de la aplicación.

Resulta que cuando lo hago, me deja añadir libros, pero no me saca nada. Es como si no me dejase guardarlos. Si alguien me pudiese ayudar con las funciones que ahi pongo, le estaria muy agradecido.

(No estaria mal q estuviese para antes del dia 6 de enero), muchisimas gracias.


En línea

El_Java

Desconectado Desconectado

Mensajes: 144



Ver Perfil WWW
Re: Ayuda con un programa en C
« Respuesta #1 en: 31 Diciembre 2011, 13:58 pm »

(No estaría mal que subieras el código antes de pedir tareas, gracias)


En línea

ivangc44

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Ayuda con un programa en C
« Respuesta #2 en: 31 Diciembre 2011, 14:08 pm »

ups....se me paso, sorry, aki va:


/* Inclusion de librerias */
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
/* Definicion de constantes */
#define MAX_TITULO 35
#define MAX_AUTOR 20
#define MAX_LIBRO 10
/* Definicion de tipos creados por el programador */
struct fecha{
      int anno;
      int mes;
};
typedef struct fecha T_fecha;

struct libreria {
       T_fecha fecha_publicacion;
       char titulo[MAX_TITULO];
       char autor[MAX_AUTOR];
};
typedef struct libreria T_libreria;
/* Prototipos de funcion */
void menu(void);
void recoger_libro(T_libreria libro[]);
void mostrar_libro(T_libreria libro[]);

main(){
       
        T_libreria libro[MAX_LIBRO];
        char opc;
        int n, i;
       
        printf("***********************************************************\n");
        printf("***********************************************************\n");
        printf("**                      LIBRERIA                         **\n");
        printf("**                     MI LIBRITO                        **\n");
        printf("**                                                       **\n");
        printf("**              <<PON UN LIBRO EN TU VIDA>>              **\n");
        printf("***********************************************************\n");
        printf("***********************************************************\n\n");
       
        menu();
        printf("Opci%cn elegida?  ", 162);
        scanf("%c", &opc);
        while(opc == 'a' || opc == 'b' && opc != 'c' && opc != 'd' && opc != 'e' && opc!= 'f' && opc!= 'g'){
        switch(opc){
                   
                    case 'a':
                             
                             recoger_libro(libro);
                             break;
                   
                    case 'b':
                             void mostrar_libro(T_libreria);
                             break;
                   
                    case 'c':
                             break;
                   
                    case'd':
                            break;
                   
                    case 'e':
                             break;
                             
                    case 'f':
                             break;
                             
                    case 'g':
                             break;
                    }
        }
getch();
        }
       
/* Funcion (nombre) */
/********************************************************
**NOMBRE DE LA FUNCION: Menu                           **
**DESCRIPCIO: Nos muestra el menú principal.           **
**PUNTERO ENTRADA:                                     **
**PUNTERO DE SALIDA: Ninguno, solo muestra pantalla.   **
**SALIDA POR PANTALLA: Menu principal.                 **
*********************************************************/
void menu(void)
{
                printf("a. A%cadir un nuevo libro.\n", 164);
                printf("b. Listar todos los libros.\n");
                printf("c. Listar la informaci%cn de un libro.\n", 162);
                printf("d. Prestar un libro.\n");
                printf("e. Devolver un libro.\n");
                printf("f. Borrar un libro.\n");
                printf("g. Salir de la aplicaci%cn\n\n", 162);
     }
/********************************************************
**NOMBRE DE LA FUNCIÓN: recoger_libro                  **
**DESCRIPCIÓN: Añade libros (opción 1 del menú)        **
**PUNTERO ENTRADA: T_libreria                          **
**PUNTERO DE SALIDA: libro                             **
**SALIDA POR PANTALLA: Nada, solo recoje datos.        **
*********************************************************/
void recoger_libro(T_libreria libro[])
{
     int n, i;
     
     printf("Libros a introducir? ");
     scanf("%d", &n);
     for(i=0;i<n;i++){
                      printf("Titulo del libro: ");
                      gets(libro.titulo);
                      printf("Autor del libro: ");
                      gets(libro.autor);
                      printf("A%co de publicaci%cn: ", 164, 162);
                      scanf("%d", &(libro.fecha_publicacion.anno));
                      printf("Mes de publicaci%cn: ", 162);
                      scanf("%d", &(libro.fecha_publicacion.mes));
                      printf("Datos guardados.");
                      system("cls");
                      }
     
}                     
/*************************************************************
**NOMBRE DE LA FUNCIÓN: mostrar_libro                       **
**DESCRIPCIÓN: Muestra todos los libros (opción 2 del menú) **
**PUNTERO ENTRADA: T_libreria                               **
**PUNTERO DE SALIDA: libro[]                                **
**SALIDA POR PANTALLA: Todos los libros recogidos.          **
**************************************************************/
void mostrar_libro(T_libreria libro[])
{
     int i, n;
         
     for(i=0;i<n;i++){
                      printf("Titulo de libro: %s", libro.titulo);
                      printf("Autor del libro: %s", libro.autor);
                      printf("Mes de publicaci%cn: %s", 162, libro.fecha_publicacion.mes);
                      printf("A%co publicaci%cn: %s", 164, 162, libro.fecha_publicacion.anno);
                      }
}
/*************************************************************
**NOMBRE DE LA FUNCIÓN: listar_libro                        **
**DESCRIPCIÓN: Muestra el libro buscado (opción 3 del menú) **
**PUNTERO ENTRADA: T_libreria                               **
**PUNTERO DE SALIDA: libro[]                                **
**SALIDA POR PANTALLA: Libro listado en formato caracter.   **
**************************************************************/
void listar_libro (T_libreria libro[])
{
 }

Me faltan algunas funciones, pero dado q no me funcionan las mas simples, no he seguido creandolas, hasta que no las resolviese, pero no veo el fallo.
En línea

-- KiLiaN --


Desconectado Desconectado

Mensajes: 1.163


Ju Já!!


Ver Perfil
Re: Ayuda con un programa en C
« Respuesta #3 en: 31 Diciembre 2011, 14:33 pm »

Utiliza "insertar codigo" para meter el codigo, se ve mejor.
En línea

ivangc44

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Ayuda con un programa en C
« Respuesta #4 en: 31 Diciembre 2011, 16:10 pm »

Código
  1. /* Inclusion de librerias */
  2. #include <stdio.h>
  3. #include <conio.h>
  4. #include <stdlib.h>
  5. /* Definicion de constantes */
  6. #define MAX_TITULO 35
  7. #define MAX_AUTOR 20
  8. #define MAX_LIBRO 10
  9. /* Definicion de tipos creados por el programador */
  10. struct fecha{
  11.      int anno;
  12.      int mes;
  13. };
  14. typedef struct fecha T_fecha;
  15.  
  16. struct libreria {
  17.       T_fecha fecha_publicacion;
  18.       char titulo[MAX_TITULO];
  19.       char autor[MAX_AUTOR];
  20. };
  21. typedef struct libreria T_libreria;
  22. /* Prototipos de funcion */
  23. void menu(void);
  24. void recoger_libro(T_libreria libro[]);
  25. void mostrar_libro(T_libreria libro[]);
  26.  
  27. main(){
  28.  
  29.        T_libreria libro[MAX_LIBRO];
  30.        char opc;
  31.        int n, i;
  32.  
  33.        printf("***********************************************************\n");
  34.        printf("***********************************************************\n");
  35.        printf("**                      LIBRERIA                         **\n");
  36.        printf("**                     MI LIBRITO                        **\n");
  37.        printf("**                                                       **\n");
  38.        printf("**              <<PON UN LIBRO EN TU VIDA>>              **\n");
  39.        printf("***********************************************************\n");
  40.        printf("***********************************************************\n\n");
  41.  
  42.        menu();
  43.        printf("Opci%cn elegida?  ", 162);
  44.        scanf("%c", &opc);
  45.        while(opc == 'a' || opc == 'b' && opc != 'c' && opc != 'd' && opc != 'e' && opc!= 'f' && opc!= 'g'){
  46.        switch(opc){
  47.  
  48.                    case 'a':
  49.  
  50.                             recoger_libro(libro);
  51.                             break;
  52.  
  53.                    case 'b':
  54.                             void mostrar_libro(T_libreria);
  55.                             break;
  56.  
  57.                    case 'c':
  58.                             break;
  59.  
  60.                    case'd':
  61.                            break;
  62.  
  63.                    case 'e':
  64.                             break;
  65.  
  66.                    case 'f':
  67.                             break;
  68.  
  69.                    case 'g':
  70.                             break;
  71.                    }
  72.        }
  73.        }
  74.  
  75. /* Funcion (nombre) */
  76. /********************************************************
  77. **NOMBRE DE LA FUNCION: Menu                           **
  78. **DESCRIPCIO: Nos muestra el menú principal.           **
  79. **PUNTERO ENTRADA:                                     **
  80. **PUNTERO DE SALIDA: Ninguno, solo muestra pantalla.   **
  81. **SALIDA POR PANTALLA: Menu principal.                 **
  82. *********************************************************/
  83. void menu(void)
  84. {
  85.                printf("a. A%cadir un nuevo libro.\n", 164);
  86.                printf("b. Listar todos los libros.\n");
  87.                printf("c. Listar la informaci%cn de un libro.\n", 162);
  88.                printf("d. Prestar un libro.\n");
  89.                printf("e. Devolver un libro.\n");
  90.                printf("f. Borrar un libro.\n");
  91.                printf("g. Salir de la aplicaci%cn\n\n", 162);
  92.     }
  93. /********************************************************
  94. **NOMBRE DE LA FUNCIÓN: recoger_libro                  **
  95. **DESCRIPCIÓN: Añade libros (opción 1 del menú)        **
  96. **PUNTERO ENTRADA: T_libreria                          **
  97. **PUNTERO DE SALIDA: libro                             **
  98. **SALIDA POR PANTALLA: Nada, solo recoje datos.        **
  99. *********************************************************/
  100. void recoger_libro(T_libreria libro[])
  101. {
  102.     int n, i;
  103.  
  104.     printf("Libros a introducir? ");
  105.     scanf("%d", &n);
  106.     for(i=0;i<n;i++){
  107.                      printf("Titulo del libro: ");
  108.                      gets(libro.titulo);
  109.                      printf("Autor del libro: ");
  110.                      gets(libro.autor);
  111.                      printf("A%co de publicaci%cn: ", 164, 162);
  112.                      scanf("%d", &(libro.fecha_publicacion.anno));
  113.                      printf("Mes de publicaci%cn: ", 162);
  114.                      scanf("%d", &(libro.fecha_publicacion.mes));
  115.                      printf("Datos guardados.");
  116.                      system("cls");
  117.                      }
  118.  
  119. }                    
  120. /*************************************************************
  121. **NOMBRE DE LA FUNCIÓN: mostrar_libro                       **
  122. **DESCRIPCIÓN: Muestra todos los libros (opción 2 del menú) **
  123. **PUNTERO ENTRADA: T_libreria                               **
  124. **PUNTERO DE SALIDA: libro[]                                **
  125. **SALIDA POR PANTALLA: Todos los libros recogidos.          **
  126. **************************************************************/
  127. void mostrar_libro(T_libreria libro[])
  128. {
  129.     int i, n;
  130.  
  131.     for(i=0;i<n;i++){
  132.                      printf("Titulo de libro: %s", libro.titulo);
  133.                      printf("Autor del libro: %s", libro.autor);
  134.                      printf("Mes de publicaci%cn: %s", 162, libro.fecha_publicacion.mes);
  135.                      printf("A%co publicaci%cn: %s", 164, 162, libro.fecha_publicacion.anno);
  136.                      }
  137. }
  138. /*************************************************************
  139. **NOMBRE DE LA FUNCIÓN: listar_libro                        **
  140. **DESCRIPCIÓN: Muestra el libro buscado (opción 3 del menú) **
  141. **PUNTERO ENTRADA: T_libreria                               **
  142. **PUNTERO DE SALIDA: libro[]                                **
  143. **SALIDA POR PANTALLA: Libro listado en formato caracter.   **
  144. **************************************************************/
  145. void listar_libro (T_libreria libro[])
  146. {
  147. }
  148.  
  149. http://foro.elhacker.net/programacion_cc/ayuda_con_un_programa_en_c-t349077.0.html#ixzz1i7pZ9cvZ
En línea

Gallu

Desconectado Desconectado

Mensajes: 247



Ver Perfil
Re: Ayuda con un programa en C
« Respuesta #5 en: 1 Enero 2012, 21:04 pm »

No se si te has dado cuenta de que en recoger libro estás recibiendo un array de libros , no un solo libro , usa "[ ]" para referirte a la posición del que estás guardando la información , no te da errores el compilador ? te sucede lo mismo cuando intentas mostrar los libros guardados.

Otro consejo sería que evites el uso de conio y de llamadas al sistema (" system("cls");") .

Saludos
En línea

Nadie alcanza la meta con un solo intento, ni perfecciona la vida con una sola rectificación, ni alcanza altura con un solo vuelo.
ivangc44

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Ayuda con un programa en C
« Respuesta #6 en: 2 Enero 2012, 17:47 pm »

Y como se haria eso??? Podria explicarmelo?? Es q no ando en c muy bien, y pal colmo me han mandao ese proyecto, asi q....imaginense....
En línea

_niu

Desconectado Desconectado

Mensajes: 34



Ver Perfil
Re: Ayuda con un programa en C
« Respuesta #7 en: 2 Enero 2012, 20:42 pm »

La onda, segun me parece....

Cuando pedis libros recibis un T_Libreria [], en otras palabras un puntero, osea un T_Libreria *.
Siguendo con tu definicion de void recoger_libro(T_libreria libro[]);

necesitas primero comprobar que el tipo no te quiera entras mas libros que MAX_LIBRO por que te puede dar segmentation fault. Luego en el bucle  libro.facha = algo. Te compilo?? por que no podes hacer libro.fecha. porque libro es un puntero. mientras que libro, es el elemnto i del array de libros.

Espero haberte ayudado
En línea

std::cout<<Mi wiki personal<<"Nada es inalcanzable\n";
Gallu

Desconectado Desconectado

Mensajes: 247



Ver Perfil
Re: Ayuda con un programa en C
« Respuesta #8 en: 4 Enero 2012, 10:18 am »

Fíjate en como uso el argumento pasado a la función (el array). La clave es usar el índice(variable i) para acceder a los miembros del array.

Código
  1. /* Inclusion de librerias */
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. /* Definicion de constantes */
  5. #define MAX_TITULO 35
  6. #define MAX_AUTOR 20
  7. #define MAX_LIBRO 10
  8.  
  9. #define LIMPIA_BUFFER while(getchar()!='\n')
  10.  
  11. /* Definicion de tipos creados por el programador */
  12. struct fecha{
  13.     int anno;
  14.     int mes;
  15. };
  16.  
  17. typedef struct fecha T_fecha;
  18.  
  19. struct libreria {
  20.      T_fecha fecha_publicacion;
  21.      char titulo[MAX_TITULO];
  22.      char autor[MAX_AUTOR];
  23. };
  24. typedef struct libreria T_libreria;
  25. /* Prototipos de funcion */
  26. void menu(void);
  27. void recoger_libro(T_libreria libro[]);
  28. void mostrar_libro(T_libreria libro[]);
  29.  
  30. int main(){
  31. T_libreria libro[MAX_LIBRO];
  32. recoger_libro(libro);        
  33.  
  34. }
  35.  
  36. void recoger_libro(T_libreria libro[])
  37. {
  38.    int n, i;
  39.  
  40.    printf("Libros a introducir? ");
  41.    scanf("%d", &n);
  42.    LIMPIA_BUFFER;
  43.  
  44.    for(i=0 ; i<n ; i++){
  45.     printf("Titulo del libro: ");
  46.     gets(libro[i].titulo);    
  47.     }
  48.  
  49.    printf("Títulos incluidos. Pulse una tecla para continuar...");
  50.    getchar();
  51.     // con esto limpiamos la consola
  52.    fprintf(stdout, "\033[2J");  
  53.    //nos posicionamos al principio
  54.    fprintf(stdout, "\033[1;1H");
  55.  
  56.    printf("Los libros incluidos son: \n");
  57.    for(i=0 ; i < n ; i++){
  58. printf("%s \n" , libro[i].titulo);
  59.    }
  60.  
  61. }
  62.  

saludos.
En línea

Nadie alcanza la meta con un solo intento, ni perfecciona la vida con una sola rectificación, ni alcanza altura con un solo vuelo.
ivangc44

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Ayuda con un programa en C
« Respuesta #9 en: 5 Enero 2012, 12:00 pm »

joer, que razon teneis, se me a pasado. Muchisimas gracias!!!!!!
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
AYUDA CON PROGRAMA
Diseño Gráfico
Luisango 1 2,482 Último mensaje 17 Abril 2005, 13:25 pm
por Sub_Cero
ayuda con mi programa
Programación Visual Basic
nitrox 2 2,389 Último mensaje 31 Julio 2005, 00:48 am
por Slasher-K
Ayuda con programa en vb
Programación Visual Basic
BriaNUR 1 1,379 Último mensaje 12 Febrero 2006, 16:55 pm
por Kizar
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines