holaa,
Me podeis corregir este codigo ,aunque compila y ejecuta bien pero no estoyy segura si la sintaxis es correcta y el programa es eficiente o no.Os dejo el enunciado del ejercicio.
Estos son los enunciados del codigo :
Introduccion del ejercicio
MOD: No hacer doble post. Para incluir información a un mensaje que nadie ha respondido, modificar el mensaje original
MOD: Los links a las imágenes del enunciado no se ven
Me podeis corregir este codigo ,aunque compila y ejecuta bien pero no estoyy segura si la sintaxis es correcta y el programa es eficiente o no.Os dejo el enunciado del ejercicio.
Estos son los enunciados del codigo :
Introduccion del ejercicio
Código (c) [Seleccionar]
#include <stdio.h>
#include <stdlib.h >
#define MAX_LONG 25 //tamaño maximo
#define MAX_DRONES 50 //tamaño maximo de drones
/* Declaramos las estructuras*/
struct tipoFecha{ //registra cuando fue la ultima inspeccion
int mes;
int year;
};
struct tipoCoordenadaGPS{
float latitud;
float longitud;
float altitud;
};
struct tipoDron {
int numSerie;
char modelo[MAX_LONG];
float precio; //Precio de coste (en euros)
float altura; //Altura a la que puede volar (en metros)
int autonomia; //Autonomía de Vuelo (en minutos)
float pesoMax; //Peso máximo que puede transportar
struct tipoFecha fechaUltimaRev; //Fecha de la ultima revisión (mes, year)
struct tipoCoordenadaGPS ptoEntrega;//Coordenadas del lugar de entrega
int enReparto; //Identifica si el dron está en reparto o no)
};
//Declaraciones de funciones
void mostrarDronesARevisar(struct tipoDron flota[MAX_DRONES], int numdrones);
void mostrarDatosDron (struct tipoDron flota[MAX_DRONES], int numdrones);
struct tipoDron leerDatosDron(void);
void mostrarFlota(struct tipoDron flota[MAX_DRONES],int numdrones);
void mostrarDronesEnReparto ( struct tipoDron flota[MAX_DRONES], int numdrones);
//funcion main
int main(int argc, char *argv[]) {
struct tipoDron dron;
struct tipoDron flota[MAX_DRONES];
int orden,numdrones=0;
int menu;
do{
printf("*****************************************\n");
printf("MENU PRINCIPAL.\n");
printf("*****************************************\n");
printf("Anadir dron (1)\n");
printf("Mostrar flota (2)\n");
printf("mostrar drones en reparto(3)\n");
printf("mostrar drones a revisar (4)\n");
printf("salir (0)\n");
scanf("%i",&orden);
//Pedimos los datos segun el numero
switch(menu){
case 1:
dron =leerDatosDron();
printf("\n");
flota[numdrones]=dron;
numdrones++;
break;
case 2:
mostrarFlota(flota, numdrones);
break;
case 3:
mostrarDronesEnReparto(flota, numdrones);
break;
case 4:
mostrarDronesARevisar(flota, numdrones);
break;
case 0:
return 0;
break;
}
}while(menu!=0)&&(numdrones<MAX_DRONES);
return 0;
}
//Funcion de tipo structura para pedir los datos del dron
struct tipoDron leerDatosDron(void){
struct tipoDron dron;
printf("Por favor introduzca el numero de serie del dron :");
scanf("%i",&dron.numSerie);
printf("Por favor introduzca el modelo del dron:");
scanf("%s",&dron.modelo);
printf("Por favor introduzca elprecio del dron:");
scanf("%f",&dron.precio);
printf("Por favor introduzca la altura del dron:");
scanf("%f",&dron.altura);
printf("Por favor introduzca la autonomia del dron:");
scanf("%i",&dron.autonomia);
printf("Por favor introduzca el peso del dron :");
scanf("%f",&dron.pesoMax);
printf("Por favor introduzca el mes de la ultima revision :");
scanf("%i",&dron.fechaUltimaRev.mes);
printf("Por favor introduzca el year de la ultima revision :");
scanf("%i",&dron.fechaUltimaRev.year);
printf("Por favor indique si el dron esta en reparto (si=1)(no=0): ");
scanf("%i",&dron.enReparto);
if(dron.enReparto==1){
printf("introduzca la altitud del dron: ");
scanf("%f",&dron.ptoEntrega.altitud);
do{
printf("introduzca la latitud del dron: ");
scanf("%f",&dron.ptoEntrega.latitud);
}while(dron.ptoEntrega.latitud<-90||dron.ptoEntrega.latitud>90);
do{
printf("introduzca la longitud del dron: ");
scanf("%f",&dron.ptoEntrega.longitud);
}while(dron.ptoEntrega.longitud<-180||dron.ptoEntrega.longitud>180);
}
return dron;
}
void mostrarDronesARevisar(struct tipoDron flota[MAX_DRONES], int numdrones){
int i, mes, year ;
printf("Por favor introduzca el mes en el que estas actualmente");
scanf("%i",&mes);
printf("Por favor introduzca el año en el que estas actualmente");
scanf("%i",&year);
for(i=0;i<numdrones;i++){
if((mes+24)-(flota[i].fechaUltimaRev.mes+12)>6|| (year-flota[i].fechaUltimaRev.year)>2){
printf("el dron con numero de serie %i y modelo %s necesita una revision \n", flota[i].numSerie,flota[i].modelo);
}
}
return ;
}
void mostrarDatosDron (struct tipoDron flota[MAX_DRONES],int numdrones){
int contador, numserie,i;
printf("Por favor introduzca el numero de serie del dron por el cual quieres ver los datos ");
scanf("%i",&numserie);
for(i=0;i<numdrones;i++){
contador++;
if (flota[i].numSerie==numserie){
i=numdrones+1;
}
}
contador=contador-1;
printf("El numero de serie del dron es : %i \n",flota[contador].numSerie);
printf("El modelo del dron es : %s \n",flota[contador].modelo);
printf("El precio del dron es :%f \n",flota[contador].precio);
printf("La altura maxima del dron es:%f \n",flota[contador].altura);
printf("La autonomia del dron es:%i \n",flota[contador].autonomia);
printf("El peso maximo que puede llevar el dron es:%f \n",flota[contador].pesoMax);
printf("La ultima revision fue el : %i/%i \n",flota [contador].fechaUltimaRev.mes,flota[contador].fechaUltimaRev.year);
if(flota[contador].enReparto==1){
printf("la latitud del dron es :%f \n",flota[contador].ptoEntrega.latitud);
printf("la altitud del dron es:%f \n",flota[contador].ptoEntrega.altitud);
printf("la longitud del dron es :%f \n",flota[contador].ptoEntrega.longitud);
}
return ;
}
void mostrarFlota(struct tipoDron flota[MAX_DRONES],int numdrones){
int i,respuesta,numserie;
for(i=0;i<numdrones;i++){
printf("El dron con numero de serie %i modelo %s\n",flota[i].numSerie,flota[i].modelo);
}
printf("Deseas saber los datos de alguno de los drones si(1) o no(otro)?");
scanf("%i",&respuesta);
if (respuesta==1){
mostrarDatosDron (flota, numdrones);
}
return ;
}
void mostrarDronesEnReparto ( struct tipoDron flota[MAX_DRONES], int numdrones) {
int i;
for(i=0;i<numdrones;i++){
if(flota[i].enReparto==1){
printf("El dron con numero de serie %i y modelo %s esta en reparto\n", flota[i].numSerie, flota[i].modelo);
}
}
return ;
}
MOD: No hacer doble post. Para incluir información a un mensaje que nadie ha respondido, modificar el mensaje original
MOD: Los links a las imágenes del enunciado no se ven