Advertisement
elektryk798

C_Kartkowka_3_spalanie

Jan 25th, 2017
372
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.18 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. struct samochod
  5. {
  6.     char model[30];
  7.     double pojemnosc;
  8.     double spalanie;
  9. };
  10.  
  11. void dodaj(char *nazwa);
  12. void wyswietl(char *nazwa);
  13. void czytaj(struct samochod s);
  14. int greenpeace(char *nazwa);
  15.  
  16. int main()
  17. {
  18.     char nazwa='a',znak='X';
  19.     while (znak!='x')
  20.     {
  21.         znak=getchar();
  22.         switch (znak)
  23.         {
  24.             case 'd':
  25.                 dodaj(nazwa);
  26.             break;
  27.             case 'c':
  28.                 wyswietl(nazwa);
  29.             break;
  30.             case 'g':
  31.                 printf("USUNIETO %d samochodow: ",greenpeace(nazwa));
  32.             break;
  33.         }
  34.     }
  35.     return 0;
  36. }
  37.  
  38. void dodaj(char *nazwa)
  39. {
  40.     FILE*plik=fopen("plik.txt","a");
  41.     struct samochod s;
  42.     printf("\npodaj model:\n");
  43.     fflush(stdin);
  44.     scanf("%s",s.model);
  45.     printf("\npodaj pojemnosc:\n");
  46.     fflush(stdin);
  47.     scanf("%lf",&s.pojemnosc);
  48.     printf("\npodaj spalanie:\n");
  49.     fflush(stdin);
  50.     scanf("%lf",&s.spalanie);
  51.     fwrite(&s,sizeof(struct samochod),1,plik);
  52.     fclose(plik);
  53. }
  54. void wyswietl(char *nazwa)
  55. {
  56.     FILE*plik=fopen("plik.txt","r");
  57.     struct samochod s;
  58.     while(fread(&s,sizeof(struct samochod),1,plik))
  59.     {
  60.         czytaj(s);
  61.     }
  62.     fclose(plik);
  63. }
  64. void czytaj(struct samochod s)
  65. {
  66.     printf("\nModel: %s\n",s.model);
  67.     printf("Pojemnosc: %lf\n",s.pojemnosc);
  68.     printf("Spalanie: %lf\n",s.spalanie);
  69. }
  70. int greenpeace(char *nazwa)
  71. {
  72.     FILE*plik1=fopen("plik.txt","r");
  73.     FILE*plik2=fopen("tmp.txt","a");
  74.     int ile=0;
  75.     double maxspalanie=0;
  76.     struct samochod s;
  77.     while(fread(&s,sizeof(struct samochod),1,plik1))
  78.     {
  79.         if(s.spalanie>maxspalanie)
  80.             maxspalanie=s.spalanie;
  81.     }
  82.     fseek(plik1,0,0);
  83.     while(fread(&s,sizeof(struct samochod),1,plik1))
  84.     {
  85.         if(s.spalanie!=maxspalanie)
  86.             fwrite(&s,sizeof(struct samochod),1,plik2);
  87.         else
  88.             ile++;
  89.     }
  90.     fclose(plik1);
  91.     fclose(plik2);
  92.     remove("plik.txt");
  93.      if(rename("tmp.txt","plik.txt")==0)
  94.         printf("ZMIENIONO NAZWE");
  95.     else
  96.         printf("\nNIE ZMIENIONO NAZWY, BLAD");
  97.     return ile;
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement