Teste de dactylo turbo c++2 devc++4

Description

teste votre saisie

Source / Exemple :


/*  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  */

Conclusion :


/* PROGRAMME EN C SOUS DOS TURBO C++2 DEVC++4
ecrit le 22-01-2003 par cmarsc
teste de dactylo */

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.