Advertisement
dizzy94

wejsciowka_lab8

Apr 20th, 2017
22
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.64 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <errno.h>
  5. #include <assert.h>
  6. #include <time.h>
  7. #include <math.h>
  8. #include <string.h>
  9.  
  10. FILE* logPlik;
  11.  
  12. int exist(char* nazwaPliku, char **argv)
  13. {
  14.     FILE* plik;
  15.     plik = fopen(nazwaPliku, "r");
  16.     if (plik)
  17.     {
  18.         //istnieje
  19.         fclose(plik);
  20.         return 1;
  21.     }
  22.     else
  23.     {
  24.         //nie isntieje
  25.         printf("\nplik o podanej nazwie jest wlasnie zakladany i tworzony w: \n%s\n", argv[0]);
  26.         return 0;
  27.     }
  28. }
  29.  
  30. void wez_czas(char * czas) {
  31.     struct tm * timeinfo;
  32.     time_t rawtime;
  33.     time(&rawtime);
  34.     timeinfo = localtime(&rawtime);
  35.     strftime(czas, 80, "%Y.%m.%d %H:%M : %S ", timeinfo);
  36. }
  37.  
  38. void dodaj_log(char tresc[80]) {
  39.     char czas[80];
  40.     wez_czas(czas);
  41.     fprintf(logPlik, "%s %s\n", czas, tresc);
  42. }
  43.  
  44.  
  45. int main(int argc, char **argv)
  46. {
  47.     srand(time(NULL));
  48.  
  49.     char nick[30], wyjsciowy[20];
  50.     char c;
  51.     char *tempChar, *tab;
  52.     int trafiony = 0;
  53.     double naturalna;
  54.     time_t start, koniec;
  55.     FILE *wyjscie;
  56.  
  57.     logPlik = fopen("log.txt", "w");
  58.     if (logPlik == NULL)
  59.     {
  60.         printf("Nie udalo sie otworzyc pliku: %s\n", strerror(errno));
  61.         return 1;
  62.     }
  63.  
  64.     printf("Podaj nick: ");
  65.     scanf("%s", &nick);
  66.     dodaj_log("Pobrano nick");
  67.     printf("\nPodaj liczbe naturalna: ");
  68.     scanf("%lf", &naturalna);
  69.     dodaj_log("Pobrano liczbe naturalna");
  70.  
  71.     assert(naturalna > 0.0 && round(naturalna) - naturalna == 0.0);
  72.  
  73.     tab = (char*)malloc(naturalna + 1);
  74.     tempChar = (char*)malloc(naturalna + 1);
  75.  
  76.     printf("\n\n");
  77.  
  78.     for (int i = 0; i < naturalna; i++)
  79.     {
  80.         if (i % 2 == 0)
  81.             c = rand() % 26 + 97;
  82.         else {
  83.             c = rand() % 10 + 48;
  84.         }
  85.         tab[i] = c;
  86.     }
  87.  
  88.     printf("Ilosc prob to: %.lf\n", naturalna);
  89.  
  90.     printf("Wpisz znaki wyswietlane na ekranie:\n");
  91.     time(&start);
  92.     for (int i = 0; i < naturalna; i++)
  93.     {
  94.         printf("\nWcisnij klawisz %c    ----> ", tab[i]);
  95.         dodaj_log("Wypisanie znaku");
  96.         scanf("%s", &tempChar[i]);
  97.         if (tempChar[i] == tab[i])
  98.         {
  99.             trafiony++;
  100.             dodaj_log("Poprawana odpowiedz");
  101.  
  102.         }
  103.         else {
  104.             dodaj_log("Bledna odpowiedz");
  105.         }
  106.     }
  107.  
  108.     time(&koniec);
  109.     double diff_t = difftime(koniec, start);
  110.     printf("\nPomiar czasu: %.01fs\n", diff_t);
  111.     printf("\nTrafionych %d/%.lf\n", trafiony, naturalna);
  112.  
  113.  
  114.     strcpy(wyjsciowy, nick);
  115.     strcat(wyjsciowy, ".txt");
  116.     printf("%s", wyjsciowy);
  117.  
  118.     if (exist(wyjsciowy,argv) == 0)
  119.         printf("\nPlik %s jeszcze nie istnieje.\n", wyjsciowy);
  120.  
  121.     wyjscie = fopen(wyjsciowy, "w");
  122.  
  123.     fprintf(wyjscie, "%d trafionych\n", trafiony);
  124.     fprintf(wyjscie, "%.lf s\n", diff_t);
  125.  
  126.  
  127.     free(tab);
  128.     free(tempChar);
  129.     dodaj_log("Zakonczenie pracy programu");
  130.     fclose(logPlik);
  131.     fclose(wyjscie);
  132.     system("pause");
  133.     return 0;
  134. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement