cs_DJOL
Messages postés3Date d'inscriptionlundi 21 avril 2003StatutMembreDernière intervention22 avril 2003
-
22 avril 2003 à 10:36
cs_payen
Messages postés252Date d'inscriptionmercredi 25 octobre 2000StatutMembreDernière intervention 1 mai 2005
-
22 avril 2003 à 10:58
Dans mon sujet, j'ai le diagramme UML de la classe, celle ci comporte 2 attributs privés: ValMaxCompteur et ValCompteur.
et 4 methodes publics:Incrementer() ( incrementer le compteur binaire),Reset() ( pour initialiser a n'importe quel moment le compteur) ,GetValeurCompteur ( pr afficher a n'importe quel moment la valeur du compteur GetValeur) et CCompteur() (constructeur de l'objet CCompteur).
/******************************************
* Nom du fichier source:'methodes'.cpp
* Date:20/04/03
* But:réaliser une classe compteur
******************************************/
int masqueA=0000000001;
int masqueB=1111111110;
int a=1;
CCompteur::CCompteur() //declaration constructeur
{
int compt;
ValCompteur=0; //initialisation du compteur à la création de l'objet
ValMaxCompteur=1;
for(compt=0;compt!=BITCPTR;compt++) //calcul de la valeur maximale du compteur
{
ValMaxCompteur=ValMaxCompteur*2;
}
ValMaxCompteur=ValMaxCompteur-1;
printf("ValMaxCompteur = %d\n",ValMaxCompteur);
}
void CCompteur::Reset()
{
int compt;
for(compt=0;compt!=BITCPTR;compt++)
{
ValCompteur=ValCompteur>>1; //initialisation du compteur
}
masqueA=0000000001;
masqueB=1111111110;
a=1;
}
void CCompteur::GetValeurCompteur()
{
printf("le compteur est de %d\n",ValCompteur); //affichage de la valeur a la demande de l'utilisateur
}
void CCompteur::Incrementer()
{
int cpt=1;
if(ValCompteur==ValMaxCompteur) Reset();
while(cpt!=ValMaxCompteur+1)
{
ValCompteur=ValCompteur|masqueA;
ValCompteur=ValCompteur&masqueB;
cpt=cpt*2;
masqueA=masqueA<<1; //decalage des masques A et B
masqueB=(masqueB<<1)+1;
}
a++; //incrementation de la variable
printf("valcompteur est de %d\n",ValCompteur);
}
/****************************************
* Nom du fichier source:'test'.cpp
* Date:20/04/03 But:réaliser une classe compteur
***************************************/
//test.Reset(); //initialisation du compteur binaire
printf("Lancement du compteur\n");
while(touche!='q') //tant que l'on ne quitte pas le compteur
{
if( _kbhit() ) //test si l'utilisateur appuie sur une touche
{
touche=_getch();
switch(touche)
{
case 'r': printf("Mise a 0 du compteur\n"); test.Reset(); //reset du compteur
break;
case 'v':
test.GetValeurCompteur(); //donner la valeur courante du compteur
break;
case 'q': break; //sortie
default: printf("erreur\n"); //si appuie sur une autre touche : erreur
}
}
test.Incrementer(); //incrementation du compteur
}
printf("sortie du compteur!\n"); //message de sortie
}
/************************************
* Nom du fichier source:'classe'.h
* Date:20/04/03
* But:réaliser une classe compteur
**************************************/
class CCompteur
{
private:
unsigned short ValMaxCompteur;
unsigned short ValCompteur;