Accedi

Sviluppo di un applicativo, software

PROBLEMA

Sviluppare un applicativo, che gestisce la rendicontazione dei consumi di energia elettrica relativa ad un anno solare. L’applicazione dovra’ acquisire da input le letture in kwh nei vari periodi dell’anno e restituire in output:

  1. la lettura in kwh inserita;
  2. il consumo in kwh effettuato, relativo ad un determinato periodo;
  3. la media del consumo annuo (calcolata sui periodi);
  4. lo scostamento di ciascun consumo con la media;
  5. la stampa in ordine crescente dei consumi;
  6. l’importo in euro di ciascuna bolletta comprensiva di tutti gli oneri accessori;
  7. la somma, in euro, inerente il consumo annuo;
  8. la media giornaliera, in euro, di consumo;
  9. la stampa in ordine decrescente degli importi riferita ai vari periodi;
  10. la stampa dell’importo maggiore ed il relativo periodo;
  11. la stampa dell’importo minore ed il relativo periodo.

RAPPRESENTAZIONE TECNICO-ILLUSTRTIVA

Clicca qui per visualizzare la Rappresentazione tecnica-illustrativa.


RELAZIONE LOGICA

Clicca qui per visualizzare la Relazione logica.


PSEUDOCODIFICA

Clicca qui per visualizzare la Pseudocodifica.


DIAGRAMMA A BLOCCHI

Clicca qui per visualizzare il Diagramma a blocchi.


MANUALE UTENTE

Clicca qui per visualizzare il Manuale d'uso.


CODICE SORGENTE

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <windows.h>
#include <dos.h>
#include <math.h>
#include <conio.h>
#include <unistd.h>
#define MAX_CARATTERI 1024

#define PREZZO_1 0.092000
#define PREZZO_2 5.430000
#define PREZZO_3 -1.165250*2
#define PREZZO_4 0.015730
#define PREZZO_5 0.000400
#define PREZZO_6 1.700000*2
#define PREZZO_7 1.740000
#define PREZZO_8 0.007610
#define PREZZO_9 0.000720
#define PREZZO_10 0.032650
#define PREZZO_11 0.009167
#define PREZZO_12 0.022700
#define PERCENTUALE_IVA 10
#define CANONE_RAI 18.00

char* input_id_cliente();
char* input_fornitore_energia_elettrica();
int input_modalita_di_pagamento();
int input_bolletta_web();
int input_anno_letture();
void input_letture_contatore();
void conferma_input_letture_contatore();
int verifica_letture_contatore();

void calcolo_consumo_kwh_per_bimestre();
void calcolo_prezzo_della_boletta();
void calcolo_totale_da_pagare();
void calcolo_media_consumo_kwh();
void calcolo_media_consumo_euro();
void calcolo_scostamento_kwh();
void calcolo_scostamento_euro();

void banner_input_id_cliente();
void banner_input_fornitore_energia_elettrica();
void banner_input_modalita_di_pagamento();
void banner_input_bolletta_web();
void banner_conferma_dati_inseriti();
void banner_anno_letture();
void banner_conferma_anno_letture();
void banner_conferma_input_letture_contatore();

void banner_interfaccia_utente();
void banner_visualizza_consumo_prezzo_bimestre();
void view_visualizza_consumo_prezzo_bimestre();
void ordinamento_per_periodo_visualizza_consumo_prezzo_bimestre();
void ordinamento_per_prezzo_crescente_visualizza_consumo_prezzo_bimestre();
void ordinamento_per_prezzo_decrescente_visualizza_consumo_prezzo_bimestre();
void ordinamento_per_consumo_crescente_visualizza_consumo_prezzo_bimestre();
void ordinamento_per_consumo_decrescente_visualizza_consumo_prezzo_bimestre();
void banner_periodo_view_visualizza_consumo_prezzo_bimestre ();
void banner_bollette_nel_dettaglio();
void banner_view_bollette_nel_dettaglio();
void banner_singola_bolletta_nel_dettaglio();
void banner_media_consumi_valori();
void banner_scostamento_con_la_media();
void banner_header();
int chiusura_programma();
void banner_fornitori();
void lol();

void setcolor(unsigned short color){
 HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);
 SetConsoleTextAttribute(hCon,color);
}

void loadingBar(){
 int i;
    char a = 177, b = 219;
    printf("\n\n\n\n\n\n\n\n\t\t\t\t\tBenventuto\n\t\t\t\t\tLoading... \n\n\t\t\t\t\t");
    for (i = 0; i < 26; i++)
        printf("%c", a);
    printf("\r\t\t\t\t\t");
    for (i = 0; i < 26; i++) {
        printf("%c", b);
     Sleep(100);
    }
}

int main(int argc, char *argv[]){
 char id_cliente[MAX_CARATTERI]={};
 char fornitore_energia_elettrica[MAX_CARATTERI]={""};
 int pagamento=0;
 int fattura=0;
 int menu=0;
 int i=0;
 int anno_letture=0;
 int letture_contatore_energia_elettrica[7]={0};
 int temp0=0;
 int kwh_periodo[6]={0};
 float scostamento_euro[6]={0};
 float scostamento_kwh[6]={0};
 float euro_periodo[6]={0};
 float spesa_per_l_energia[6][17]={0};
 float medie_kwh_anno_periodo_mese_settimana_giorno[6]={0};
 float medie_euro_anno_periodo_mese_settimana_giorno[6]={0};
 loadingBar();
 system("cls");
 strcpy(id_cliente, input_id_cliente());
 strcpy(fornitore_energia_elettrica, input_fornitore_energia_elettrica());
 pagamento=input_modalita_di_pagamento();
 fattura=input_bolletta_web();
 do{
  banner_conferma_dati_inseriti(id_cliente, fornitore_energia_elettrica, pagamento, fattura);
  menu=getch();
  switch(menu){
   case '1':
    strcpy(id_cliente, input_id_cliente());
    menu='0';
    break;
   case '2':
    strcpy(fornitore_energia_elettrica, input_fornitore_energia_elettrica());
    menu='0';
    break;
   case '3':
    pagamento=input_modalita_di_pagamento();
    menu='0';
    break;
   case '4':
    fattura=input_bolletta_web();
    menu='0';
    break;
   case '5':
    break;
   default:
    for(i=3;i>0;i--){
     system("cls");
     printf("[!] Scelta non presente all'interno del menu attendere %i secondi.", i);
     sleep(1);
     system("cls");
    }
    menu='0';
    break;
  }
 }while(menu=='0');
 anno_letture=input_anno_letture(id_cliente, fornitore_energia_elettrica);
 do{
  banner_conferma_anno_letture(anno_letture);
  menu=getch();
  switch(menu){
   case '1':
    break;
   case '2':
    anno_letture=input_anno_letture(id_cliente, fornitore_energia_elettrica);
    menu='0';
    break;
   default:
    for(i=3;i>0;i--){
     system("cls");
     printf("[!] Scelta non presente all'interno del menu attendere %i secondi.", i);
     sleep(1);
     system("cls");
    }
    menu='0';
    break;
  }
 }while(menu=='0');
 input_letture_contatore(letture_contatore_energia_elettrica, anno_letture, id_cliente, fornitore_energia_elettrica);
 do{
  banner_conferma_input_letture_contatore(letture_contatore_energia_elettrica, anno_letture, id_cliente, fornitore_energia_elettrica);
  menu=getch();
  switch(menu){
   case '1':
    conferma_input_letture_contatore(letture_contatore_energia_elettrica, anno_letture, menu, id_cliente, fornitore_energia_elettrica);
    menu='0';
    break;
   case '2':
    conferma_input_letture_contatore(letture_contatore_energia_elettrica, anno_letture, menu, id_cliente, fornitore_energia_elettrica);
    menu='0';
    break;
   case '3':
    conferma_input_letture_contatore(letture_contatore_energia_elettrica, anno_letture, menu, id_cliente, fornitore_energia_elettrica);
    menu='0';
    break;
   case '4':
    conferma_input_letture_contatore(letture_contatore_energia_elettrica, anno_letture, menu, id_cliente, fornitore_energia_elettrica);
    menu='0';
    break;
   case '5':
    conferma_input_letture_contatore(letture_contatore_energia_elettrica, anno_letture, menu, id_cliente, fornitore_energia_elettrica);
    menu='0';
    break;
   case '6':
    conferma_input_letture_contatore(letture_contatore_energia_elettrica, anno_letture, menu, id_cliente, fornitore_energia_elettrica);
    menu='0';
    break;
   case '7':
    conferma_input_letture_contatore(letture_contatore_energia_elettrica, anno_letture, menu, id_cliente, fornitore_energia_elettrica);
    menu='0';
    break;
   case '8':
    temp0=verifica_letture_contatore(letture_contatore_energia_elettrica);
    if(temp0!=1){
     for(i=3;i>0;i--){
      system("cls");
      printf("[!] Valori non validi attendere %i secondi.", i);
      sleep(1);
      system("cls");
     }
     menu='0';
    }
    break;
   default:
    for(i=3;i>0;i--){
      system("cls");
      printf("[!] Valori non validi attendere %i secondi.", i);
      sleep(1);
      system("cls");
     }
    menu='0';
    break;
  }
 }while(menu=='0');
 calcolo_consumo_kwh_per_bimestre(letture_contatore_energia_elettrica, kwh_periodo);
 calcolo_prezzo_della_boletta(spesa_per_l_energia, kwh_periodo, fattura, pagamento);
 calcolo_totale_da_pagare(spesa_per_l_energia, euro_periodo);
 calcolo_media_consumo_kwh(medie_kwh_anno_periodo_mese_settimana_giorno, kwh_periodo);
 calcolo_media_consumo_euro(medie_euro_anno_periodo_mese_settimana_giorno, euro_periodo);
 calcolo_scostamento_kwh(medie_kwh_anno_periodo_mese_settimana_giorno, kwh_periodo, scostamento_kwh);
 calcolo_scostamento_euro(medie_euro_anno_periodo_mese_settimana_giorno, euro_periodo, scostamento_euro);
 do{
  banner_interfaccia_utente(id_cliente, fornitore_energia_elettrica);
  menu=getch();
  switch(menu){
   case '1':
    banner_visualizza_consumo_prezzo_bimestre(anno_letture, kwh_periodo, euro_periodo, id_cliente, fornitore_energia_elettrica);
    menu='0';
    break;
   case '2':
    banner_bollette_nel_dettaglio(anno_letture, spesa_per_l_energia, pagamento, fattura, kwh_periodo, euro_periodo, id_cliente, fornitore_energia_elettrica);
    menu='0';
    break;
   case '3':
    banner_media_consumi_valori(anno_letture, medie_kwh_anno_periodo_mese_settimana_giorno, medie_euro_anno_periodo_mese_settimana_giorno, id_cliente, fornitore_energia_elettrica);
    menu='0';
    break;
   case '4':
    banner_scostamento_con_la_media(scostamento_euro, scostamento_kwh, medie_kwh_anno_periodo_mese_settimana_giorno, medie_euro_anno_periodo_mese_settimana_giorno, anno_letture, id_cliente, fornitore_energia_elettrica);
    menu='0';
    break;
   case '5':
    menu=chiusura_programma();
    break;
   default:
    for(i=3;i>0;i--){
     system("cls");
     printf("[!] Valori non validi attendere %i secondi.", i);
     sleep(1);
     system("cls");
    }
    menu='0';
    break;
  }
 }while(menu=='0');
 return 0;
}

char* input_id_cliente(){
 int i, j;
 char id_cliente[MAX_CARATTERI];
 do{
  banner_input_id_cliente();
  gets(id_cliente);
  if(strlen(id_cliente)>=256){
   for(i=3;i>0;i--){
   system("cls");
   printf("[!] ID Cliente troppo lungo attendere %i secondi.", i);
   sleep(1);
   system("cls");
   }
  }
 }while(strlen(id_cliente)>=256);
 if(strlen(id_cliente)==0){
  for(i=3;i>0;i--){
   system("cls");
   printf("[!] Non risulta inserito nessun nome verra sostituito con \"NON presente\" attendere %i secondi.", i);
   sleep(1);
   system("cls");
  }
  strcpy(id_cliente, "NON Presente");
 }
 return (id_cliente);
}

void banner_input_id_cliente(){
 system("cls");
 printf("Numero Cliente o Username\n");
 printf("[!] Se non presente lasciare vuota la zona di inserimento\n");
 printf(">");
}

char* input_fornitore_energia_elettrica(){
 char nomi[40][256]={{"Enel Energia"},{"Servizio Elettrico Nazionale"},{"Eni Gas e Luce"},{"Acea Energia"},{"a2a"},{"Edison"},{"Hera Comm"},{"Iren Luce Gas e Servizi"},{"Agsm Energia"},{"E.on"},{"Illumia"},{"Green Network"},{"Engie"},{"Gas Natural"},{"GALA"},{"Onda Energia"},{"Axopower"},{"Omnia Energia"},{"Made in Energy"},{"Salerno Energia"},{"Servizio Elettrico Roma"},{"Sorgenia"},{"Wekiwi"},{"Estra Energie"},{"Unogas"},{"Optima"},{"Axpo"},{"Dolomiti Energia"},{"Iberdrola"},{"Trenta"},{"Eviva"},{"Ascotrade"},{"Autogas Nord"},{"Vivigas"},{"Accendi Luce e Gas Coop"},{"Duferco Energia"},{"AEVV Energie"},{"Piemonte Energy"},{"Audax Energia"},{"Domoenergia"}};
 char fornitore_energia_elettrica[256];
 char temp[256], temp2[256];
 int posizione_fornitore=99;
 int presenza_fornitore_energia_elettrica;
 int i;
 banner_input_fornitore_energia_elettrica();
 gets(fornitore_energia_elettrica);
 for(i=0;i<40;i++){
  strcpy(temp, fornitore_energia_elettrica);
  strcpy(temp2, nomi[i]);
  presenza_fornitore_energia_elettrica=1;
  presenza_fornitore_energia_elettrica=strcmp(strlwr(temp), strlwr(temp2));
  if(presenza_fornitore_energia_elettrica==0){
   posizione_fornitore=i;
  }
 }
 if(posizione_fornitore==99){
  for(i=3;i>0;i--){
   system("cls");
   printf("[!] Il nome inserito non risulta un fornitore di energia elettrica presente nel Database\nverr\x85 sostituito con -NON presente- attendere %i secondi.", i);
   sleep(1);
   system("cls");
  }
  strcpy(fornitore_energia_elettrica, "NON Presente");
 }
 else{
  strcpy(fornitore_energia_elettrica, nomi[posizione_fornitore]);
 }
 return (fornitore_energia_elettrica);
}

void banner_input_fornitore_energia_elettrica(){
 system("cls");
 banner_fornitori();
 printf("Nome del fornitore di energia elettrica\n");
 printf("[!] Se non presente lasciare vuota la zona di inserimento\n");
 printf(">");
}

int input_modalita_di_pagamento(){
 int menu;
 int pagamento;
 int i;
 do{
  fflush(stdin);
  banner_input_modalita_di_pagamento();
  menu=getch();
  switch(menu){
   case '1':
    pagamento=1;
    break;
   case '2':
    pagamento=0;
    break;
   default:
    for(i=3;i>0;i--){
     system("cls");
     printf("[!] Scelta non presente all'interno del menu attendere %i secondi.", i);
     sleep(1);
     system("cls");
    }
    menu='0';
    break;
  }
 }while(menu=='0');
 return(pagamento);
}

void banner_input_modalita_di_pagamento(){
 system("cls");
 printf("La bolletta viene recapitata anche in maniera cartacea?\n");
 printf("1. Si\n");
 printf("2. No\n");
 printf("Cliccare il tasto della scelta desiderata");
}

int input_bolletta_web(){
 int menu;
 int fattura;
 int i;
 do{
  banner_input_bolletta_web();
  fflush(stdin);
  menu=getch();
  switch(menu){
   case '1':
    fattura=0;
    break;
   case '2':
    fattura=1;
    break;
   default:
    for(i=3;i>0;i--){
     system("cls");
     printf("[!] Scelta non presente all'interno del menu attendere %i secondi.", i);
     sleep(1);
     system("cls");
    }
    menu='0';
    break;
  }
 }while(menu=='0');
 return (fattura);
}

void banner_input_bolletta_web(){
 system("cls");
 printf("Il metodo di pagamento \x8a in modalit\x85 accredito su conto bancario?\n");
 printf("1. Si\n");
 printf("2. No\n");
 printf("Cliccare il tasto della scelta desiderata");
}

void banner_conferma_dati_inseriti(char id_cliente[], char fornitore_energia_elettrica[], int pagamento, int fattura){
 system("cls");
 printf("Modifica scheda dati\n");
 printf("1. ID cliente:\t\t\t\t\""); fputs(id_cliente, stdout); printf("\"\n");
 printf("2. Fornitore corrente elettrica:\t\""); fputs(fornitore_energia_elettrica, stdout); printf("\"\n");
 printf("3. Bolletta Web:\t\t\t\""); if (pagamento==1) fputs("Si", stdout); else fputs("No", stdout); printf("\"\n");
 printf("4. Modalit\x85 di pagamento:\t\t\""); if (fattura==1) fputs("Contanti", stdout); else fputs("Addebito", stdout); printf("\"\n");
 printf("5. Conferma\n");
 printf("Cliccare il tasto della scelta desiderata");
}

int input_anno_letture(char id_cliente[], char fornitore_energia_elettrica[]){
 char controllo[]={"1234567890"};
 int errore, i=0, j=0, y=0;
 int presenza;
 char anno_temp[MAX_CARATTERI];
 int menu;
 int temp;
  do{
   banner_anno_letture(id_cliente, fornitore_energia_elettrica);
   fflush(stdin);
   gets(anno_temp);
   i=0;
   do{
    errore=1;
    presenza=0;
    for(j=0;j<strlen(controllo);j++){
     if(anno_temp[i]==controllo[j]){
      presenza=1;
     }
    }
    if(presenza==1){
     errore=0;
    }
    i++;
   }while((errore==0) && (i<strlen(anno_temp)));
   if(errore==1){
    for(i=3;i>0;i--){
     system("cls");
     printf("[!] L'anno inserito non \x8a valido attendere %i secondi.", i);
     sleep(1);
     system("cls");
    }
   }
   temp=atoi(anno_temp);
   if(temp<=1870 && errore==0){
    errore=1;
    system("cls");
    printf("E' nel 1870 che l'accoppiamento della dinamo alla turbina\n");
    printf("idraulica diede avvio alla produzione commerciale di\n");
    printf("energia elettrica. La prima centrale termoelettrica venne\n");
    printf("invece impiantata in Pearl street a New York nel 1882 per\n");
    printf("rifornire la prima rete di illuminazione pubblica.\n");
    printf("Premere un tasto per continuare");
    getch();
   }
  }while(errore==1);
 return (temp);
}

void banner_anno_letture(char id_cliente[], char fornitore_energia_elettrica[]){
 system("cls");
 banner_header(id_cliente, fornitore_energia_elettrica);
 printf("Inserire l'anno delle letture\n");
 printf(">");
}

void banner_conferma_anno_letture(int anno_letture){
 system("cls");
 printf("Confermare la data \"%i\"\n", anno_letture);
 printf("1. Si\n");
 printf("2. No\n");
 printf("Cliccare il tasto della scelta desiderata");
}

void input_letture_contatore(int letture_contatore_energia_elettrica[], int anno_letture, char id_cliente[], char fornitore_energia_elettrica[]){
 char temp0[7][256];
 char controllo[]={"1234567890"};
 int errore=0, i=0, j=0, y=0, z=0;
 int presenza;
 char periodo[12][256]={{"GEN."},{"FEB."},{"MAR."},{"APR."},{"MAG."},{"GIU."},{"LUG."},{"AGO."},{"SET."},{"OTT."},{"NOV."},{"DIC."}};
 int temp1, temp2;
 z=0;
 for (y=0;y<7;y++){
  do{
   system("cls");
   banner_header(id_cliente, fornitore_energia_elettrica);
   if(y==0){
    printf("Inserire lettura ");
    fputs(periodo[10], stdout);
    printf(" %i", anno_letture-1);
    printf(" - ");
    fputs(periodo[11], stdout);
    printf(" %i\n", anno_letture-1);
    printf(">");
   }
   else{
    printf("Inserire lettura ");
    fputs(periodo[z], stdout);
    printf(" %i", anno_letture);
    printf(" - ");
    fputs(periodo[z+1], stdout);
    printf(" %i\n", anno_letture);
    printf(">");
    z=z+2;
   }
   fflush(stdin);
   gets(temp0[y]);
   i=0;
   do{
    errore=1;
    presenza=0;
    for(j=0;j<strlen(controllo);j++){
     if(temp0[y][i]==controllo[j]){
      presenza=1;
     }
    }
     if(presenza==1){
      errore=0;
     }
     i++;
   }while((errore==0) && (i<strlen(temp0[y])));
   if(errore==1){
    z=z-2;
    for(i=3;i>0;i--){
     system("cls");
     printf("[!] La lettura inserita non \x8a valida attendere %i secondi.", i);
     sleep(1);
     system("cls");
    }
   }
   if(y>0){
    temp1=atoi(temp0[y]);
    temp2=atoi(temp0[y-1]);
    if(temp1<temp2){
     errore=1;
     z=z-2;
     for(i=3;i>0;i--){
      system("cls");
      printf("[!] La lettura inserita non \x8a valida attendere %i secondi.", i);
      sleep(1);
      system("cls");
     }
    }
    else if((temp1-temp2)>999999){
     errore=1;
     z=z-2;
     for(i=3;i>0;i--){
      system("cls");
      printf("[!] La lettura inserita non \x8a valida attendere %i secondi.", i);
      sleep(1);
      system("cls");
     }
    }
   }
  }while(errore==1);
  letture_contatore_energia_elettrica[y]=atoi(temp0[y]);
 }
}

