Dokumentace souboru cqlearntest.c

#include "cqlearntest.h"
#include "cqtools.h"
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <time.h>
#include <string.h>
#include <stdarg.h>

Funkce

void print (const char *format,...)
void showQuestion (TItem *item, char choice)
void showExplanation (TItem *item)
static void swapItems (TItem *a, TItem *b)
static unsigned int getRandom (unsigned int max)
void shuffle (TItem *items[], unsigned int length)
void copyAndShuffle (TItem *items[], const TTestData *data)
static int waitForKey (char *msg)
void printResult (char *title, int right, int answered, int total)
void showRemain (unsigned int remain)
void myErase ()
void runTest (const TTestData *data)
void runLearning (const TTestData *data)

Proměnné

const char CHOICE_ALL = '\0'

Dokumentace funkcí

void copyAndShuffle ( TItem items[],
const TTestData data 
)

Zkopíruje ukazatele na prvky seznamu do pole a pak jej náhodnì zamíchá. Pole items musí mít alokováno minimálnì data->total polo¾ek.

Odkazuje se na testdata::first, item::next, shuffle() a testdata::total.

Používá se v runLearning() a runTest().

static unsigned int getRandom ( unsigned int  max  )  [inline, static]

Vrátí náhodné èíslo od 0 do max-1.

Používá se v shuffle().

void myErase (  ) 

Vyma¾e obrazovku.

Používá se v runLearning() a runTest().

void print ( const char *  format,
  ... 
)

Tato funkce slou¾í jako obal pro funkce printf a printw. Pokud je definováno makro YESCURSES, pou¾ije se funkce printw, jinak printf.

Používá se v runTest(), showExplanation(), showQuestion(), showRemain() a waitForKey().

void printResult ( char *  title,
int  right,
int  answered,
int  total 
)

Vypí¹e na obrazovku výsledky. Vypisuje na stdout, ne na curses obrazovku.

Parametry:
title Název testu.
right Poèet správnì zodpovìzených otázek.
answered Poèet zodpovìzených otázek.
total Celkový poèet otázek.

Používá se v runTest().

void runLearning ( const TTestData data  ) 

Spustí program v módu uèení. V tomto módu se nepoèítá ani èas, ani skóre. Program neèeká na odpovìdi od u¾ivatele, ale sám je rovnou zobrazí spolu s vysvìtlením.

Parametry:
data Datová struktura obsahující celý test.

Odkazuje se na copyAndShuffle(), myErase(), showExplanation(), showQuestion(), showRemain(), testdata::title, testdata::total a waitForKey().

Používá se v main().

void runTest ( const TTestData data  ) 

Inicializuje knihovnu ncurses. Spustí program v testovacím módu.

Na zaèátku v¹echny testové otázky náhodnì zamíchá. Poté postupnì zobrazuje otázky a èeká na odpovìdi. Po ka¾dé otázce zobrazí text objasòující správnou odpovìï. Poèítá poèet správných a ¹patných odpovìdí a na konci zobrazí výsledek.

Èas se poèítá pouze pøi èekání na odpovìï. Program mù¾e èekat na zobrazení dal¹í otázky libovolnì dlouho, ani¾ by se tento èas poèítal do celkového èasu vyhrazeného pro test hodnotou data->totalTime.

Nemìní datovou strukturu data.

Parametry:
data Datová struktura obsahující celý test.

Odkazuje se na CHOICE_ALL, copyAndShuffle(), myErase(), print(), printResult(), showExplanation(), showQuestion(), showRemain(), testdata::title, testdata::total, testdata::totalTime a waitForKey().

Používá se v main().

void showExplanation ( TItem item  ) 

Vypí¹e na curses obrazovku vysvìtlení ke správné odpovìdi.

Odkazuje se na item::explLines a print().

Používá se v runLearning() a runTest().

void showQuestion ( TItem item,
char  choice 
)

Zobrazí otázku a nabídne správné odpovìdi.

Parametry:
item Ukazatel na polo¾ku seznamu otázek.
choice Udává odpovìï, kterou má zobrazit. Pokud má hodnotu CHOICE_ALL, zobrazí v¹echny odpovìdi.

Odkazuje se na item::answLines, CHOICE_ALL, print() a item::questLines.

Používá se v runLearning() a runTest().

void showRemain ( unsigned int  remain  ) 

Vytiskne, kolik je¹tì zbývá otázek, podle èeské gramatiky.

Odkazuje se na print().

Používá se v runLearning() a runTest().

void shuffle ( TItem items[],
unsigned int  length 
)

Náhodnì zamíchá pole ukazatelù na polo¾ky testu.

Odkazuje se na getRandom() a swapItems().

Používá se v copyAndShuffle().

static void swapItems ( TItem a,
TItem b 
) [inline, static]

Pøehodí hodnoty dvou ukazatelù.

Používá se v shuffle().

static int waitForKey ( char *  msg  )  [inline, static]

Vytiskne zprávu msg a poèká, dokud u¾ivatel nestiskne klávesu, kterou potom vrátí jako výsledek. Tato funkce pracuje s curses.

Odkazuje se na print().

Používá se v runLearning() a runTest().


Dokumentace proměnných

const char CHOICE_ALL = '\0'

Konstanta pou¾ívaná funkcí showQuestion, jako volba pro vytisknutí v¹ech mo¾ných odpovìdí.

Používá se v runTest() a showQuestion().

David Martinek © 2004, < martinek (zavináè) fit (teèka) vutbr (teèka) cz >