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

Soyez le premier à donner votre avis sur cette source.

Vue 7 509 fois - Téléchargée 200 fois

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

Ajouter un commentaire

Commentaires

D1m3x
Messages postés
402
Date d'inscription
samedi 28 décembre 2002
Statut
Membre
Dernière intervention
21 juillet 2005
1 -
stp, tu serai me dir avec kel compilateur tu a fai ca et pi si tu serai e donner la syntaxe de:
if ( entree_clavier == KEY_O ) est ce ke ca marche ?
D1m3x
Messages postés
402
Date d'inscription
samedi 28 décembre 2002
Statut
Membre
Dernière intervention
21 juillet 2005
1 -
ah na scuse g reponse a tt mes kestions :)
cmarsc
Messages postés
455
Date d'inscription
mercredi 6 mars 2002
Statut
Membre
Dernière intervention
18 décembre 2003
-
je ne comprends pas la 1ère question et les compilateurs avec lesquels sont écrits et testés mes codes sont dans l'entête
D1m3x
Messages postés
402
Date d'inscription
samedi 28 décembre 2002
Statut
Membre
Dernière intervention
21 juillet 2005
1 -
bah en fait je voulai demander si ca ct possible:
if ( entree_clavier == KEY_O ){ § }
Mai javai po fai attenation au constante ke tu avais declarez en haut de ton code alor je me sui di ke ca ce serai juste:

#define KEY_O LeCodeAsciiDeO;

t pi plus bas:

if ( entree_clavier == KEY_O ){ § }

Donc plu besoin dexplication, g tt compri :)

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.