void conferma_input_letture_contatore(int letture_contatore_energia_elettrica[], int anno_letture, int menu, char id_cliente[], char fornitore_energia_elettrica[]){
 char temp0[7][256];
 char controllo[]={"1234567890"};
 int errore=0, i=0, j=0, y=0, z=0;
 int presenza;
 char periodo[12][256]={{"GEN."},{"FEB."},{"MAR."},{"APR."},{"MAG."},{"GIU."},{"LUG."},{"AGO."},{"SET."},{"OTT."},{"NOV."},{"DIC."}};
 int temp1, temp2;
 y=menu - '0' -1;
  do{
   system("cls");
   banner_header(id_cliente, fornitore_energia_elettrica);
   if(y==0){
    printf("Inserire lettura ");
    fputs(periodo[10], stdout);
    printf(" %i", anno_letture-1);
    printf(" - ");
    fputs(periodo[11], stdout);
    printf(" %i\n", anno_letture-1);
    printf(">");
   }
   else{
    printf("Inserire lettura ");
    fputs(periodo[(y+y)-2], stdout);
    printf(" %i", anno_letture);
    printf(" - ");
    fputs(periodo[(y+y)-1], stdout);
    printf(" %i\n", anno_letture);
    printf(">");
   }
   fflush(stdin);
   gets(temp0[y]);
   i=0;
   do{
    errore=1;
    presenza=0;
    for(j=0;j<strlen(controllo);j++){
     if(temp0[y][i]==controllo[j]){
      presenza=1;
      }
     }
     if(presenza==1){
      errore=0;
     }
     i++;
   }while((errore==0) && (i<strlen(temp0[y])));
   if(errore==1){
    for(i=3;i>0;i--){
     system("cls");
     printf("[!] La lettura inserita non \x8a valida attendere %i secondi.", i);
     sleep(1);
     system("cls");
    }
   }
  }while(errore==1);
  letture_contatore_energia_elettrica[y]=atoi(temp0[y]);
}

void banner_conferma_input_letture_contatore(int letture_contatore_energia_elettrica[], int anno_letture, char id_cliente[], char fornitore_energia_elettrica[]){
 char periodo[12][256]={{"GEN."},{"FEB."},{"MAR."},{"APR."},{"MAG."},{"GIU."},{"LUG."},{"AGO."},{"SET."},{"OTT."},{"NOV."},{"DIC."}};
 system("cls");
 banner_header(id_cliente, fornitore_energia_elettrica);
 printf("Modifica o conferma letture\n");
 printf("1. %s %i - %s %i\t\t\"%i\"\n", periodo[10], anno_letture-1, periodo[11], anno_letture-1, letture_contatore_energia_elettrica[0]);
 printf("2. %s %i - %s %i\t\t\"%i\"\n", periodo[0], anno_letture, periodo[1], anno_letture, letture_contatore_energia_elettrica[1]);
 printf("3. %s %i - %s %i\t\t\"%i\"\n", periodo[2], anno_letture, periodo[3], anno_letture, letture_contatore_energia_elettrica[2]);
 printf("4. %s %i - %s %i\t\t\"%i\"\n", periodo[4], anno_letture, periodo[5], anno_letture, letture_contatore_energia_elettrica[3]);
 printf("5. %s %i - %s %i\t\t\"%i\"\n", periodo[6], anno_letture, periodo[7], anno_letture, letture_contatore_energia_elettrica[4]);
 printf("6. %s %i - %s %i\t\t\"%i\"\n", periodo[8], anno_letture, periodo[9], anno_letture, letture_contatore_energia_elettrica[5]);
 printf("7. %s %i - %s %i\t\t\"%i\"\n", periodo[10], anno_letture, periodo[11], anno_letture, letture_contatore_energia_elettrica[6]);
 printf("8. Conferma\n");
 printf("Cliccare il tasto della scelta desiderata");
}

int verifica_letture_contatore(int letture_contatore_energia_elettrica[]){
 int risultato=1;
 int i=0;
 int temp0;
 while(i<7){
  int j=i+1;
   while(j<7){
    if(letture_contatore_energia_elettrica[i]>letture_contatore_energia_elettrica[j]){
     risultato=0;
    }
    j=j+1;
   }
  i=i+1;
 }
 for(i=1;i<7;i++){
  temp0=letture_contatore_energia_elettrica[i]-letture_contatore_energia_elettrica[i-1];
  if(temp0>999999){
   risultato=0;
  }
 }
 return risultato;
}

void calcolo_consumo_kwh_per_bimestre(int letture_contatore_energia_elettrica[], int kwh_periodo[]){
 int i;
 for (i=1;i<7;i++){
  kwh_periodo[i-1]=letture_contatore_energia_elettrica[i]-letture_contatore_energia_elettrica[i-1];
 }
}

void calcolo_prezzo_della_boletta(float spesa_per_l_energia[][17], int kwh_periodo[], int fattura, int pagamento){
 int i;
 int j;
 int y;
 for(i=0;i<6;i++){
   j=0;
   spesa_per_l_energia[i][j]=PREZZO_1*kwh_periodo[i];
   j++;
   spesa_per_l_energia[i][j]=PREZZO_2+PREZZO_2;
   j++;
   spesa_per_l_energia[i][j]=PREZZO_3;
   j++;
   spesa_per_l_energia[i][j]=PREZZO_4*kwh_periodo[i];
   j++;
   spesa_per_l_energia[i][j]=PREZZO_5*kwh_periodo[i];
   j++;
   spesa_per_l_energia[i][j]=PREZZO_6;
   j++;
   spesa_per_l_energia[i][j]=(PREZZO_7*3)*2;
   j++;
   spesa_per_l_energia[i][j]=PREZZO_8*kwh_periodo[i];
   j++;
   spesa_per_l_energia[i][j]=PREZZO_9*kwh_periodo[i];
   j++;
   spesa_per_l_energia[i][j]=PREZZO_10*kwh_periodo[i];
   j++;
   spesa_per_l_energia[i][j]=PREZZO_11*kwh_periodo[i];
   j++;
   if(fattura==1){
    spesa_per_l_energia[i][j]=-5;
   }
   else{
    spesa_per_l_energia[i][j]=0;
   }
   j++;
   if(pagamento==1){
    spesa_per_l_energia[i][j]=-5;
   }
   else{
    spesa_per_l_energia[i][j]=0;
   }
   j++;
   spesa_per_l_energia[i][j]=PREZZO_12*kwh_periodo[i];
   j++;
   for(y=0;y<12;y++){
    if(y!=12 && y!=13)
     spesa_per_l_energia[i][j]=spesa_per_l_energia[i][j]+spesa_per_l_energia[i][y];
   }
   j++;
   spesa_per_l_energia[i][j]=(spesa_per_l_energia[i][j-1]*PERCENTUALE_IVA)/100;
   j++;
   spesa_per_l_energia[i][j]=spesa_per_l_energia[i][j]+spesa_per_l_energia[i][14]+spesa_per_l_energia[i][11]+spesa_per_l_energia[i][13]+spesa_per_l_energia[i][12]+spesa_per_l_energia[i][15];
 }
}

void calcolo_totale_da_pagare(float spesa_per_l_energia[][17], float euro_periodo[]){
 int i;
 int j;
 for(i=0;i<6;i++){
  if(i<5){
   euro_periodo[i]=spesa_per_l_energia[i][16]+CANONE_RAI;
  }
  else{
   euro_periodo[i]=spesa_per_l_energia[i][16];
  }
 }
}

void calcolo_media_consumo_kwh(float medie_kwh_anno_periodo_mese_settimana_giorno[], int kwh_periodo[]){
 int i;
 int valori_per_medie[5]={1,6,12,48,360};
 float temp0=0;
 for(i=0;i<6;i++){
  temp0=temp0+kwh_periodo[i];
 }
 for(i=0;i<5;i++){
  medie_kwh_anno_periodo_mese_settimana_giorno[i]=temp0/valori_per_medie[i];
 }
}

void calcolo_media_consumo_euro(float medie_euro_anno_periodo_mese_settimana_giorno[], float euro_periodo[]){
 int i;
 int valori_per_medie[5]={1,6,12,48,360};
 float temp0=0;
 for(i=0;i<6;i++){
  temp0=temp0+euro_periodo[i];
 }
 for(i=0;i<5;i++){
  medie_euro_anno_periodo_mese_settimana_giorno[i]=temp0/valori_per_medie[i];
 }
}

void calcolo_scostamento_kwh(float medie_kwh_anno_periodo_mese_settimana_giorno[], int kwh_periodo[], float scostamento_kwh[]){
 int i;
 for(i=0;i<6;i++){
  scostamento_kwh[i]=kwh_periodo[i]-medie_kwh_anno_periodo_mese_settimana_giorno[1];
 }
}

void calcolo_scostamento_euro(float medie_euro_anno_periodo_mese_settimana_giorno[], float euro_periodo[], float scostamento_euro[]){
 int i;
 for(i=0;i<6;i++){
  scostamento_euro[i]=euro_periodo[i]-medie_euro_anno_periodo_mese_settimana_giorno[1];
 }
}

void banner_interfaccia_utente(char id_cliente[], char fornitore_energia_elettrica[]){
 system("cls");
 banner_header(id_cliente, fornitore_energia_elettrica);
 printf("1. Visualizzare consumo e prezzo totale dei vari periodi\n");
 printf("2. Bollette nel dettaglio\n");
 printf("3. Media dei consumi/prezzo nel tempo\n");
 printf("4. Scostamento con la media kwh ed euro per bimestre\n");
 printf("5. Esci\n");
 printf("Cliccare il tasto della scelta desiderata\n");
}

void banner_visualizza_consumo_prezzo_bimestre(int anno_letture, int kwh_periodo[], float euro_periodo[], char id_cliente[], char fornitore_energia_elettrica[]){
 int temp0_kwh_periodo[6];
 int i;
 float temp1_euro_periodo[6];
 int stampa[6]={0,1,2,3,4,5};
 for(i=0;i<6;i++){
  temp0_kwh_periodo[i]=kwh_periodo[i];
  temp1_euro_periodo[i]=euro_periodo[i];
 }
 int menu;
 do{
  view_visualizza_consumo_prezzo_bimestre(anno_letture, kwh_periodo, euro_periodo, stampa, id_cliente, fornitore_energia_elettrica);
  menu=getch();
  switch(menu){
   case '1':
    ordinamento_per_periodo_visualizza_consumo_prezzo_bimestre(temp0_kwh_periodo, temp1_euro_periodo, stampa, kwh_periodo, euro_periodo);
    menu='0';
    break;
   case '2':
    ordinamento_per_prezzo_crescente_visualizza_consumo_prezzo_bimestre(temp0_kwh_periodo, temp1_euro_periodo, stampa, kwh_periodo, euro_periodo);
    menu='0';
    break;
   case '3':
    ordinamento_per_prezzo_decrescente_visualizza_consumo_prezzo_bimestre(temp0_kwh_periodo, temp1_euro_periodo, stampa, kwh_periodo, euro_periodo);
    menu='0';
    break;
   case '4':
    ordinamento_per_consumo_crescente_visualizza_consumo_prezzo_bimestre(temp0_kwh_periodo, temp1_euro_periodo, stampa, kwh_periodo, euro_periodo);
    menu='0';
    break;
   case '5':
    ordinamento_per_consumo_decrescente_visualizza_consumo_prezzo_bimestre(temp0_kwh_periodo, temp1_euro_periodo, stampa, kwh_periodo, euro_periodo);
    menu='0';
    break;
   case '6':
    break;
   default:
    for(i=3;i>0;i--){
     system("cls");
     printf("[!] Scelta inserita non \x8a valida attendere %i secondi.", i);
     sleep(1);
     system("cls");
    }
    menu='0';
    break;
  }
 }while(menu=='0');
}

