Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - juanlop

#1
Hola, es la primera vez que entro a este foro y pues también la primera vez que pregunto. Estoy estudiando Ing. Química y este cuatrimestre nos están enseñando cosas básicas en c, y ahora nos han mandado un trabajo para final de mayo y ando bastante liado ya que supera mi nivel de programación con mucha diferencia, solo necesito que me aconsejen si mi forma de plantear el problema es la correcta y si es así pues seguir luchando y sino pues cambiar el código, les dejo un fragmento del enunciado del programa y las partes del código que me están complicando demasiado, puede que encuentren el código como un completo desastre ya que todavía me quedan unas pocas horas para arreglar este lío.
El programa es sobre un aparcamiento público, la distribución de estacionamientos se puede representar con una matriz de NxM en la que cada celda es una plaza. Cada vez que entra un vehículo, el sistema registra la hora y la fecha así como como la matrícula del coche...(siguen contando cosas sobre cuanto tienen que pagar por el tiempo que están... pero todavía no he llegado a esa parte).
Se pide desarrollar una aplicación que permita:
1.Entrada de vehículo. si existen plazas libres (circunstancia que el programa debe saber sin hacer una busqueda secuencial), solicita la matricula y toma la hora y fecha de entrada.
este es el codigo que use para todo esto


#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<string.h>
#define COLUMNAS 10
#define FILAS 10
void ent_coche(char *p1, char *p2);
void verplaza (char*);
void captar_tiempo (char *fecha);
int menu (void);
void buscar_coche (char*);
struct coche {
char matricula [9];
char fecha_hora [128];
};
int main()
{
int i, j, opc, plazalibre=FILAS*COLUMNAS;
char *p1,*p2, fecha_hora[128];
struct coche plaza[FILAS][COLUMNAS];
FILE *gar;


lo que me interesa saber es si usarian el struct como forma de gestionar los coches en el parking ya que este me da muchos problema por falta de experiencia con ellos.
Aqui dejo como estoy planteando el primer apartado que me da muchos problemas.


case 1:
 p1=&plaza[0][0].matricula[0];
 p2=&plaza[0][0].fecha_hora[0];
 if (plazalibre>0)
  {
    plazalibre--;
    ent_coche(p1, p2);
  }

 else
  printf("El garaje esta lleno\n");
break;



void ent_coche(char *p1, char *p2)
{
  char fecha_hora[128];
     for(int i=0; i<FILAS; i++)
      {
        for(int j=0; j<COLUMNAS; j++)
         {
           if(p1==0)
            {
              printf("Introduce la matricula del coche\n");
              scanf("%s",p1);
              captar_tiempo (fecha_hora);
              p2=fecha_hora;
             }
             p1++;
             p2++;
          }
      }
}


void captar_tiempo (char *fecha)
{
  time_t tiempo = time(0);
  struct tm *tlocal = localtime (&tiempo);
  strftime(fecha, 128, "%d/%m/%y %H:%M:%S",tlocal);
}


ahora mismo tengo tal lío que no se ni como plantearlo, la pregunta es hay otra forma de hacer esto para que puedas almacenar la información de la matricula y la fecha y hora de entrada que no sea con el el struct es que a la hora de introducir la matricula y fecha en el struct con los punteros no se como hacerlo y me invento las cosas.