pieniakoskar

Parking

Mar 19th, 2018
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.76 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <string.h>
  4.  
  5. struct Parkowanie{
  6. char numer[8];
  7. int czas;
  8. char kategoria[1];
  9. };
  10.  
  11. int Wczytaj(struct Parkowanie* parkowanie)
  12. {
  13. FILE* plik = fopen("parking.txt", "r+");
  14. int licznik;
  15. fscanf(plik, "%d", &licznik);
  16.  
  17. for(int i = 0; i < licznik; i++){
  18. fscanf(plik, "%s" ,&parkowanie[i].numer);
  19. fscanf(plik, "%d" ,&parkowanie[i].czas);
  20. fscanf(plik, "%s" ,&parkowanie[i].kategoria);
  21. }
  22. fclose(plik);
  23. return licznik;
  24. }
  25.  
  26. void WyswielZysk(float czasA, float czasB, float czasC)
  27. {
  28. float stawkaA = 1.23, stawkaB = 2.05, stawkaC = 2.99;
  29. printf("[ZYSK Z PARKINGU]\n");
  30. printf("Zysk z kategorii A: %.2f zl",(czasA/60)*stawkaA);
  31. printf("\nZysk z kategorii B: %.2f zl",(czasB/60)*stawkaB);
  32. printf("\nZysk z kategorii C: %.2f zl",(czasC/60)*stawkaC);
  33. }
  34.  
  35. void WyswietlSriMaxCzas(int ileA, int ileB, int ileC, float czasA, float czasB, float czasC, int maxA, int maxB, int maxC)
  36. {
  37. printf("\n\n[Sredni i maksymalny czas postoju]");
  38. printf("\nKategoria A: \n\tSreni czas - %.2f min\n\tMaksymalny czas - %d", czasA/ileA, maxA);
  39. printf("\nKategoria B: \n\tSreni czas - %.2f min\n\tMaksymalny czas - %d", czasB/ileB, maxB);
  40. printf("\nKategoria C: \n\tSreni czas - %.2f min\n\tMaksymalny czas - %d", czasC/ileC, maxC);
  41. }
  42. int main()
  43. {
  44. Parkowanie parkowanie[100];
  45. int w_bazie = Wczytaj(parkowanie);
  46. int ileA = 0, ileB = 0, ileC = 0, czasA = 0, czasB = 0, czasC = 0;
  47. int maxA = 0, maxB = 0, maxC = 0;
  48.  
  49. //obliczam ilosc samochodow danej kategorii, czas dla danej kategorii
  50. for(int i = 0; i < w_bazie; i++){
  51. if(strcmp(parkowanie[i].kategoria, "A")== 0){
  52. ileA++;
  53. czasA += parkowanie[i].czas;
  54. }
  55. if(strcmp(parkowanie[i].kategoria, "B")== 0){
  56. ileB++;
  57. czasB += parkowanie[i].czas;
  58. }
  59. if(strcmp(parkowanie[i].kategoria, "C")== 0){
  60. ileC++;
  61. czasC += parkowanie[i].czas;
  62. }
  63. }
  64.  
  65. //kto najdluzej stoi
  66. printf("\n\nNajwiecej czasu na parkingu spedza kategoria ");
  67. if((czasA > czasB) && (czasA > czasC)) printf("A");
  68. if((czasB > czasA) && (czasB > czasC)) printf("B");
  69. if((czasC > czasA) && (czasC > czasB)) printf("C");
  70.  
  71. // maksymalny czas postoju poszczegolnych kategorii
  72.  
  73. for(int i = 0; i < w_bazie; i++)
  74. {
  75. if(strcmp(parkowanie[i].kategoria, "A") == 0){
  76. if(parkowanie[i].czas > maxA)
  77. maxA = parkowanie[i].czas;
  78. }
  79.  
  80. if(strcmp(parkowanie[i].kategoria, "B") == 0){
  81. if(parkowanie[i].czas > maxB)
  82. maxB = parkowanie[i].czas;
  83. }
  84.  
  85. if(strcmp(parkowanie[i].kategoria, "C") == 0){
  86. if(parkowanie[i].czas > maxC)
  87. maxC = parkowanie[i].czas;
  88. }
  89. }
  90. WyswielZysk(czasA, czasB, czasC);
  91. WyswietlSriMaxCzas(ileA, ileB, ileC, czasA, czasB, czasC, maxA, maxB, maxC);
  92. printf("\n\nAby zakonczyc wcisnij dowolny klawisz...");
  93. getch();
  94. return 0;
  95. }
Add Comment
Please, Sign In to add comment