void view_visualizza_consumo_prezzo_bimestre(int anno_letture, int kwh_periodo[], float euro_periodo[], int stampa[], char id_cliente[], char fornitore_energia_elettrica[]){
 int i, j=0;
 char test[1024];
 system("cls");
 banner_header(id_cliente, fornitore_energia_elettrica);
 printf ("\xda"); for (i=0;i<30;i++) printf("\xc4"); printf("\xc2"); for (i=0;i<10;i++) printf("\xc4"); printf("\xc2"); for (i=0;i<13;i++) printf("\xc4"); printf("\xbf"); printf("\n");
 printf ("%- 30s ", "\xb3 Data"); printf("% - 10s ", "\xb3 kWh"); printf("% - 13s ", "\xb3 Euro"); printf("\xb3"); printf("\n");
 printf ("\xc3"); for (i=0;i<30;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<10;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<13;i++) printf("\xc4"); printf("\xb4"); printf("\n");
 banner_periodo_view_visualizza_consumo_prezzo_bimestre(stampa, anno_letture, j);
 sprintf(test,"%i", kwh_periodo[stampa[0]]);
 printf("%-10s\xb3", test);
 sprintf(test,"%.2f", euro_periodo[stampa[0]]);
 printf("%-13s\xb3", test);
 printf("\n");
 printf ("\xc3"); for (i=0;i<30;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<10;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<13;i++) printf("\xc4"); printf("\xb4"); printf("\n");
 j++;
 banner_periodo_view_visualizza_consumo_prezzo_bimestre(stampa, anno_letture, j);
 sprintf(test,"%i", kwh_periodo[stampa[1]]);
 printf("%-10s\xb3", test);
 sprintf(test,"%.2f", euro_periodo[stampa[1]]);
 printf("%-13s\xb3", test);
 printf("\n");
 printf ("\xc3"); for (i=0;i<30;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<10;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<13;i++) printf("\xc4"); printf("\xb4"); printf("\n");
 j++;
 banner_periodo_view_visualizza_consumo_prezzo_bimestre(stampa, anno_letture, j);
 sprintf(test,"%i", kwh_periodo[stampa[2]]);
 printf("%-10s\xb3", test);
 sprintf(test,"%.2f", euro_periodo[stampa[2]]);
 printf("%-13s\xb3", test);
 printf("\n");
 printf ("\xc3"); for (i=0;i<30;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<10;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<13;i++) printf("\xc4"); printf("\xb4"); printf("\n");
 j++;
 banner_periodo_view_visualizza_consumo_prezzo_bimestre(stampa, anno_letture, j);
 sprintf(test,"%i", kwh_periodo[stampa[3]]);
 printf("%-10s\xb3", test);
 sprintf(test,"%.2f", euro_periodo[stampa[3]]);
 printf("%-13s\xb3", test);
 printf("\n");
 printf ("\xc3"); for (i=0;i<30;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<10;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<13;i++) printf("\xc4"); printf("\xb4"); printf("\n");
 j++;
 banner_periodo_view_visualizza_consumo_prezzo_bimestre(stampa, anno_letture, j);
 sprintf(test,"%i", kwh_periodo[stampa[4]]);
 printf("%-10s\xb3", test);
 sprintf(test,"%.2f", euro_periodo[stampa[4]]);
 printf("%-13s\xb3", test);
 printf("\n");
 printf ("\xc3"); for (i=0;i<30;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<10;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<13;i++) printf("\xc4"); printf("\xb4"); printf("\n");
 j++;
 banner_periodo_view_visualizza_consumo_prezzo_bimestre(stampa, anno_letture, j);
 sprintf(test,"%i", kwh_periodo[stampa[5]]);
 printf("%-10s\xb3", test);
 sprintf(test,"%.2f", euro_periodo[stampa[5]]);
 printf("%-13s\xb3", test);
 printf("\n");
 printf ("\xc0"); for (i=0;i<30;i++) printf("\xc4"); printf("\xc1"); for (i=0;i<10;i++) printf("\xc4"); printf("\xc1"); for (i=0;i<13;i++) printf("\xc4"); printf("\xd9"); printf("\n");
 printf("1. Ordina per bimestre\n");
 printf("2. Per prezzo crescente\n");
 printf("3. Per prezzo decrescente\n");
 printf("4. Per consumo crescente\n");
 printf("5. Per consumo decrescente\n");
 printf("6. Indietro\n");
 printf("Cliccare il tasto della scelta desiderata\n");
}

void ordinamento_per_periodo_visualizza_consumo_prezzo_bimestre(int temp0_kwh_periodo[], float temp1_euro_periodo[], int stampa[], int kwh_periodo[], float euro_periodo[]){
 int i;
 for(i=0;i<6;i++){
  temp1_euro_periodo[i]=euro_periodo[i];
 }
 for(i=0;i<6;i++){
  stampa[i]=i;
 }
}

void ordinamento_per_prezzo_crescente_visualizza_consumo_prezzo_bimestre(int temp0_kwh_periodo[], float temp1_euro_periodo[], int stampa[], int kwh_periodo[], float euro_periodo[]){
 int i, j;
 float temp;
 for(i=0;i<6;i++){
  temp1_euro_periodo[i]=euro_periodo[i];
  stampa[i]=i;
 }
 for(i=0;i<6-1;i++){
  for(j=i+1;j<6;j++){
   if(temp1_euro_periodo[j]<temp1_euro_periodo[i]){
    temp=temp1_euro_periodo[i];
    temp1_euro_periodo[i]=temp1_euro_periodo[j];
    temp1_euro_periodo[j]=temp;
    
    temp=stampa[i];
    stampa[i]=stampa[j];
    stampa[j]=temp;
   }
  }
 }

}

void ordinamento_per_prezzo_decrescente_visualizza_consumo_prezzo_bimestre(int temp0_kwh_periodo[], float temp1_euro_periodo[], int stampa[], int kwh_periodo[], float euro_periodo[]){
 int i, j;
 float temp;
 for(i=0;i<6;i++){
  temp1_euro_periodo[i]=euro_periodo[i];
  stampa[i]=i;
 }
 for(i=0;i<6-1;i++){
  for(j=i+1;j<6;j++){
   if(temp1_euro_periodo[j]>temp1_euro_periodo[i]){
    temp=temp1_euro_periodo[i];
    temp1_euro_periodo[i]=temp1_euro_periodo[j];
    temp1_euro_periodo[j]=temp;
    
    temp=stampa[i];
    stampa[i]=stampa[j];
    stampa[j]=temp;
   }
  }
 }

}

void ordinamento_per_consumo_crescente_visualizza_consumo_prezzo_bimestre(int temp0_kwh_periodo[], float temp1_euro_periodo[], int stampa[], int kwh_periodo[], float euro_periodo[]){
 int i, j;
 int temp;
 for(i=0;i<6;i++){
  temp0_kwh_periodo[i]=kwh_periodo[i];
  stampa[i]=i;
 }
 for(i=0;i<6-1;i++){
  for(j=i+1;j<6;j++){
   if(temp0_kwh_periodo[j]<temp0_kwh_periodo[i]){
    temp=temp0_kwh_periodo[i];
    temp0_kwh_periodo[i]=temp0_kwh_periodo[j];
    temp0_kwh_periodo[j]=temp;
    
    temp=stampa[i];
    stampa[i]=stampa[j];
    stampa[j]=temp;
   }
  }
 }

}

void ordinamento_per_consumo_decrescente_visualizza_consumo_prezzo_bimestre(int temp0_kwh_periodo[], float temp1_euro_periodo[], int stampa[], int kwh_periodo[], float euro_periodo[]){
 int i, j;
 int temp;
 for(i=0;i<6;i++){
  temp0_kwh_periodo[i]=kwh_periodo[i];
  stampa[i]=i;
 }
 for(i=0;i<6-1;i++){
  for(j=i+1;j<6;j++){
   if(temp0_kwh_periodo[j]>temp0_kwh_periodo[i]){
    temp=temp0_kwh_periodo[i];
    temp0_kwh_periodo[i]=temp0_kwh_periodo[j];
    temp0_kwh_periodo[j]=temp;
    
    temp=stampa[i];
    stampa[i]=stampa[j];
    stampa[j]=temp;
   }
  }
 }

}

void banner_periodo_view_visualizza_consumo_prezzo_bimestre (int stampa[], int anno_letture, int j){
 char test[1024];
  switch(stampa[j]){
   case 0:
    sprintf(test,"%s%i%s%i", "\xb3 GEN. ", anno_letture, " - FEB. ", anno_letture);
    printf("%-31s\xb3", test);
    break;
   case 1:
    sprintf(test,"%s%i%s%i", "\xb3 MAR. ", anno_letture, " - APR. ", anno_letture);
    printf("%-31s\xb3", test);
    break;
   case 2:
    sprintf(test,"%s%i%s%i", "\xb3 MAG. ", anno_letture, " - GIU. ", anno_letture);
    printf("%-31s\xb3", test);
    break;
   case 3:
    sprintf(test,"%s%i%s%i", "\xb3 LUG. ", anno_letture, " - AGO. ", anno_letture);
    printf("%-31s\xb3", test);
    break;
   case 4:
    sprintf(test,"%s%i%s%i", "\xb3 SET. ", anno_letture, " - OTT. ", anno_letture);
    printf("%-31s\xb3", test);
    break;
   case 5:
    sprintf(test,"%s%i%s%i", "\xb3 NOV. ", anno_letture, " - DIC. ", anno_letture);
    printf("%-31s\xb3", test);
    break;
  }
}

void banner_bollette_nel_dettaglio(int anno_letture, float spesa_per_l_energia[][17], int pagamento, int fattura,  int kwh_periodo[], float euro_periodo[], char id_cliente[], char fornitore_energia_elettrica[]){
 int menu;
 int i;
 do{
  banner_view_bollette_nel_dettaglio(anno_letture, id_cliente, fornitore_energia_elettrica);
  menu=getch();
  switch(menu){
   case '1':
    banner_singola_bolletta_nel_dettaglio(menu, spesa_per_l_energia, pagamento, fattura, kwh_periodo, euro_periodo, id_cliente, fornitore_energia_elettrica);
    menu='0';
    break;
   case '2':
    banner_singola_bolletta_nel_dettaglio(menu, spesa_per_l_energia, pagamento, fattura, kwh_periodo, euro_periodo, id_cliente, fornitore_energia_elettrica);
    menu='0';
    break;
   case '3':
    banner_singola_bolletta_nel_dettaglio(menu, spesa_per_l_energia, pagamento, fattura, kwh_periodo, euro_periodo, id_cliente, fornitore_energia_elettrica);
    menu='0';
    break;
   case '4':
    banner_singola_bolletta_nel_dettaglio(menu, spesa_per_l_energia, pagamento, fattura, kwh_periodo, euro_periodo, id_cliente, fornitore_energia_elettrica);
    menu='0';
    break;
   case '5':
    banner_singola_bolletta_nel_dettaglio(menu, spesa_per_l_energia, pagamento, fattura, kwh_periodo, euro_periodo, id_cliente, fornitore_energia_elettrica);
    menu='0';
    break;
   case '6':
    banner_singola_bolletta_nel_dettaglio(menu, spesa_per_l_energia, pagamento, fattura, kwh_periodo, euro_periodo, id_cliente, fornitore_energia_elettrica);
    menu='0';
    break;
   case '7':
    break;
   default:
    for(i=3;i>0;i--){
     system("cls");
     printf("[!] Scelta non presente all'interno del menu attendere %i secondi.", i);
     sleep(1);
     system("cls");
    }
    menu='0';
    break;
  }
 }while(menu=='0');
}

