Advertisement
Guest User

hgbfgvdfv

a guest
Jan 22nd, 2017
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.45 KB | None | 0 0
  1. typedef struct prez{
  2. int ore_arrivo;
  3. int minuti_arrivo;
  4. int ore_ritorno;
  5. int minuti_ritorno;
  6. float prezzo;
  7. }prezzi;
  8.  
  9. typedef struct arrive{
  10. char s[7];
  11. int ore_arrivo;
  12. int minuti_arrivo;
  13. int ore_ritorno;
  14. int minuti_ritorno;
  15. }targhe;
  16.  
  17. int main(int argc,char *argv[])
  18. {
  19.  
  20.  
  21. FILE *fp;
  22. int i,j,flag,in_park,min_tariffa_andata1,min_tariffa_andata2,min_tariffa_andata3,min_tariffa_andata4;
  23. int min_tariffa_ritorno1, min_tariffa_ritorno2,min_tariffa_ritorno3,min_tariffa_ritorno4;
  24. float tariffa1,tariffa2,tariffa3,tariffa4;
  25. int m1,m2;
  26. int cont=0;
  27. float price=0;
  28. prezzi vettore[4];
  29.  
  30. targhe vett_targhe[200];
  31.  
  32. fp=fopen("prezzi.txt","r");
  33. if(fp==NULL){
  34. printf("Errore fle");
  35. return -1;
  36. }
  37.  
  38. for(i=0;i<4;i++){
  39. 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);
  40. }
  41. min_tariffa_andata1=(vettore[0].ore_arrivo*60)+vettore[0].minuti_arrivo;
  42. min_tariffa_ritorno1=(vettore[0].ore_ritorno*60)+vettore[0].minuti_ritorno;
  43. tariffa1=vettore[0].prezzo;
  44.  
  45.  
  46. min_tariffa_andata2=(vettore[1].ore_arrivo*60)+vettore[1].minuti_arrivo;
  47. min_tariffa_ritorno2=(vettore[1].ore_ritorno*60)+vettore[1].minuti_ritorno;
  48. tariffa2=vettore[1].prezzo;
  49.  
  50. min_tariffa_andata3=(vettore[2].ore_arrivo*60)+vettore[2].minuti_arrivo;
  51. min_tariffa_ritorno3=(vettore[2].ore_ritorno*60)+vettore[2].minuti_ritorno;
  52. tariffa3=vettore[2].prezzo;
  53.  
  54. min_tariffa_andata4=(vettore[3].ore_arrivo*60)+vettore[3].minuti_arrivo;
  55. min_tariffa_ritorno4=(vettore[3].ore_ritorno*60)+vettore[3].minuti_ritorno;
  56. tariffa4=vettore[3].prezzo;
  57.  
  58. fclose(fp);
  59.  
  60. fp=fopen(argv[1],"r");
  61. if(fp==NULL){
  62. printf("Errore apertura file");
  63. return -2;
  64. }
  65. i=0;
  66. 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){
  67. i++;
  68. }
  69. fclose(fp);
  70. flag=0;
  71. in_park=1;
  72.  
  73. for(j=0;j<i;j++){
  74. if(strcmp(argv[2],vett_targhe[j].s)==0 && vett_targhe[j].ore_ritorno==99 && vett_targhe[j].minuti_ritorno==99){
  75. flag=1;
  76. cont++;
  77. in_park=1;
  78. }
  79. if(strcmp(argv[2],vett_targhe[j].s)==0 &&vett_targhe[j].ore_ritorno!=99){
  80. flag=1;
  81. in_park=0;
  82. cont++;
  83. m1=(vett_targhe[j].ore_arrivo*60)+vett_targhe[j].minuti_arrivo;
  84. m2=(vett_targhe[j].ore_ritorno*60)+vett_targhe[j].minuti_ritorno;
  85. if(m1<min_tariffa_ritorno1 && m1>min_tariffa_andata1){
  86. price=price+(((m2-m1)*tariffa1)/60);
  87. }
  88. if(m1<min_tariffa_ritorno2 && m1>min_tariffa_andata2){
  89. price=price+(((m2-m1)*tariffa2)/60);
  90. }
  91. if(m1<min_tariffa_ritorno3 && m1>min_tariffa_andata3){
  92. price=price+(((m2-m1)*tariffa3)/60);
  93. }
  94. if(m1<min_tariffa_ritorno4 && m1>min_tariffa_andata4){
  95. price=price+(((m2-m1)*tariffa4)/60);
  96. }
  97. }
  98. }
  99. if(flag==0){
  100. printf("Veicolo non presente\n");
  101. }
  102. if (flag==1&&in_park==1){
  103. printf("Il veicolo è presente\n");
  104. printf("Numero di accessi=%d\n",cont);
  105. printf("Il veicolo non è uscito dal parcheggio\n");
  106. printf("Costo parcheggio=%.2f",price);
  107. }
  108. if (flag==1&&in_park==0){
  109. printf("Il veicolo è presente\n");
  110. printf("Numero di accessi=%d\n",cont);
  111. printf("Il veicolo è uscito dal parcheggio\n");
  112. printf("Costo parcheggio=%.2f",price);
  113. }
  114.  
  115. return 0;
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement