Facebook
From dfdf, 7 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 281
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <ctype.h>
  4.  
  5. #define N 50
  6.  
  7. /*----- MENU GLOWNE -----*/
  8. int menu() /* zwraca numer wybranej opcji */
  9. {
  10.     char wybor;
  11.     printf("1. Zrob test\n2. Stworz baze pytan\n3. Wyjscie z programu\n");
  12.     printf("Wybor: ");
  13.     while(scanf("%c", &wybor))
  14.     {
  15.         if (wybor == '1') return 1;
  16.         else if (wybor == '2') return 2;
  17.         else if (wybor == '3') return 3;
  18.         else
  19.         {
  20.             system("cls");
  21.             menu();
  22.         }
  23.     }
  24. }
  25.  
  26. /*----- ZROB TEST -----*/
  27. void zrob_test() /* zwraca liczbe pytan */
  28. {
  29.     int c, nr_linii=0, punkty=0, nr_pytania=0;
  30.     char odpowiedz;
  31.  
  32.     /* czytanie z pliku */
  33.     char nazwa_pliku[N];
  34.     printf("Podaj nazwe pliku z pytaniami: ");
  35.     scanf("%s", nazwa_pliku);
  36.     FILE *fp;
  37.     if((fp=fopen(nazwa_pliku, "r"))==NULL)
  38.     {
  39.         printf("Nie moge otworzyc pliku!\n");
  40.         exit(1);
  41.     }
  42.  
  43.     while((c=fgetc(fp))!=EOF)
  44.     {
  45.         fputc(c, stdout);
  46.         if(c == '\n')
  47.         {
  48.             switch(nr_linii)
  49.             {
  50.                 case 0: {printf("Tresc: "); break;}
  51.                 case 1: {printf("A: "); break;}
  52.                 case 2: {printf("B: "); break;}
  53.                 case 3: {printf("C: "); break;}
  54.                 case 4: {printf("D: "); break;}
  55.                 case 5:
  56.                     {
  57.                         printf("Twoja odpowiedz: ");
  58.                         scanf(" %c", &odpowiedz);
  59.                         odpowiedz = toupper(odpowiedz);
  60.                         c = fgetc(fp);
  61.                         if(odpowiedz == c)
  62.                         {
  63.                             printf("Dobra odpowiedz!\n");
  64.                             punkty++;
  65.                         }
  66.                         else
  67.                         {
  68.                             printf("Zla odpowiedz!\n");
  69.                         }
  70.                         nr_pytania++;
  71.                     }
  72.             }
  73.             nr_linii++;
  74.             if(nr_linii==6) nr_linii = 0;
  75.         }
  76.     }
  77.  
  78.     printf("Koniec testu! Twoj wynik: %d/%d", punkty, nr_pytania);
  79.  
  80.     fclose(fp);
  81.     getchar(); getchar();
  82.     system("cls");
  83. }
  84.  
  85. /*----- STWORZ BAZE PYTAN -----*/
  86.  
  87. void stworz_baze()
  88. {
  89.     char nazwa_testu[N];
  90.     char nazwa_pliku[N];
  91.     char linia[N];
  92.     int liczba_pytan;
  93.     int i, j, c;
  94.  
  95.     printf("Podaj nazwe pliku: ");
  96.     scanf(" %s", nazwa_pliku);
  97.  
  98.     printf("Podaj nazwe testu: ");
  99.     scanf(" %[^\n]", nazwa_testu);
  100.  
  101.     printf("Podaj liczbe pytan: ");
  102.     scanf(" %d", &liczba_pytan);
  103.  
  104.     /* otwarcie pliku */
  105.     FILE *fp;
  106.     if((fp=fopen(nazwa_pliku, "a"))==NULL)
  107.     {
  108.         printf("Nie moge otworzyc pliku!\n");
  109.         exit(1);
  110.     }
  111.  
  112.     /* pisanie do pliku */
  113.     fprintf(fp, "Nazwa testu: %s", nazwa_testu);
  114.  
  115.     for(i=0; i<liczba_pytan; i++)
  116.         {
  117.             printf("Podaj tresc %d pytania: ", i+1);
  118.             scanf(" %[^\n]", linia);
  119.             fprintf(fp, "\n%s", linia);
  120.             printf("Podaj odpowiedz A: ");
  121.             scanf(" %[^\n]", linia);
  122.             fprintf(fp, "\n%s", linia);
  123.             printf("Podaj odpowiedz B: ");
  124.             scanf(" %[^\n]", linia);
  125.             fprintf(fp, "\n%s", linia);
  126.             printf("Podaj odpowiedz C: ");
  127.             scanf(" %[^\n]", linia);
  128.             fprintf(fp, "\n%s", linia);
  129.             printf("Podaj odpowiedz D: ");
  130.             scanf(" %[^\n]", linia);
  131.             fprintf(fp, "\n%s", linia);
  132.             printf("Podaj prawidlowa odpowiedz (A, B, C, lub D): ");
  133.             scanf(" %[^\n]", linia);
  134.             fprintf(fp, "\n%s", linia);
  135.         }
  136.  
  137.     fclose(fp);
  138.     printf("Baza pytan utworzona pomyslnie!");
  139.     getchar(); getchar();
  140.     system("cls");
  141. }
  142.  
  143. /*----- MAIN -----*/
  144. int main()
  145. {
  146.     while(1)
  147.     {
  148.         switch(menu())
  149.         {
  150.             case 1:
  151.                 {
  152.                     zrob_test();
  153.                     break;
  154.                 }
  155.             case 2:
  156.                 {
  157.                     stworz_baze();
  158.                     break;
  159.                 }
  160.             case 3:
  161.                 {
  162.                     exit(0);
  163.                     break;
  164.                 }
  165.             default:
  166.                 {
  167.                     printf("Nie ma takiej opcji w menu!\n");
  168.                     getchar();
  169.                     system("cls");
  170.                 }
  171.         }
  172.     }
  173. }
  174.