void banner_view_bollette_nel_dettaglio(int anno_letture, char id_cliente[], char fornitore_energia_elettrica[]){
 system("cls");
 banner_header(id_cliente, fornitore_energia_elettrica);
 printf("1. GEN. %i - FEB. %i\n", anno_letture, anno_letture);
 printf("2. MAR. %i - APR. %i\n", anno_letture, anno_letture);
 printf("3. MAG. %i - GIU. %i\n", anno_letture, anno_letture);
 printf("4. LUG. %i - AGO. %i\n", anno_letture, anno_letture);
 printf("5. SET. %i - OTT. %i\n", anno_letture, anno_letture);
 printf("6. NOV. %i - DEC. %i\n", anno_letture, anno_letture);
 printf("7. Indietro\n");
 printf("Cliccare il tasto della scelta desiderata\n");
}

void banner_singola_bolletta_nel_dettaglio(int menu, float spesa_per_l_energia[][17], int pagamento, int fattura, int kwh_periodo[], float euro_periodo[], char id_cliente[], char fornitore_energia_elettrica[]){
 int y;
 y=menu - '0' -1;
 char test[1024];
 system("cls");
 banner_header(id_cliente, fornitore_energia_elettrica);
 printf("DETTAGLIO IMPORTI BOLLETTA\n");
 setcolor(14); printf("%-75s", ""); printf("%-20s", "Unit\x85"); printf("%-15s", "Prezzo"); printf("%-15s", "Quantit\x85"); printf("%-11s","Totale"); printf("\n");
 printf("%-75s", "SPESA PER L'ENERGIA"); printf("%-20s", "di misura"); printf("%-15s", "unitario"); printf("%-15s", ""); printf("%-11s","euro"); printf("\n"); setcolor(15);
 printf("%-75s", "Energia mono"); printf("%-20s", ""); printf("%-15s", ""); printf("%-15s", ""); printf("%-11s",""); printf("\n");
 printf("%-75s", "Energia"); printf("%-20s", "euro/kWh"); printf("%-15f", PREZZO_1); printf("%-15i", kwh_periodo[y]); printf("%-11.2f",spesa_per_l_energia[y][0]); printf("\n");
 printf("%-75s", "Altri importi materia energia"); printf("%-20s", ""); printf("%-15s", ""); printf("%-15s", ""); printf("%-11s",""); printf("\n");
 printf("%-75s", "Quota fissa"); printf("%-20s", ""); printf("%-15s", ""); printf("%-15s", ""); printf("%-11s",""); printf("\n");
 printf("%-75s", "Commercializzazione vendita"); printf("%-20s", "euro/bimestre"); printf("%-15f", PREZZO_2); printf("%-15s", "mesi 2"); printf("%-11.2f",spesa_per_l_energia[y][1]); printf("\n");
 printf("%-75s", "Componente di dispacciamento"); printf("%-20s", "euro/bimestre"); printf("%-15f", PREZZO_3); printf("%-15s", "mesi 2"); printf("%-11.2f",spesa_per_l_energia[y][2]); printf("\n");
 printf("%-75s", "Quota energia"); printf("%-20s", ""); printf("%-15s", ""); printf("%-15s", ""); printf("%-11s",""); printf("\n");
 printf("%-75s", "Dispacciamento"); printf("%-20s", "euro/kWh"); printf("%-15f", PREZZO_4); printf("%-15i", kwh_periodo[y]); printf("%-11.2f",spesa_per_l_energia[y][3]); printf("\n");
 printf("%-75s", "Corrispettivo di sbilanciamento"); printf("%-20s", "euro/kWh"); printf("%-15f", PREZZO_5); printf("%-15i", kwh_periodo[y]); printf("%-11.2f",spesa_per_l_energia[y][4]); printf("\n");
 printf("%-75s", "Totale altri importi materia energia"); printf("%-20s", ""); printf("%-15s", ""); printf("%-15s", ""); printf("%-11.2f",spesa_per_l_energia[y][0]+spesa_per_l_energia[y][1]+spesa_per_l_energia[y][2]+spesa_per_l_energia[y][3]+spesa_per_l_energia[y][4]); printf("\n");
 printf("\n");
 setcolor(14); printf("%-75s", "SPESA PER IL TRASPORTO DELL'ENERGIA ELETTRICA E LA"); printf("%-20s", "Unit\x85"); printf("%-15s", "Prezzo"); printf("%-15s", "Quantit\x85"); printf("%-11s","Totale"); printf("\n");
 printf("%-75s", "GESTIONE DEL CONTATORE"); printf("%-20s", "di misura"); printf("%-15s", "unitario"); printf("%-15s", ""); printf("%-11s","euro"); printf("\n"); setcolor(15);
 printf("%-75s", "Quota fissa"); printf("%-20s", ""); printf("%-15s", ""); printf("%-15s", ""); printf("%-11s",""); printf("\n");
 printf("%-75s", "Quota fissa"); printf("%-20s", "euro/bimestre"); printf("%-15f", PREZZO_6); printf("%-15s", "mesi 2"); printf("%-11.2f",spesa_per_l_energia[y][5]); printf("\n");
 printf("%-75s", "Quota potenza"); printf("%-20s", ""); printf("%-15s", ""); printf("%-15s", ""); printf("%-11s", ""); printf("\n");
 printf("%-75s", ""); printf("%-20s", "euro/kW di"); printf("%-15s", ""); printf("%-15s", ""); printf("%-11s", ""); printf("\n");
 printf("%-75s", ""); printf("%-20s", "potenza"); printf("%-15s", ""); printf("%-15s", "Kw 3,0"); printf("%-11s", ""); printf("\n");
 printf("%-75s", "Quota potenza"); printf("%-20s", "impegnata/"); printf("%-15f", PREZZO_7); printf("%-15s", "mesi 2"); printf("%-11.2f", spesa_per_l_energia[y][6]); printf("\n");
 printf("%-75s", ""); printf("%-20s", "mese"); printf("%-15s", ""); printf("%-15s", ""); printf("%-11s", ""); printf("\n");
 printf("%-75s", "Quota energia"); printf("%-20s", ""); printf("%-15s", ""); printf("%-15s", ""); printf("%-11s", ""); printf("\n");
 printf("%-75s", "Quota energia"); printf("%-20s", "euro/kWh"); printf("%-15f", PREZZO_8); printf("%-15i", kwh_periodo[y]); printf("%-11.2f",spesa_per_l_energia[y][7]); printf("\n");
 printf("%-75s", "Componenti relative ai meccanismi perequativi"); printf("%-20s", ""); printf("%-15s", ""); printf("%-15s", ""); printf("%-11s", ""); printf("\n");
 printf("%-75s", "Quota energia"); printf("%-20s", "euro/kWh"); printf("%-15f", PREZZO_9); printf("%-15i", kwh_periodo[y]); printf("%-11.2f",spesa_per_l_energia[y][8]); printf("\n");
 printf("%-75s", "Totale per il trasporto dell'energia elettrica e la gestione"); printf("%-20s", ""); printf("%-15s", ""); printf("%-15s", ""); printf("%-11s",""); printf("\n");
 printf("%-75s", "del contatore"); printf("%-20s", ""); printf("%-15s", ""); printf("%-15s", ""); printf("%-11.2f",spesa_per_l_energia[y][5]+spesa_per_l_energia[y][6]+spesa_per_l_energia[y][7]+spesa_per_l_energia[y][8]); printf("\n");
 printf("\n");
 setcolor(14); printf("%-75s", "SPESA ONERI DI SISTEMA"); printf("%-20s", "Unit\x85"); printf("%-15s", "Prezzo"); printf("%-15s", "Quantit\x85"); printf("%-11s","Totale"); printf("\n");
 printf("%-75s", ""); printf("%-20s", "di misura"); printf("%-15s", "unitario"); printf("%-15s", ""); printf("%-11s","euro"); printf("\n"); setcolor(15);
 printf("%-75s", "(Asos)"); printf("%-20s", ""); printf("%-15s", ""); printf("%-15s", ""); printf("%-11s", ""); printf("\n");
 printf("%-75s", "Quota energia"); printf("%-20s", ""); printf("%-15s", ""); printf("%-15s", ""); printf("%-11s", ""); printf("\n");
 printf("%-75s", "Quota energia"); printf("%-20s", "euro/kWh"); printf("%-15f", PREZZO_10); printf("%-15i", kwh_periodo[y]); printf("%-11.2f",spesa_per_l_energia[y][9]); printf("\n");
 printf("%-75s", "(Arim)"); printf("%-20s", ""); printf("%-15s", ""); printf("%-15s", ""); printf("%-11s", ""); printf("\n");
 printf("%-75s", "Quota energia"); printf("%-20s", ""); printf("%-15s", ""); printf("%-15s", ""); printf("%-11s", ""); printf("\n");
 printf("%-75s", "Quota energia"); printf("%-20s", "euro/kWh"); printf("%-15f", PREZZO_11); printf("%-15i", kwh_periodo[y]); printf("%-11.2f",spesa_per_l_energia[y][10]); printf("\n");
 printf("%-75s", "Totale spesa oneri di sistema"); printf("%-20s", ""); printf("%-15s", ""); printf("%-15s", ""); printf("%-11.2f",spesa_per_l_energia[y][9]+spesa_per_l_energia[y][10]); printf("\n");
 printf("\n");
 setcolor(14); printf("%-75s", "ALTRE PARTITE"); printf("%-20s", "Unit\x85"); printf("%-15s", "Prezzo"); printf("%-15s", "Quantit\x85"); printf("%-11s","Totale"); printf("\n");
 printf("%-75s", ""); printf("%-20s", "di misura"); printf("%-15s", "unitario"); printf("%-15s", ""); printf("%-11s","euro"); printf("\n"); setcolor(15);
 printf("%-75s", "Bonus WEB"); printf("%-20s", "euro"); printf("%-15s", ""); printf("%-15s", ""); printf("%-11.2f",spesa_per_l_energia[y][11]); printf("\n");
 printf("%-75s", "Bonus PAGAMENTO"); printf("%-20s", "euro"); printf("%-15s", ""); printf("%-15s", ""); printf("%-11.2f",spesa_per_l_energia[y][12]); printf("\n");
 printf("%-75s", "Totale altre partire"); printf("%-20s", ""); printf("%-15s", ""); printf("%-15s", ""); printf("%-11.2f",spesa_per_l_energia[y][11]+spesa_per_l_energia[y][12]); printf("\n");
 printf("\n");
 setcolor(14); printf("%-75s", "IMPOSTE E IVA"); printf("%-20s", "Unit\x85"); printf("%-15s", "Prezzo"); printf("%-15s", "Quantit\x85"); printf("%-11s","Totale"); printf("\n");
 printf("%-75s", ""); printf("%-20s", "di misura"); printf("%-15s", "unitario"); printf("%-15s", ""); printf("%-11s","euro"); printf("\n"); setcolor(15);
 printf("%-75s", "Accisa sull'energia elettrica"); printf("%-20s", ""); printf("%-15s", ""); printf("%-15s", ""); printf("%-11s", ""); printf("\n");
 printf("%-75s", "Accisa sull'energia elettrica"); printf("%-20s", "euro/kWh"); printf("%-15f", PREZZO_12); printf("%-15i", kwh_periodo[y]); printf("%-11.2f",spesa_per_l_energia[y][13]); printf("\n");
 sprintf(test, "%s %i%% %s %f", "IVA", PERCENTUALE_IVA, "su imponibile di euro", spesa_per_l_energia[y][14]); printf("%-75s", test); printf("%-20s", "euro"); printf("%-15s", ""); printf("%-15s", ""); printf("%-11.2f", spesa_per_l_energia[y][15]); printf("\n");
 sprintf(test, "%s %.2f %s", "Fuori campo IVA", spesa_per_l_energia[y][11]+spesa_per_l_energia[y][12], "euro"); printf("%-75s", test); printf("%-20s", ""); printf("%-15s", ""); printf("%-15s", ""); printf("%-11s",""); printf("\n");
 printf("%-75s", "Totale imposte e IVA"); printf("%-20s", ""); printf("%-15s", ""); printf("%-15s", ""); printf("%-11.2f",spesa_per_l_energia[y][13]+spesa_per_l_energia[y][15]); printf("\n");
 printf("\n");
 if(y<5){
  setcolor(14); printf("%-75s", "TOTALE BOLLETTA"); printf("%-20s", ""); printf("%-15s", ""); printf("%-15s", ""); printf("%-11.2f",spesa_per_l_energia[y][16]-CANONE_RAI); printf("\n"); setcolor(15);
 }
 else {
  setcolor(14); printf("%-75s", "TOTALE BOLLETTA"); printf("%-20s", ""); printf("%-15s", ""); printf("%-15s", ""); printf("%-11.2f",spesa_per_l_energia[y][16]); printf("\n"); setcolor(15);
 }
 if(y<5){
  printf("%-75s", "Canone di abbonamento alla televisione"); printf("%-20s", ""); printf("%-15s", ""); printf("%-15s", ""); printf("%-11.2f",CANONE_RAI); printf("\n");
  setcolor(14); printf("%-75s", "TOTALE DA PAGARE"); printf("%-20s", ""); printf("%-15s", ""); printf("%-15s", ""); printf("%-11.2f",spesa_per_l_energia[y][16]+CANONE_RAI); printf("\n"); setcolor(15);
 }
 printf("\n\n");
 printf("Premere un tasto per tornare indietro");
 getch();
}

