generated from aigora/starter-code
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.c
158 lines (135 loc) · 4.28 KB
/
main.c
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
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <string.h>
#include <ctype.h>
#include "menu.h"
#include "leerFichero.h"
#include "estadistica.h"
int main() {
//Declaracion de variables necesarias
int entrada;
int i, j, k, m;
int numDatos = 0, numYear = 0, num_mes_por_year[15];
char filas[23][10000], fila[10000], *cad_aux, separador1[] = ",/", titulo[50], separador2[] = {'"',','};
resultado x[15];
datos GWh[30];
FILE *archivo;
//Inicio con la pantalla de bienvenida
system("cls");
pInicio();
system("pause");
system("cls");
//Apertura de fichero
archivo = fopen("documento.txt", "r");
if (archivo == NULL) {
printf("No se ha podido abrir el archivo");
return 0;
}
//Lectura de documento.txt
for (i = 0; i < 23; i++) {
fgets(fila, 10000, archivo);
strcpy(filas[i], fila);
memset(fila, 0, 10000);
}
fclose(archivo);
//Guarda el numero de columnas en numDatos
numeroColumnas(filas[3], &numDatos);
//Compilacion fechas
compilarFechas(filas[4], GWh);
//Guarda el numero de anos en numYear
numeroYears(GWh, &numYear);
//Compilacion de datos 2.0
memset(num_mes_por_year, 0, 15);
for ( i = 0; i < numYear; i++){
for ( j = 0; j < 12; j++){
if (GWh[i].date[j].month != 0){
num_mes_por_year[i] = num_mes_por_year[i] + 1;
}
}
}
for ( i = 0; i < 18; i++){
m = i + 5;
for ( j = 0; j < numYear; j++){
memset(fila, 0, 10000);
strcpy(fila, filas[m]);
leerTitulo(fila, GWh, j, i);
}
compilarDatos(filas[m], GWh, numYear, i, num_mes_por_year);
}
//Hace copia de seguridad del archivo en caso de no querer guardar cambios en el original
hacer_copia_seguridad(filas, numYear, num_mes_por_year, GWh);
pantallaSeleccion:
pSeleccion();
entrada = getch();
switch (entrada) {
case '1':
//Caso calculos estadisticos
system("cls");
calculos(entrada, GWh, numYear);
system("cls");
system("pause");
compilar_resultados(numYear, x);
system("cls");
imprimir_resultados(numYear, x);
system("cls");
goto pantallaSeleccion;
break;
case '2':
//Caso datos actuales
system("cls");
Imprimir_tabla(GWh, numYear, num_mes_por_year);
system("cls");
goto pantallaSeleccion;
break;
case '3':
//Caso ingresar datos
system("cls");
ingresar_editar_dato(GWh, numYear, num_mes_por_year);
numeroYears(GWh, &numYear);
printf("\nDatos ingresados correctamente\n\n");
system("pause");
system("cls");
goto pantallaSeleccion;
break;
case '4':
//Caso eliminar datos
system("cls");
eliminar_dato(GWh, numYear, num_mes_por_year);
system("cls");
goto pantallaSeleccion;
break;
case '5':
//Caso salir
system("cls");
goto salir;
break;
default:
//Caso mismo menu
system("cls");
goto pantallaSeleccion;
break;
}
salir:
pConfirmarSalir();
entrada = getch();
switch (entrada) {
case '1':
//Caso cerrar programa
escoger_fichero_salida(filas, numYear, num_mes_por_year, GWh);
system("cls");
break;
case '2':
//caso volver a pantalla inicial
system("cls");
goto pantallaSeleccion;
break;
default:
//Caso mismo menu
system("cls");
goto salir;
break;
}
return 0;
}