- /* PROGRAMME EN C SOUS DOS TURBO C++2 DEVC++4
- ecrit le 22-01-2003 par cmarsc
- teste de dactylo */
-
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <time.h>
- #include <conio.h> /* devc++4 <conio.c> */
-
- #define KEY_ENTER 13
- #define KEY_ESC 27
- #define KEY_RETURN '\b' /* RETURN pour effacer */
-
- #define COUL_CURSEUR LIGHTGREEN
- #define COUL_TEXTE WHITE
-
- #define NBRE_LIGNES_MAXI 20
- #define LONGUEUR_LIGNE_MAXI 80
-
- static char *texte_a_saisir[] = {
-
- "Le C est un langage de programmation concu pour de multiples utilisations.",
- "Il est souvent associe au systeme UNIX, sur lequel il a ete developpe",
- "car ce systeme est ecrit en C, ainsi que la majorite des logiciels qui",
- "tournent sous UNIX.",
-
- "Neanmoins, ce langage n'est lie a aucune machine ni a aucun systeme",
- "d'exploitation particulier...",
-
- };
-
- void saisir_texte(void);
-
- int main(void) {
-
- char entree_clavier;
-
- clrscr();
- textcolor(YELLOW);
- gotoxy(15,11);
- cprintf("%s %10c %s","ENTREE pour lancer le teste",'\0',"ESC pour quitter");
-
- do {
-
- entree_clavier = getch();
-
- if (entree_clavier == KEY_ESC) exit(0);
-
- } while ( entree_clavier != KEY_ENTER);
-
- clrscr();
-
- saisir_texte();
- getch();
-
- return (EXIT_SUCCESS);
- } /* fin de main */
-
-
- void saisir_texte(void) {
-
- static char texte_tape[NBRE_LIGNES_MAXI][LONGUEUR_LIGNE_MAXI];
-
- int i = 0, ligne = 0, col = 0;
- int nbre_caracteres_tapes = 0, nbre_de_fautes = 0;
- int ligne_de_saisie = 22;
- int depart, fin, secondes_totales, minutes,secondes;
-
- /* calculer le nombre d'elements dans le menu texte_a_saisir */
- int nbre_d_elements = sizeof(texte_a_saisir) / sizeof(texte_a_saisir[0]);
-
- char clavier = '\0';
-
- /* remplir le tableau texte_tape de caracteres NULL */
- memset(texte_tape, '\0',LONGUEUR_LIGNE_MAXI);
-
- textcolor(COUL_TEXTE);
-
- /* afficher les textes */
- for (i = 0; i < nbre_d_elements; i++) {
-
- gotoxy(1,1+i);
- cprintf("%s",texte_a_saisir[i]);
- } /* fin de for (i ...) */
-
-
- i = 0;
- textcolor(COUL_CURSEUR);
-
- depart = clock();
-
- do {
-
- if (i >= LONGUEUR_LIGNE_MAXI || clavier == KEY_ENTER) {
-
- textcolor(DARKGRAY);
- gotoxy(1,1+ligne);
- cprintf("%s",texte_a_saisir[ligne]);
-
- /* effacer la ligne */
- gotoxy(1, ligne_de_saisie);
- cprintf("%80c",'\0');
-
- textcolor(COUL_CURSEUR);
- texte_tape[ligne][i] = '\0';
- i = 0, col = 0, ligne++;
-
- /* quitter si plus de texte a saisir */
- if ( ligne == (nbre_d_elements)) return;
-
- } /* fin de if (i >= LONGUEUR_LIGNE_MAXI ...) */
-
- gotoxy(1,1+ligne);
- cprintf("%s",texte_a_saisir[ligne]);
-
- do {
-
- fin = clock();
- secondes_totales = ( (fin - depart) / CLK_TCK );
- minutes = (secondes_totales) / 60;
- secondes = secondes_totales - (minutes * 60);
-
- gotoxy(1,24);
- cprintf("nbre carateres tapes : %-5d fautes : %-4d temps :%2d min %2d sec ",
- nbre_caracteres_tapes, nbre_de_fautes, minutes, secondes);
- } while ( !kbhit() );
-
-
- clavier = getch();
-
- texte_tape[ligne][i] = clavier;
-
-
- /* detecter les fautes */
- if (texte_a_saisir[ligne][i] != texte_tape[ligne][i] && clavier != KEY_ENTER){
-
- textcolor(RED);
- nbre_de_fautes++;
- } else {
- textcolor(COUL_CURSEUR);
-
- } /* fin de if (texte_a_saisi...) */
-
- gotoxy(1 + col, ligne_de_saisie);
- cprintf("%1c", texte_tape[ligne][i]);
-
- nbre_caracteres_tapes++;
-
- /* annuler le caractere tape */
- if (clavier == KEY_RETURN) {
-
- texte_tape[ligne][i] = '\0';
- if (strlen(texte_tape[ligne]) > 0 ) {
-
- --i;
- gotoxy(1+i,ligne_de_saisie);
- cprintf("%1c",'\0');
-
- } /* fin de if (strlen(texte_tape[ligne])...) */
-
- } else {
- i++;
- } /* fin de if (clavier == KEY_RETURN) */
-
- col = i;
-
- } while (clavier != KEY_ESC && ligne != nbre_d_elements);
-
-
- return ;
- } /* fin de la fonction saisir_texte */
/* PROGRAMME EN C SOUS DOS TURBO C++2 DEVC++4
ecrit le 22-01-2003 par cmarsc
teste de dactylo */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <conio.h> /* devc++4 <conio.c> */
#define KEY_ENTER 13
#define KEY_ESC 27
#define KEY_RETURN '\b' /* RETURN pour effacer */
#define COUL_CURSEUR LIGHTGREEN
#define COUL_TEXTE WHITE
#define NBRE_LIGNES_MAXI 20
#define LONGUEUR_LIGNE_MAXI 80
static char *texte_a_saisir[] = {
"Le C est un langage de programmation concu pour de multiples utilisations.",
"Il est souvent associe au systeme UNIX, sur lequel il a ete developpe",
"car ce systeme est ecrit en C, ainsi que la majorite des logiciels qui",
"tournent sous UNIX.",
"Neanmoins, ce langage n'est lie a aucune machine ni a aucun systeme",
"d'exploitation particulier...",
};
void saisir_texte(void);
int main(void) {
char entree_clavier;
clrscr();
textcolor(YELLOW);
gotoxy(15,11);
cprintf("%s %10c %s","ENTREE pour lancer le teste",'\0',"ESC pour quitter");
do {
entree_clavier = getch();
if (entree_clavier == KEY_ESC) exit(0);
} while ( entree_clavier != KEY_ENTER);
clrscr();
saisir_texte();
getch();
return (EXIT_SUCCESS);
} /* fin de main */
void saisir_texte(void) {
static char texte_tape[NBRE_LIGNES_MAXI][LONGUEUR_LIGNE_MAXI];
int i = 0, ligne = 0, col = 0;
int nbre_caracteres_tapes = 0, nbre_de_fautes = 0;
int ligne_de_saisie = 22;
int depart, fin, secondes_totales, minutes,secondes;
/* calculer le nombre d'elements dans le menu texte_a_saisir */
int nbre_d_elements = sizeof(texte_a_saisir) / sizeof(texte_a_saisir[0]);
char clavier = '\0';
/* remplir le tableau texte_tape de caracteres NULL */
memset(texte_tape, '\0',LONGUEUR_LIGNE_MAXI);
textcolor(COUL_TEXTE);
/* afficher les textes */
for (i = 0; i < nbre_d_elements; i++) {
gotoxy(1,1+i);
cprintf("%s",texte_a_saisir[i]);
} /* fin de for (i ...) */
i = 0;
textcolor(COUL_CURSEUR);
depart = clock();
do {
if (i >= LONGUEUR_LIGNE_MAXI || clavier == KEY_ENTER) {
textcolor(DARKGRAY);
gotoxy(1,1+ligne);
cprintf("%s",texte_a_saisir[ligne]);
/* effacer la ligne */
gotoxy(1, ligne_de_saisie);
cprintf("%80c",'\0');
textcolor(COUL_CURSEUR);
texte_tape[ligne][i] = '\0';
i = 0, col = 0, ligne++;
/* quitter si plus de texte a saisir */
if ( ligne == (nbre_d_elements)) return;
} /* fin de if (i >= LONGUEUR_LIGNE_MAXI ...) */
gotoxy(1,1+ligne);
cprintf("%s",texte_a_saisir[ligne]);
do {
fin = clock();
secondes_totales = ( (fin - depart) / CLK_TCK );
minutes = (secondes_totales) / 60;
secondes = secondes_totales - (minutes * 60);
gotoxy(1,24);
cprintf("nbre carateres tapes : %-5d fautes : %-4d temps :%2d min %2d sec ",
nbre_caracteres_tapes, nbre_de_fautes, minutes, secondes);
} while ( !kbhit() );
clavier = getch();
texte_tape[ligne][i] = clavier;
/* detecter les fautes */
if (texte_a_saisir[ligne][i] != texte_tape[ligne][i] && clavier != KEY_ENTER){
textcolor(RED);
nbre_de_fautes++;
} else {
textcolor(COUL_CURSEUR);
} /* fin de if (texte_a_saisi...) */
gotoxy(1 + col, ligne_de_saisie);
cprintf("%1c", texte_tape[ligne][i]);
nbre_caracteres_tapes++;
/* annuler le caractere tape */
if (clavier == KEY_RETURN) {
texte_tape[ligne][i] = '\0';
if (strlen(texte_tape[ligne]) > 0 ) {
--i;
gotoxy(1+i,ligne_de_saisie);
cprintf("%1c",'\0');
} /* fin de if (strlen(texte_tape[ligne])...) */
} else {
i++;
} /* fin de if (clavier == KEY_RETURN) */
col = i;
} while (clavier != KEY_ESC && ligne != nbre_d_elements);
return ;
} /* fin de la fonction saisir_texte */