void banner_media_consumi_valori(int anno_letture, float medie_kwh_anno_periodo_mese_settimana_giorno[], float medie_euro_anno_periodo_mese_settimana_giorno[], char id_cliente[], char fornitore_energia_elettrica[]){
 int i;
 char test[1024];
 system("cls");
 banner_header(id_cliente, fornitore_energia_elettrica);
 printf("\xda"); for (i=0;i<119;i++) printf("\xc4"); printf("\xbf"); printf("\n");
 printf("% - 119s ", "\xb3 Media");  printf("\xb3"); printf("\n");
 printf("\xc3"); for (i=0;i<23;i++) printf("\xc4"); printf("\xc2"); for (i=0;i<23;i++) printf("\xc4"); printf("\xc2");for (i=0;i<23;i++) printf("\xc4"); printf("\xc2");for (i=0;i<23;i++) printf("\xc4"); printf("\xc2");for (i=0;i<23;i++) printf("\xc4"); printf("\xb4"); printf("\n");
 printf("% - 23s ", "\xb3 Annuale"); printf("% - 23s ", "\xb3 Bimestrale"); printf("% - 23s ", "\xb3 Mensile"); printf("% - 23s ", "\xb3 Settimanale"); printf("% - 23s ", "\xb3 Giornaliera");printf("\xb3"); printf("\n");
 printf("\xc3"); for (i=0;i<11;i++) printf("\xc4"); printf("\xc2"); for (i=0;i<11;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<11;i++) printf("\xc4"); printf("\xc2"); for (i=0;i<11;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<11;i++) printf("\xc4"); printf("\xc2"); for (i=0;i<11;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<11;i++) printf("\xc4"); printf("\xc2");for (i=0;i<11;i++) printf("\xc4"); printf("\xc5");for (i=0;i<11;i++) printf("\xc4"); printf("\xc2");for (i=0;i<11;i++) printf("\xc4"); printf("\xb4"); printf("\n");
 printf("% - 11s ", "\xb3 kWh"); printf("% - 11s ", "\xb3 euro"); printf("% - 11s ", "\xb3 kWh"); printf("% - 11s ", "\xb3 euro"); printf("% - 11s ", "\xb3 kWh"); printf("% - 11s ", "\xb3 euro"); printf("% - 11s ", "\xb3 kWh"); printf("% - 11s ", "\xb3 euro"); printf("% - 11s ", "\xb3 kWh"); printf("% - 11s ", "\xb3 euro"); printf("\xb3"); printf("\n");
 printf("\xc3"); for (i=0;i<11;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<11;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<11;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<11;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<11;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<11;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<11;i++) printf("\xc4"); printf("\xc5");for (i=0;i<11;i++) printf("\xc4"); printf("\xc5");for (i=0;i<11;i++) printf("\xc4"); printf("\xc5");for (i=0;i<11;i++) printf("\xc4"); printf("\xb4"); printf("\n");
 printf("\xb3"); printf("% - 10.2f ", medie_kwh_anno_periodo_mese_settimana_giorno[0]); printf("\xb3"); printf("% - 10.2f ", medie_euro_anno_periodo_mese_settimana_giorno[0]); printf("\xb3"); printf("% - 10.2f ", medie_kwh_anno_periodo_mese_settimana_giorno[1]); printf("\xb3"); printf("% - 10.2f ", medie_euro_anno_periodo_mese_settimana_giorno[1]); printf("\xb3"); printf("% - 10.2f ", medie_kwh_anno_periodo_mese_settimana_giorno[2]); printf("\xb3"); printf("% - 10.2f ", medie_euro_anno_periodo_mese_settimana_giorno[2]); printf("\xb3"); printf("% - 10.2f ", medie_kwh_anno_periodo_mese_settimana_giorno[3]); printf("\xb3"); printf("% - 10.2f ", medie_euro_anno_periodo_mese_settimana_giorno[3]); printf("\xb3"); printf("% - 10.2f ", medie_kwh_anno_periodo_mese_settimana_giorno[4]); printf("\xb3"); printf("% - 10.2f ", medie_euro_anno_periodo_mese_settimana_giorno[4]); printf("\xb3"); printf("\n");
 printf("\xc0"); for (i=0;i<11;i++) printf("\xc4"); printf("\xc1"); for (i=0;i<11;i++) printf("\xc4"); printf("\xc1"); for (i=0;i<11;i++) printf("\xc4"); printf("\xc1"); for (i=0;i<11;i++) printf("\xc4"); printf("\xc1"); for (i=0;i<11;i++) printf("\xc4"); printf("\xc1"); for (i=0;i<11;i++) printf("\xc4"); printf("\xc1"); for (i=0;i<11;i++) printf("\xc4"); printf("\xc1");for (i=0;i<11;i++) printf("\xc4"); printf("\xc1");for (i=0;i<11;i++) printf("\xc4"); printf("\xc1");for (i=0;i<11;i++) printf("\xc4"); printf("\xd9"); printf("\n");
 printf("\n\n");
 printf("Premere un tasto per tornare indietro");
 getch();
}

void banner_scostamento_con_la_media(float scostamento_euro[], float scostamento_kwh[], float medie_kwh_anno_periodo_mese_settimana_giorno[], float medie_euro_anno_periodo_mese_settimana_giorno[], int anno_letture, char id_cliente[], char fornitore_energia_elettrica[]){
 int i;
 char test[1024];
 system("cls");
 banner_header(id_cliente, fornitore_energia_elettrica);
 printf("\xda"); for (i=0;i<30;i++) printf("\xc4"); printf("\xc2"); for (i=0;i<18;i++) printf("\xc4"); printf("\xc2"); for (i=0;i<18;i++) printf("\xc4"); printf("\xc2"); for (i=0;i<18;i++) printf("\xc4"); printf("\xc2"); for (i=0;i<18;i++) printf("\xc4"); printf("\xbf"); printf("\n");
 printf("\xb3"); printf("%-30s", "Data"); printf("\xb3"); printf("%-18s", "Media kWh"); printf("\xb3"); printf("%-18s", "Media euro"); printf("\xb3"); printf("%-18s", "Scostamento"); printf("\xb3"); printf("%-18s", "Scostamento"); printf("\xb3"); printf("\n");
 printf("\xb3"); printf("%-30s", ""); printf("\xb3"); printf("%-18s", "bimestre"); printf("\xb3"); printf("%-18s", "bimestre"); printf("\xb3"); printf("%-18s", "dalla media"); printf("\xb3"); printf("%-18s", "dalla media"); printf("\xb3"); printf("\n");
 printf("\xc3"); for (i=0;i<30;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<18;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<18;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<18;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<18;i++) printf("\xc4"); printf("\xb4"); printf("\n");
 printf("\xb3"); sprintf(test,"%s%i%s%i", " GEN. ", anno_letture, " - FEB. ", anno_letture); printf("%-30s", test); printf("\xb3"); printf("%-18.2f", medie_kwh_anno_periodo_mese_settimana_giorno[1]); printf("\xb3"); printf("%-18.2f", medie_euro_anno_periodo_mese_settimana_giorno[1]); printf("\xb3"); if(scostamento_kwh[0]>=0) setcolor(10); else setcolor(4); printf("%-18.2f", scostamento_kwh[0]); setcolor(15); printf("\xb3"); if(scostamento_euro[0]>=0) setcolor(10); else setcolor(4); printf("%-18.2f", scostamento_euro[0]); setcolor(15); printf("\xb3"); printf("\n");
 printf("\xc3"); for (i=0;i<30;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<18;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<18;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<18;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<18;i++) printf("\xc4"); printf("\xb4"); printf("\n");
 printf("\xb3"); sprintf(test,"%s%i%s%i", " MAR. ", anno_letture, " - APR. ", anno_letture); printf("%-30s", test); printf("\xb3"); printf("%-18.2f", medie_kwh_anno_periodo_mese_settimana_giorno[1]); printf("\xb3"); printf("%-18.2f", medie_euro_anno_periodo_mese_settimana_giorno[1]); printf("\xb3"); if(scostamento_kwh[1]>=0) setcolor(10); else setcolor(4); printf("%-18.2f", scostamento_kwh[1]); setcolor(15); printf("\xb3"); if(scostamento_euro[1]>=0) setcolor(10); else setcolor(4); printf("%-18.2f", scostamento_euro[1]); setcolor(15); printf("\xb3"); printf("\n");
 printf("\xc3"); for (i=0;i<30;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<18;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<18;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<18;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<18;i++) printf("\xc4"); printf("\xb4"); printf("\n");
 printf("\xb3"); sprintf(test,"%s%i%s%i", " MAG. ", anno_letture, " - GIU. ", anno_letture); printf("%-30s", test); printf("\xb3"); printf("%-18.2f", medie_kwh_anno_periodo_mese_settimana_giorno[1]); printf("\xb3"); printf("%-18.2f", medie_euro_anno_periodo_mese_settimana_giorno[1]); printf("\xb3"); if(scostamento_kwh[2]>=0) setcolor(10); else setcolor(4); printf("%-18.2f", scostamento_kwh[2]); setcolor(15); printf("\xb3"); if(scostamento_euro[2]>=0) setcolor(10); else setcolor(4); printf("%-18.2f", scostamento_euro[2]); setcolor(15); printf("\xb3"); printf("\n");
 printf("\xc3"); for (i=0;i<30;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<18;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<18;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<18;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<18;i++) printf("\xc4"); printf("\xb4"); printf("\n");
 printf("\xb3"); sprintf(test,"%s%i%s%i", " LUG. ", anno_letture, " - AGO. ", anno_letture); printf("%-30s", test); printf("\xb3"); printf("%-18.2f", medie_kwh_anno_periodo_mese_settimana_giorno[1]); printf("\xb3"); printf("%-18.2f", medie_euro_anno_periodo_mese_settimana_giorno[1]); printf("\xb3"); if(scostamento_kwh[3]>=0) setcolor(10); else setcolor(4); printf("%-18.2f", scostamento_kwh[3]); setcolor(15); printf("\xb3"); if(scostamento_euro[3]>=0) setcolor(10); else setcolor(4); printf("%-18.2f", scostamento_euro[3]); setcolor(15); printf("\xb3"); printf("\n");
 printf("\xc3"); for (i=0;i<30;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<18;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<18;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<18;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<18;i++) printf("\xc4"); printf("\xb4"); printf("\n");
 printf("\xb3"); sprintf(test,"%s%i%s%i", " SET. ", anno_letture, " - OTT. ", anno_letture); printf("%-30s", test); printf("\xb3"); printf("%-18.2f", medie_kwh_anno_periodo_mese_settimana_giorno[1]); printf("\xb3"); printf("%-18.2f", medie_euro_anno_periodo_mese_settimana_giorno[1]); printf("\xb3"); if(scostamento_kwh[4]>=0) setcolor(10); else setcolor(4); printf("%-18.2f", scostamento_kwh[4]); setcolor(15); printf("\xb3"); if(scostamento_euro[4]>=0) setcolor(10); else setcolor(4); printf("%-18.2f", scostamento_euro[4]); setcolor(15); printf("\xb3"); printf("\n");
 printf("\xc3"); for (i=0;i<30;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<18;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<18;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<18;i++) printf("\xc4"); printf("\xc5"); for (i=0;i<18;i++) printf("\xc4"); printf("\xb4"); printf("\n");
 printf("\xb3"); sprintf(test,"%s%i%s%i", " NOV. ", anno_letture, " - DIC. ", anno_letture); printf("%-30s", test); printf("\xb3"); printf("%-18.2f", medie_kwh_anno_periodo_mese_settimana_giorno[1]); printf("\xb3"); printf("%-18.2f", medie_euro_anno_periodo_mese_settimana_giorno[1]); printf("\xb3"); if(scostamento_kwh[5]>=0) setcolor(10); else setcolor(4); printf("%-18.2f", scostamento_kwh[5]); setcolor(15); printf("\xb3"); if(scostamento_euro[5]>=0) setcolor(10); else setcolor(4); printf("%-18.2f", scostamento_euro[5]); setcolor(15); printf("\xb3"); printf("\n");
 printf("\xc0"); for (i=0;i<30;i++) printf("\xc4"); printf("\xc1"); for (i=0;i<18;i++) printf("\xc4"); printf("\xc1"); for (i=0;i<18;i++) printf("\xc4"); printf("\xc1"); for (i=0;i<18;i++) printf("\xc4"); printf("\xc1"); for (i=0;i<18;i++) printf("\xc4"); printf("\xd9"); printf("\n");
 printf("\n\n");
 printf("Premere un tasto per tornare indietro");
 getch();
}

