Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/12/2012, 11:25
pique93
 
Fecha de Ingreso: diciembre-2012
Ubicación: España
Mensajes: 5
Antigüedad: 12 años
Puntos: 0
Pregunta Funciones con punteros

Hola compañeros,
soy medio nuevo en esto de la programacion y tengo que hacer un proyecto de una base de datos para entrega final. Tengo varias dudas a ver si los sabios de la comunidad me la saben resolver. Tengo que realizar una base de datos con funciones, punteros y tal que tengo algo hecho.
Código:
#include "funciones.h"

struct caracteristicas {
    char nombre[15];
    int edad;
    int peso;
    int cantidad;
    char habitat [20];
    int identificacion;
    struct caracteristicas *siguiente;
};

// Insertar especie
void crear(struct caracteristicas **primera, struct caracteristicas **ultima, int *nCaracteristicas){

    struct caracteristicas *especie=NULL; //puntero que apuntara a la especie que estamos creando

// Asignamos el espacio de memoria necesario para la especie
    if ((especie=malloc(sizeof(struct caracteristicas)))==NULL){
        puts("Error al asignar la memoria");
    } else {
        // pedimos los datos de la especie
        puts("Dar de alta una especie:\n");
        puts("Dime el nombre de la especie: ");
        gets(especie->nombre);
        fflush(stdin);
        puts("Dime la edad: ");
        scanf("%d",&especie->edad);
        fflush(stdin);
         puts("Dime el peso: ");
        scanf("%d",&especie->peso);
        fflush(stdin);
         puts("Dime la cantidad: ");
        scanf("%d",&especie->cantidad);
        fflush(stdin);
         puts("Dime el habitat: ");
        gets(especie->habitat);
        fflush(stdin);
        puts("Dime el numero identificativo: ");
        scanf("%d",&especie->identificacion);
        printf("\n\n");
        especie->siguiente=NULL;
        
        // Ponemos siguiente a null ya que la especie actual sera la ultima
        if (*primera==NULL){
            // Si primera es null no tenemos especies y la primera y ultima seran la actual
            *ultima=especie;
            *primera=especie;
        } else {
            // Si ya tenemos especies el puntero siguiente de la ultima persona apuntara
            // a la actual y la ultima sera esta
            (**ultima).siguiente=especie;
            *ultima=especie;
        }
        (*nCaracteristicas)++;
        puts("Insercion correcta");
    }
}


// Mostrar las especies de la lista
void mostrar(struct caracteristicas *primera){

    if ((primera==NULL)){
        puts("No hay personas insertadas");
    } else {
        struct caracteristicas *carActual=primera;
        // Asignamos la primera especie al puntero y mostramos sus datos
        do {
            printf("Nombre: %s\nEdad: %d\nCantidad: %d\nNumero identificativo: %d\n",carActual->nombre, carActual->edad,carActual->cantidad, carActual->identificacion);
            printf("\n\n");
            // Buscamos la siguiente persona y apuntamos a ella
            carActual=carActual->siguiente;
        } while(carActual!=NULL);
        
    }
}
Ahora a partir de esto tengo que crear una funcion para borrar, modificar una especie ya introducida, aumentar y disminuir cantidad de animales...
Si alguien me pudiera ayudar se lo agradeceria. :)

Última edición por pique93; 20/12/2012 a las 11:51