#include #include #include #define N 50 /*----- MENU GLOWNE -----*/ int menu() /* zwraca numer wybranej opcji */ { char wybor; printf("1. Zrob test\n2. Stworz baze pytan\n3. Wyjscie z programu\n"); printf("Wybor: "); while(scanf("%c", &wybor)) { if (wybor == '1') return 1; else if (wybor == '2') return 2; else if (wybor == '3') return 3; else { system("cls"); menu(); } } } /*----- ZROB TEST -----*/ void zrob_test() /* zwraca liczbe pytan */ { int c, nr_linii=0, punkty=0, nr_pytania=0; char odpowiedz; /* czytanie z pliku */ char nazwa_pliku[N]; printf("Podaj nazwe pliku z pytaniami: "); scanf("%s", nazwa_pliku); FILE *fp; if((fp=fopen(nazwa_pliku, "r"))==NULL) { printf("Nie moge otworzyc pliku!\n"); exit(1); } while((c=fgetc(fp))!=EOF) { fputc(c, stdout); if(c == '\n') { switch(nr_linii) { case 0: {printf("Tresc: "); break;} case 1: {printf("A: "); break;} case 2: {printf("B: "); break;} case 3: {printf("C: "); break;} case 4: {printf("D: "); break;} case 5: { printf("Twoja odpowiedz: "); scanf(" %c", &odpowiedz); odpowiedz = toupper(odpowiedz); c = fgetc(fp); if(odpowiedz == c) { printf("Dobra odpowiedz!\n"); punkty++; } else { printf("Zla odpowiedz!\n"); } nr_pytania++; } } nr_linii++; if(nr_linii==6) nr_linii = 0; } } printf("Koniec testu! Twoj wynik: %d/%d", punkty, nr_pytania); fclose(fp); getchar(); getchar(); system("cls"); } /*----- STWORZ BAZE PYTAN -----*/ void stworz_baze() { char nazwa_testu[N]; char nazwa_pliku[N]; char linia[N]; int liczba_pytan; int i, j, c; printf("Podaj nazwe pliku: "); scanf(" %s", nazwa_pliku); printf("Podaj nazwe testu: "); scanf(" %[^\n]", nazwa_testu); printf("Podaj liczbe pytan: "); scanf(" %d", &liczba_pytan); /* otwarcie pliku */ FILE *fp; if((fp=fopen(nazwa_pliku, "a"))==NULL) { printf("Nie moge otworzyc pliku!\n"); exit(1); } /* pisanie do pliku */ fprintf(fp, "Nazwa testu: %s", nazwa_testu); for(i=0; i