void banner_header(char id_cliente[], char fornitore_energia_elettrica[]){
 time_t t;
    time(&t);
    printf("\n");
    printf("%-15s", "Ora: "); printf("%s", ctime(&t));
 printf("%-15s", "ID Cliente: "); puts(id_cliente);
 printf("%-15s", "Fornitore: "); puts(fornitore_energia_elettrica);
 printf("\n");
}

int chiusura_programma(){
 int scelta;
 int risultato;
 int conferma=0;
 int i;
 system("cls");
 printf("Sei sicuro di voler uscire? (y\\n)");
 scelta=getch();
 do{
  if(scelta=='y'){
   risultato='5';
   conferma=1;
   system("cls");
   for(i=0;i<10;i++){
    printf("Grazie di aver utilizzato il programma\nSpam di Amazon Prime\n");
    Sleep(150);
   }
   printf("Preme un tasto per chiudere la finestra");
   getch();
   lol();
  }
  else{
   risultato='0';
   conferma=1;
  }
 }while(conferma==0);
 return risultato;
}

void banner_fornitori(){
 int i;
 int z=0;
 char nomi[40][256]={{"Enel Energia"},{"Servizio Elettrico Nazionale"},{"Eni Gas e Luce"},{"Acea Energia"},{"a2a"},{"Edison"},{"Hera Comm"},{"Iren Luce Gas e Servizi"},{"Agsm Energia"},{"E.on"},{"Illumia"},{"Green Network"},{"Engie"},{"Gas Natural"},{"GALA"},{"Onda Energia"},{"Axopower"},{"Omnia Energia"},{"Made in Energy"},{"Salerno Energia"},{"Servizio Elettrico Roma"},{"Sorgenia"},{"Wekiwi"},{"Estra Energie"},{"Unogas"},{"Optima"},{"Axpo"},{"Dolomiti Energia"},{"Iberdrola"},{"Trenta"},{"Eviva"},{"Ascotrade"},{"Autogas Nord"},{"Vivigas"},{"Accendi Luce e Gas Coop"},{"Duferco Energia"},{"AEVV Energie"},{"Piemonte Energy"},{"Audax Energia"},{"Domoenergia"}};
 printf("\xda"); for(i=0;i<65;i++) printf("\xc4"); printf("\xbf");  printf("\n");
 printf("\xb3"); for(i=0;i<19;i++) printf(" "); printf("Fornitori Energia Elettrica"); for(i=0;i<19;i++) printf(" "); printf("\xb3"); printf("\n");
 printf("\xc3"); for(i=0;i<32;i++) printf("\xc4"); printf("\xc2"); for(i=0;i<32;i++) printf("\xc4"); printf("\xb4");  printf("\n");
 printf("\xb3"); printf(" %-30s ", nomi[z++]); printf("\xb3"); printf(" %-30s ", nomi[z++]); printf("\xb3"); printf("\n");
 printf("\xc3"); for(i=0;i<32;i++) printf("\xc4"); printf("\xc5"); for(i=0;i<32;i++) printf("\xc4"); printf("\xb4");  printf("\n");
 printf("\xb3"); printf(" %-30s ", nomi[z++]); printf("\xb3"); printf(" %-30s ", nomi[z++]); printf("\xb3"); printf("\n");
 printf("\xc3"); for(i=0;i<32;i++) printf("\xc4"); printf("\xc5"); for(i=0;i<32;i++) printf("\xc4"); printf("\xb4");  printf("\n");
 printf("\xb3"); printf(" %-30s ", nomi[z++]); printf("\xb3"); printf(" %-30s ", nomi[z++]); printf("\xb3"); printf("\n");
 printf("\xc3"); for(i=0;i<32;i++) printf("\xc4"); printf("\xc5"); for(i=0;i<32;i++) printf("\xc4"); printf("\xb4");  printf("\n");
 printf("\xb3"); printf(" %-30s ", nomi[z++]); printf("\xb3"); printf(" %-30s ", nomi[z++]); printf("\xb3"); printf("\n");
 printf("\xc3"); for(i=0;i<32;i++) printf("\xc4"); printf("\xc5"); for(i=0;i<32;i++) printf("\xc4"); printf("\xb4");  printf("\n");
 printf("\xb3"); printf(" %-30s ", nomi[z++]); printf("\xb3"); printf(" %-30s ", nomi[z++]); printf("\xb3"); printf("\n");
 printf("\xc3"); for(i=0;i<32;i++) printf("\xc4"); printf("\xc5"); for(i=0;i<32;i++) printf("\xc4"); printf("\xb4");  printf("\n");
 printf("\xb3"); printf(" %-30s ", nomi[z++]); printf("\xb3"); printf(" %-30s ", nomi[z++]); printf("\xb3"); printf("\n");
 printf("\xc3"); for(i=0;i<32;i++) printf("\xc4"); printf("\xc5"); for(i=0;i<32;i++) printf("\xc4"); printf("\xb4");  printf("\n");
 printf("\xb3"); printf(" %-30s ", nomi[z++]); printf("\xb3"); printf(" %-30s ", nomi[z++]); printf("\xb3"); printf("\n");
 printf("\xc3"); for(i=0;i<32;i++) printf("\xc4"); printf("\xc5"); for(i=0;i<32;i++) printf("\xc4"); printf("\xb4");  printf("\n");
 printf("\xb3"); printf(" %-30s ", nomi[z++]); printf("\xb3"); printf(" %-30s ", nomi[z++]); printf("\xb3"); printf("\n");
 printf("\xc3"); for(i=0;i<32;i++) printf("\xc4"); printf("\xc5"); for(i=0;i<32;i++) printf("\xc4"); printf("\xb4");  printf("\n");
 printf("\xb3"); printf(" %-30s ", nomi[z++]); printf("\xb3"); printf(" %-30s ", nomi[z++]); printf("\xb3"); printf("\n");
 printf("\xc3"); for(i=0;i<32;i++) printf("\xc4"); printf("\xc5"); for(i=0;i<32;i++) printf("\xc4"); printf("\xb4");  printf("\n");
 printf("\xb3"); printf(" %-30s ", nomi[z++]); printf("\xb3"); printf(" %-30s ", nomi[z++]); printf("\xb3"); printf("\n");
 printf("\xc3"); for(i=0;i<32;i++) printf("\xc4"); printf("\xc5"); for(i=0;i<32;i++) printf("\xc4"); printf("\xb4");  printf("\n");
 printf("\xb3"); printf(" %-30s ", nomi[z++]); printf("\xb3"); printf(" %-30s ", nomi[z++]); printf("\xb3"); printf("\n");
 printf("\xc3"); for(i=0;i<32;i++) printf("\xc4"); printf("\xc5"); for(i=0;i<32;i++) printf("\xc4"); printf("\xb4");  printf("\n");
 printf("\xb3"); printf(" %-30s ", nomi[z++]); printf("\xb3"); printf(" %-30s ", nomi[z++]); printf("\xb3"); printf("\n");
 printf("\xc3"); for(i=0;i<32;i++) printf("\xc4"); printf("\xc5"); for(i=0;i<32;i++) printf("\xc4"); printf("\xb4");  printf("\n");
 printf("\xb3"); printf(" %-30s ", nomi[z++]); printf("\xb3"); printf(" %-30s ", nomi[z++]); printf("\xb3"); printf("\n");
 printf("\xc3"); for(i=0;i<32;i++) printf("\xc4"); printf("\xc5"); for(i=0;i<32;i++) printf("\xc4"); printf("\xb4");  printf("\n");
 printf("\xb3"); printf(" %-30s ", nomi[z++]); printf("\xb3"); printf(" %-30s ", nomi[z++]); printf("\xb3"); printf("\n");
 printf("\xc0"); for(i=0;i<32;i++) printf("\xc4"); printf("\xc1"); for(i=0;i<32;i++) printf("\xc4"); printf("\xd9");  printf("\n\n");
}

void lol(){
 system("cls");
 printf(",;+;;+;;;,?;?;;;,,,,,,;,;',,'',;%%S;;;%%SS%%SSSSSSSSSSSSSSSSSSSSSSSSS%%%%%%%%%%%%??%%%%%%%%;'S+..    .          ."); printf("\n");
 printf("+;;;?;+;,++;;,,,,,;,,,,,,,,,';+%%S,,%%S%%SS#SSSSSS####S#S##S##SSSSSSS%%S%%%%%%%%%%%%%%S%%SS+'%%'."); printf("\n");
 printf("?+;;,;+;;,;+;;;,,,,;,,,','',;%%%%%%',S%%S%%SSSSSS#SSSS#SSSSS####SSS#SSSSS%%S%%%%S%%%%%%%%S%%%%%%;;'.            .."); printf("\n");
 printf("%%+;%%+;?++;;,,;,,,,,,',,',,;+,%%?;'?;%%SSSSS#SSSSS##SS######@##SSSS#SSSS%%S%%S%%%%%%%%%%S%%%%'%%''        .... ."); printf("\n");
 printf("?????;;??;;;+,,+,,,,''',;+;;;;;',%%%%%%SSS#######S###########SSS##SSSSSSS%%SS%%%%%%%%SSS%%?',;,   .    ..."); printf("\n");
 printf("?+;??++;;+;;;,,,,,''',,;%%?%%%%,,''%%,%%SSSS#######S#####@#######SSS%%#SSSSSS%%%%%%%%%%%%SSSS%%;?.'''.          ."); printf("\n");
 printf(";?%%;;;+;;+;,,,,,,''',;S?;,',;,'+,S%%?%%SSS#@###SS########@#SSSS#SSSSSSSS%%SS%%%%%%%%S%%S%%S?%%'  .'    ."); printf("\n");
 printf("???;;;++,;+;,;',''',%%S'?;,+,,?.;?%%S%%%%SSS#@############S###SSSSSSSSSSSSSSSS%%%%SSSSS%%+,,.. ',    ."); printf("\n");
 printf("??+?;;%%++;;,,,,,,;';%%',,;;;';%%';%%'.',+,SSS###SSS##SSS%%,',SS%%S#%%SSSSSSSSSSS%%SS%%SS%%%%%%,;,.  .'"); printf("\n");
 printf("%%;+;?+;+;;;+,,,,,''?''?;?+,;%%?.''.'',%%SS##S#SSS##SSSSSS?;,;%%??SSSSSSSSSSSSSSSSSSS%%?%%;'+'..'."); printf("\n");
 printf("S????;;;;;;;;;,'',,%%,;+,%%?,,%%;'%%;;%%%%%%%%SSS##@SSS##SS###SSSSSSSSSSSSS%%SSSSSS%%SSSSSS%%?+;,''.'.'"); printf("\n");
 printf("?,?+;;?;;;,,;,,,'+,''.%%%%;,,?%%+.;?SSSSS%%SSS#S#@###@####S##SSSSSSSS%%SSSSSSSSSSSSS%%%%%%\?\?\?\?'',. .'..    ."); printf("\n");
 printf(",S;,;;??;;;;,',,''',.,,%%;'';%%,.%%%%SS%%%%%%S%%%%SS####@@#SS#SS#SSSS#SSSSSSSSSSSSSS%%SSS%%%%%%%%,;?;+.,   ."); printf("\n");
 printf("%%%%?;;+%%;;;+,,,',.,...,;;,',;?',%%SS%%%%%%??SS?%%S#@@###SSSS%%%%+,;%%SS#SSS%%SSSSSSSSSSSSSSS%%%%,,+?;,,.   ."); printf("\n");
 printf("S?%%;+;+;,,,,,';'.'.'',%%,,,'+%%''?S%%,,?+?S%%%%,?S#@#S#SSSSS?+%%%%%%+%%SSSS%%SSSSSSSSSSSSSSS%%%%%%;?;%%%%' ."); printf("\n");
 printf("S,+,;;;+,,,,''......',%%''',;?',%%?,'##;,?;S?'S@##SSS%%%%%%;';.,S%%%%SSSS%%SSSSS%%SSSSSSSSS%%S?;%%;%%;,S.      ."); printf("\n");
 printf("%%%%?;+,;,;,''.'......''%%',',%%,';%%%%'+S...;#%%%%'S#SSS%%SS%%?#S...,?%%%%SSS%%SSS%%S%%SSSSSSSS%%+%%%%?;;%%%%;,';"); printf("\n");
 printf(",+?;;,;,,''''.... ..',?,'''%%'';%%S,;%%,'%%%%;%%,%%SSSSS%%#S%%SSS...S%%SSSSSSSSSS%%SSSSSSS%%S%%%%%%??%%?;+;;..,."); printf("\n");
 printf(",%%';,,;,''''......';.';.',.;'';%%,;''%%?S;SS'%%SSSSS%%SS%%%%%%?%%%%%%?+%%SSSSSSSSS%%%%%%SSSS%%%%%%%%%%?%%;?%%%%;,++  ;"); printf("\n");
 printf("%%%%',';;,',''....'.., ;%%.''.;.,+,?%%?,%%%%%%%%%%,,%%SSSSSSSS?%%S%%%%%%%%%%%%%%S%%%%SSS%%SSS%%%%SSSS%%%%%%%%%%%%%%%%%%,%%;;,;;"); printf("\n");
 printf("S%%',,'.;''''...,.....;,'''.'.,%%;%%%%%%%%%%%%%%%%?';SSS%%SSSSSSS%%%%SSSSSS%%%%SSSS%%SS%%%%%%%%S%%%%%%%%;;;%%%%%%%%%%+S?'+,' '"); printf("\n");
 printf("%%;..''''','....'....,.,'.'...?%%%%%%SSSS%%SS''%%SS%%%%%%SSSS#SS#SSSSSSSS%%%%S%%%%%%S%%%%%%%%%%%%%%??S%%',+%%%%%%%%?%%+'+.. ."); printf("\n");
 printf("%%,. ...''.''...'...;'',..S...,%%SSSSSSSS%%'%%SSSS%%?%%SSS###SSSSSSSSSSSSS%%%%%%%%%%%%%%%%%%%%;%%%%S;%%;;%%%%%%%%%%%%%%?,. '"); printf("\n");
 printf("+'  ....''......'.?,''...,...%%S#SS?SSS%%,+SSSS%%%%%%%%SS#SS#S@#SSSS##SSS%%%%%%%%%%%%++;%%?%%SS%%;?;.%%%%SSS%%%%?;''.."); printf("\n");
 printf("?.  .  .........'.''.....'...%%SSSS%%SS%%S,SS##SSS%%?%%S##SS########SSSSS%%%%%%%%%%+;%%;SSSSSS.%%%%%%%%SSS%%;%%%%',."); printf("\n");
 printf(",. ... ........'... ...'''...;#SS%%SS%%#';SS##@SS%%%%%%%%SS@@#S####S##SSS%%%%+%%%%?;,%%%%SSSS%%%%S%%S.%%SSSS%%%%S+'."); printf("\n");
 printf(".... .. . .........'..'...'..+%%S%%%%%%S#S,,%%S#@#SS%%SS%%%%SS@#####S##SS#SS?;%%%%%%;;%%S#SSS%%SS%%S%%;SSSS%%?S%%' ."); printf("\n");
 printf("?, ....  .... ....'.......,..;?%%%%SS##',',SSSSS%%SSSS?S#S##@#S#S#SSSSS%%;%%%%?%%++%%%%%%SS%%%%SS%%%%;S#SS,%%S%%;.'."); printf("\n");
 printf(",,.... . ..  .. .........,,..++;%%S##SS?'.;%%%%%%;#S@%%%%%%SSSS####SSSSS+SS%%?%%%%?%%;%%S#%%S%%S%%SS%%%%+SSSS;;S%%?."); printf("\n");
 printf("%%;.. ....   .. ... ..%%'+S''..+%%;SSSS%%%%?SSSS#SS#%%S%%SSSS#S%%S#SSSSSSSSS+?%%+%%%%;SSS%%S;SSS%%S;S#SSS?+S;''."); printf("\n");
 printf(";,  %%#... .S.  ..... .. '''..%%S;%%SSSSSSS#S#S%%SS#SSSS%%SSSSSSSSSSSSSSS%%%%%%%%%%%%,SSS?;??%%S%%%%%%SSSSS,,%%, '.."); printf("\n");
 printf("',   .........  ... .  .,''..%%S;S%%S%%SS@@SSSS%%S##S#S#SSSSSSSSSSSSSSSS+%%%%?%%?+SSS%%,%%%%%%?%%+SS%%S%%%%,%%; ' .."); printf("\n");
 printf(",' .   . .  ....... .....'...;S,%%,?SS%%S#%%S#SS#SSSS##%%SSSSS+SSSSSSSS%%;%%%%%%%%+%%SS%%??.'S%%%%%%%%;;SS%%,'......"); printf("\n");
 printf("'   ...#.  .. .  .. .....'...,%%;%%?;;%%%%%%SS#SSSS%%S#%%%%%%S%%SSSSSSSSSSSSS%%,S%%%%%%;.S%%?' ..;S;,%%.'%%,. ......."); printf("\n");
 printf("'  . . ......  .... .........'%%;%%%%?,',,?;%%;%%++S%%,,%%,?S%%#SS%%SSSSSSSS%%?%%S%%%%%%'        .'.  .;'........."); printf("\n");
 printf(".  ..  . ...   ...............%%%%%%SS;,.'.,'?';,,+SS,'+,;'SSSSSSSSSSS%%;SS%%+,'            . ..........."); printf("\n");
 printf("   ..   ..  ....... ..........%%%%'SSS%%,,,?;%%%%?%%%%%%%%%%;%%,..;;SSS#SSSSSS%%,SS%%+'        .   . ......'....'"); printf("\n");
 printf("        . ..... ...............+%%;SSS?.%%S%%%%S%%S%%%%%%%%%%?''++%%%%?SSSSSSSS?SS%%,           . ... .....'..',,"); printf("\n");
 printf("     .    . .  .......'........%%S,SS#%%.%%%%%%%%%%%%%%S%%S%%?,,%%SS#%%?SS%%SSSSS,S%%,         .. ..... .......'',,"); printf("\n");
 printf("         .......................%%S?##S.S#%%S%%S%%%%;SS;%%%%%%%%SSS%%SS%%SSSS+SS.              ... ....'. ''+,'"); printf("\n");
 printf("       . . ... ........'........'S+S#S.;SS%%%%;%%%%+#,,+?%%S#SS%%S%%%%SSSS%%S  .       .   ...  .......',+,';"); printf("\n");
 printf("            ..'..................;SS#S.+S#SS%%;;%%S;,,%%SSS#SSS?S#S%%,%%.       .   . .... ..... .,'+,,',"); printf("\n");
 printf("          ',,''''..........'......S'#S.'%%@S%%%%?;%%%%';%%S%%SSSSSS;SS%%+. .  .  .  .   .  .. . ....,,;,';,,"); printf("\n");
 printf("      . ,,,,,,','............'....'SSS,.%%SS+%%%%%%S;%%S%%SS##SS#SS#S?...      .. .  .... ..... ',;,,';,',"); printf("\n");
 printf("      ,,,',,,,,'''..........'''....%%,SS.;%%S%%%%?S%%;%%SS#S###SS%%SS'..   ..   . .  . .   .   .'',++,;,;;,"); printf("\n");
 printf("  \xda\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xbf%%?%%?,SS#SSS###SSSS....   ...   .. ..... .. ..';+%%?,;,''"); printf("\n");
 printf("  \xb3 Ora puoi davvero chiudere la finestra \xb3%%%%%%%%%%S##SSSS#S#S%%........    .  .......   ..,,,,',;,;'''."); printf("\n");
 printf("',\xc0\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xc4\xd9..;+;SS@S#SSSSSS,.................... ...   ''',,,',;;+',"); printf("\n");
 printf(",,,,,;,,,,,',,;,,,'''.''.'''''''''......%%%%+,%%####S####S%%............ ...........   .'',;;;'+,;';''.."); printf("\n");
 printf(",;,,,;,,,,,,;,,,;,,''.'''''''''..''......?%%SSSSSS#SSS%%............ ....'........  ..,,,,',,%%;,'''..'"); printf("\n");
 getch();
}