Corregir este codigo
Publicado por joneDawson (3 intervenciones) el 04/12/2020 14:42:16
Alguien me puede corregir este codigo para ver si hay algo que lo he hecho mal?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
[#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 ;
}
Valora esta pregunta


0