Explication

Signaler
Messages postés
3
Date d'inscription
lundi 21 avril 2003
Statut
Membre
Dernière intervention
22 avril 2003
-
Messages postés
252
Date d'inscription
mercredi 25 octobre 2000
Statut
Membre
Dernière intervention
1 mai 2005
-
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
******************************************/

#include <stdio.h>
#include <conio.h>
#include <math.h>
#include "classe.h"
#define BITCPTR 10 //compteur 10 bits

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

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include "classe.h"

void main()
{

char touche;

CCompteur test; //instanciation d'un objet test

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

public:

CCompteur(); //constructeur
void Incrementer();
void Reset();
void GetValeurCompteur();

};

1 réponse

Messages postés
252
Date d'inscription
mercredi 25 octobre 2000
Statut
Membre
Dernière intervention
1 mai 2005

et ???!!!???