#include #include #include #include typedef struct { float litroslluvia; int agreg; }meteo; meteo mlluvia[12][31]; char resp; int pedirFich(); int comprfech(int dia,int mes); void introlluvia(); void conslluvia(); void modiflluvia(); void borrarlluvia(); void miMenu(); void guardar(); char pedir[39]; void main() { system("cls"); char opc; if(pedirFich()==0) { do { miMenu(); opc=getch(); if(opc=='1') { introlluvia(); guardar(); getch(); } if(opc=='2') { conslluvia(); getch(); } if(opc=='3') { modiflluvia(); guardar(); getch(); } if(opc=='4') { borrarlluvia(); guardar(); getch(); } }while(opc!='5'); if(opc=='5') { system("cls"); printf("Pulse una tecla para finalizar"); } } } int pedirFich() { FILE* fichBuscar; int x,i; system("cls"); fichBuscar=fopen("lluvias.dat","rt"); if (fichBuscar==NULL) { printf("El archivo no existe"); getch(); x=0; } else { for (i=0;i<12;i++) { fread(mlluvia[i],sizeof(meteo),31,fichBuscar); } x=1; } fclose(fichBuscar); getch(); return x; } void miMenu() { system("cls"); printf(" ------ Meteorologia Raul Jimenez ------ "); printf("\n\n1.-Introducir lluvia "); printf("\n2.-Consultar lluvia "); printf("\n3.-Modificar lluvia "); printf("\n4.-Borrar lluvia "); printf("\n5.-Salir"); } void introlluvia() { int dia,mes,var; system("cls"); printf("Introduzca dia: "); fflush(stdin); scanf("%d",&dia); printf("\n Introduzca mes: "); fflush(stdin); scanf("%d",&mes); var=comprfech(mes,dia); if(var==0) { printf("\n Fecha incorrecta, por favor introduce una fecha correcta"); } if(var==1) { if(mlluvia[mes][dia].agreg==1) { printf("\nDatos introducidos"); getch(); } else { printf("\n\nIntroduzca litros: "); fflush(stdin); scanf("%f",mlluvia[mes][dia].litroslluvia); mlluvia [mes][dia].agreg=1; } } } void conslluvia() { do { int dia,mes,var; system("cls"); printf("Introduzca dia: "); fflush(stdin); scanf("%d",&dia); printf("\n Introduzca mes: "); fflush(stdin); scanf("%d",&mes); var=comprfech(mes,dia); if(var==0) { printf("\n Fecha incorrecta, por favor introduce una fecha correcta"); } if(var==1) { if(mlluvia[mes][dia].agreg==0) { printf("\n\tDatos no introducidos"); } else { printf("\nLa cantidad de litros para este dia es de: %.2f",mlluvia[mes][dia].litroslluvia); } } do { printf("\n\nDesea consultar mas dias(S/N)? "); resp = getch(); }while(resp != 'S'&& resp != 's'&& resp != 'N'&& resp != 'n'); }while(resp == 'S' || resp == 's'); } void modiflluvia() { int dia,mes,var; system("cls"); printf("Introduzca dia: "); fflush(stdin); scanf("%d",&dia); printf("\n Introduzca mes: "); fflush(stdin); scanf("%d",&mes); var=comprfech(mes,dia); if(var==0) { printf("\n Fecha incorrecta, por favor introduce una fecha correcta"); } if(var==1) { if(mlluvia[mes][dia].agreg==0) { printf("Datos no introducidos"); } else { printf("La cantidad anterior es %.2f",mlluvia[mes][dia].litroslluvia); printf("\nIntroduzca nueva cantidad: "); scanf("%f",mlluvia[mes][dia].litroslluvia); } } } void borrarlluvia() { int dia,mes,var; char op; system("cls"); printf("Introduzca dia: "); fflush(stdin); scanf("%d",&dia); printf("\n Introduzca mes: "); fflush(stdin); scanf("%d",&mes); var=comprfech(mes,dia); if(var==0) { printf("\n Fecha incorrecta, por favor introduce una fecha correcta"); } if(var==1) { if(mlluvia[mes][dia].agreg==0) { printf("Datos no introducidos"); } else { printf("La cantidad anterior es %.2f",mlluvia[mes][dia].litroslluvia); do { printf("\nDesea eliminar la cantidad anterior (S/N)"); op=getch(); }while(op!='s'&&op!='S'&&op!='n'&&op!='N'); if(op=='s'||op=='S') { mlluvia[mes][dia].litroslluvia=0; mlluvia[mes][dia].agreg=0; printf("\nDatos eliminados"); } else { printf("\nNo han sido eliminados los datos"); } } } } int comprfech(int dia,int mes) { int var1=0; if(mes==1||mes==3||mes==5||mes==7||mes==8||mes==10||mes==12) { if(dia>31||dia<1) { var1=0; } else { var1=1; } } if(mes==4||mes==6||mes==9||mes==11) { if(dia>30||dia<1) { var1=0; } else { var1=1; } } if (mes==2) { if(dia>28 || dia<1) { var1=0; } else { var1=1; } } return var1; } void guardar() { FILE* guar; int i; for (i=0;i<12;i++) { fwrite(mlluvia[i],sizeof(meteo),31,guar); } fclose(guar); }