Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <conio.h>
- #include <string.h>
- struct Parkowanie{
- char numer[8];
- int czas;
- char kategoria[1];
- };
- int Wczytaj(struct Parkowanie* parkowanie)
- {
- FILE* plik = fopen("parking.txt", "r+");
- int licznik;
- fscanf(plik, "%d", &licznik);
- for(int i = 0; i < licznik; i++){
- fscanf(plik, "%s" ,&parkowanie[i].numer);
- fscanf(plik, "%d" ,&parkowanie[i].czas);
- fscanf(plik, "%s" ,&parkowanie[i].kategoria);
- }
- fclose(plik);
- return licznik;
- }
- void WyswielZysk(float czasA, float czasB, float czasC)
- {
- float stawkaA = 1.23, stawkaB = 2.05, stawkaC = 2.99;
- printf("[ZYSK Z PARKINGU]\n");
- printf("Zysk z kategorii A: %.2f zl",(czasA/60)*stawkaA);
- printf("\nZysk z kategorii B: %.2f zl",(czasB/60)*stawkaB);
- printf("\nZysk z kategorii C: %.2f zl",(czasC/60)*stawkaC);
- }
- void WyswietlSriMaxCzas(int ileA, int ileB, int ileC, float czasA, float czasB, float czasC, int maxA, int maxB, int maxC)
- {
- printf("\n\n[Sredni i maksymalny czas postoju]");
- printf("\nKategoria A: \n\tSreni czas - %.2f min\n\tMaksymalny czas - %d", czasA/ileA, maxA);
- printf("\nKategoria B: \n\tSreni czas - %.2f min\n\tMaksymalny czas - %d", czasB/ileB, maxB);
- printf("\nKategoria C: \n\tSreni czas - %.2f min\n\tMaksymalny czas - %d", czasC/ileC, maxC);
- }
- int main()
- {
- Parkowanie parkowanie[100];
- int w_bazie = Wczytaj(parkowanie);
- int ileA = 0, ileB = 0, ileC = 0, czasA = 0, czasB = 0, czasC = 0;
- int maxA = 0, maxB = 0, maxC = 0;
- //obliczam ilosc samochodow danej kategorii, czas dla danej kategorii
- for(int i = 0; i < w_bazie; i++){
- if(strcmp(parkowanie[i].kategoria, "A")== 0){
- ileA++;
- czasA += parkowanie[i].czas;
- }
- if(strcmp(parkowanie[i].kategoria, "B")== 0){
- ileB++;
- czasB += parkowanie[i].czas;
- }
- if(strcmp(parkowanie[i].kategoria, "C")== 0){
- ileC++;
- czasC += parkowanie[i].czas;
- }
- }
- //kto najdluzej stoi
- printf("\n\nNajwiecej czasu na parkingu spedza kategoria ");
- if((czasA > czasB) && (czasA > czasC)) printf("A");
- if((czasB > czasA) && (czasB > czasC)) printf("B");
- if((czasC > czasA) && (czasC > czasB)) printf("C");
- // maksymalny czas postoju poszczegolnych kategorii
- for(int i = 0; i < w_bazie; i++)
- {
- if(strcmp(parkowanie[i].kategoria, "A") == 0){
- if(parkowanie[i].czas > maxA)
- maxA = parkowanie[i].czas;
- }
- if(strcmp(parkowanie[i].kategoria, "B") == 0){
- if(parkowanie[i].czas > maxB)
- maxB = parkowanie[i].czas;
- }
- if(strcmp(parkowanie[i].kategoria, "C") == 0){
- if(parkowanie[i].czas > maxC)
- maxC = parkowanie[i].czas;
- }
- }
- WyswielZysk(czasA, czasB, czasC);
- WyswietlSriMaxCzas(ileA, ileB, ileC, czasA, czasB, czasC, maxA, maxB, maxC);
- printf("\n\nAby zakonczyc wcisnij dowolny klawisz...");
- getch();
- return 0;
- }
Add Comment
Please, Sign In to add comment