Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- typedef struct prez{
- int ore_arrivo;
- int minuti_arrivo;
- int ore_ritorno;
- int minuti_ritorno;
- float prezzo;
- }prezzi;
- typedef struct arrive{
- char s[7];
- int ore_arrivo;
- int minuti_arrivo;
- int ore_ritorno;
- int minuti_ritorno;
- }targhe;
- int main(int argc,char *argv[])
- {
- FILE *fp;
- int i,j,flag,in_park,min_tariffa_andata1,min_tariffa_andata2,min_tariffa_andata3,min_tariffa_andata4;
- int min_tariffa_ritorno1, min_tariffa_ritorno2,min_tariffa_ritorno3,min_tariffa_ritorno4;
- float tariffa1,tariffa2,tariffa3,tariffa4;
- int m1,m2;
- int cont=0;
- float price=0;
- prezzi vettore[4];
- targhe vett_targhe[200];
- fp=fopen("prezzi.txt","r");
- if(fp==NULL){
- printf("Errore fle");
- return -1;
- }
- for(i=0;i<4;i++){
- fscanf(fp,"%d:%d %d:%d %f",&vettore[i].ore_arrivo,&vettore[i].minuti_arrivo,&vettore[i].ore_ritorno,&vettore[i].minuti_ritorno,&vettore[i].prezzo);
- }
- min_tariffa_andata1=(vettore[0].ore_arrivo*60)+vettore[0].minuti_arrivo;
- min_tariffa_ritorno1=(vettore[0].ore_ritorno*60)+vettore[0].minuti_ritorno;
- tariffa1=vettore[0].prezzo;
- min_tariffa_andata2=(vettore[1].ore_arrivo*60)+vettore[1].minuti_arrivo;
- min_tariffa_ritorno2=(vettore[1].ore_ritorno*60)+vettore[1].minuti_ritorno;
- tariffa2=vettore[1].prezzo;
- min_tariffa_andata3=(vettore[2].ore_arrivo*60)+vettore[2].minuti_arrivo;
- min_tariffa_ritorno3=(vettore[2].ore_ritorno*60)+vettore[2].minuti_ritorno;
- tariffa3=vettore[2].prezzo;
- min_tariffa_andata4=(vettore[3].ore_arrivo*60)+vettore[3].minuti_arrivo;
- min_tariffa_ritorno4=(vettore[3].ore_ritorno*60)+vettore[3].minuti_ritorno;
- tariffa4=vettore[3].prezzo;
- fclose(fp);
- fp=fopen(argv[1],"r");
- if(fp==NULL){
- printf("Errore apertura file");
- return -2;
- }
- i=0;
- while(fscanf(fp,"%s %d:%d %d:%d",vett_targhe[i].s,&vett_targhe[i].ore_arrivo,&vett_targhe[i].minuti_arrivo,&vett_targhe[i].ore_ritorno,&vett_targhe[i].minuti_ritorno)!=EOF){
- i++;
- }
- fclose(fp);
- flag=0;
- in_park=1;
- for(j=0;j<i;j++){
- if(strcmp(argv[2],vett_targhe[j].s)==0 && vett_targhe[j].ore_ritorno==99 && vett_targhe[j].minuti_ritorno==99){
- flag=1;
- cont++;
- in_park=1;
- }
- if(strcmp(argv[2],vett_targhe[j].s)==0 &&vett_targhe[j].ore_ritorno!=99){
- flag=1;
- in_park=0;
- cont++;
- m1=(vett_targhe[j].ore_arrivo*60)+vett_targhe[j].minuti_arrivo;
- m2=(vett_targhe[j].ore_ritorno*60)+vett_targhe[j].minuti_ritorno;
- if(m1<min_tariffa_ritorno1 && m1>min_tariffa_andata1){
- price=price+(((m2-m1)*tariffa1)/60);
- }
- if(m1<min_tariffa_ritorno2 && m1>min_tariffa_andata2){
- price=price+(((m2-m1)*tariffa2)/60);
- }
- if(m1<min_tariffa_ritorno3 && m1>min_tariffa_andata3){
- price=price+(((m2-m1)*tariffa3)/60);
- }
- if(m1<min_tariffa_ritorno4 && m1>min_tariffa_andata4){
- price=price+(((m2-m1)*tariffa4)/60);
- }
- }
- }
- if(flag==0){
- printf("Veicolo non presente\n");
- }
- if (flag==1&&in_park==1){
- printf("Il veicolo è presente\n");
- printf("Numero di accessi=%d\n",cont);
- printf("Il veicolo non è uscito dal parcheggio\n");
- printf("Costo parcheggio=%.2f",price);
- }
- if (flag==1&&in_park==0){
- printf("Il veicolo è presente\n");
- printf("Numero di accessi=%d\n",cont);
- printf("Il veicolo è uscito dal parcheggio\n");
- printf("Costo parcheggio=%.2f",price);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement