Petite calculatrice en dos utilisant une classe

Soyez le premier à donner votre avis sur cette source.

Vue 11 183 fois - Téléchargée 497 fois

Description

une petite simple classe qui permet de comprendre le principe des tites classes

Source / Exemple :


//programme gerant une calculatrice avec des classes
#include <iostream.h>

// on déclare notre classe calculatrice
class calculatrice
{
	// les données sont en public, c'est à dire que toutes les
	// fonctions peuvent acceder aux données de la classe.
	// Ssi public est remplace par private ou protected
	//la fonction boucle() ne peut pas acceder aux données
public:
	float nombreA , nombreB;
	//déclaration des fonctions membres d'une classe qui servent
	//à faire agir un objet
	void addition();
	void multiplication();
	void soustraction();
	void division();
};

// fonction membre de la classe calculatrice
void calculatrice::addition()
{
	cout << "1er nombre: " << endl;
	cin >> nombreA ;
	cout << "second nombre: " << endl;
	cin >> nombreB ;
	float addition = nombreA + nombreB;
	cout << " " << nombreA << "+ " << "" <<  nombreB << "= "<< addition<<"\n";
}

void calculatrice::soustraction()
{
	cout << "1er nombre: " << endl;
	cin >> nombreA ;
	cout << "second nombre: " << endl;
	cin >> nombreB ;
	float soustraction = nombreA - nombreB;
	cout << " " << nombreA << " - " << "" <<  nombreB << "= "<< soustraction <<"\n";
}

void calculatrice::multiplication()
{
	cout << "1er nombre: " << endl;
	cin >> nombreA ;
	cout << "second nombre: " << endl;
	cin >> nombreB ;
	float multiplication = nombreA * nombreB;
	cout << " " << nombreA << "* " << "" <<  nombreB << "= "<< multiplication <<"\n";
}

void calculatrice::division()
{
	cout << "1er nombre: " << endl;
	cin >> nombreA ;
	cout << "second nombre: " << endl;
	cin >> nombreB ;
	float division = nombreA / nombreB;
	cout << " " << nombreA << "/ " << "" <<  nombreB << "= "<< division <<"\n";
}

// fonction boucle() qui permet le choix d'une des fonctions membres
void boucle()
{
	//l'objet calcul est crée en statique
	calculatrice calcul;
	//initialisation de characteres qui permettent le choix
	char A;
	char b = 'm';
	char c = 'a';
	char d = 'd';
	char s = 's';
	cout << "Addition(a) ou multiplication(m) ou soustraction(s) ou division(d)? " ;
	cin >> A ;
	if ( A == c )
	{
	// on appelle la fonction addition d'un objet
	// (l'objet calcul de la classe calculatrice)
	calcul.addition();
	}
	if (A == b)
	{
	calcul.multiplication();
	}
	if ( A == d )
	{
	calcul.division();
	}
	if (A == s)
	{
	calcul.soustraction();
	}
}

void main()
{	
	// dans main on déclare une boucle sans fin qui fait repeter
	// la fontcion en boucle
	while (1)
	{
	boucle();//fonction void boucle() appelée
	}	
}

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
1
Date d'inscription
vendredi 22 décembre 2006
Statut
Membre
Dernière intervention
23 décembre 2006

si on programme ce code avec une classe qui contient un fichier.h et fichier.cpp et un main.cpp,où est ce qu'on va mettre la boucle parce que qu'on je compile il donne comme erreur 'boucle:undeclared identifier' alors que j'ai defini cette boucle dans le fichier.cpp
Messages postés
120
Date d'inscription
mercredi 7 mai 2003
Statut
Membre
Dernière intervention
14 janvier 2006

Pour arriver a compiler cet exemple je suis obligé de mettre "int main()" au lieur de "void main()".
quelqu'un peut il m'expliquer?
si besoin je suis sous DEV C++ 5.
Messages postés
249
Date d'inscription
mardi 16 juillet 2002
Statut
Membre
Dernière intervention
7 août 2003
1
chavez >> C'est un avis subjectif tout comme je dis qu'il faut un tableau de fonction. Ce qu'il faut c'est enlever les if et les remplacer par une autre solution élégante tel que le switch ou bien sur un super tableau de pointeurs de fonctions :)
Messages postés
7
Date d'inscription
dimanche 1 décembre 2002
Statut
Membre
Dernière intervention
25 juin 2003

Je pense aussi qu'un switch serait le bienvenu.
Messages postés
249
Date d'inscription
mardi 16 juillet 2002
Statut
Membre
Dernière intervention
7 août 2003
1
Kaid << "Mais là je trouve vraiment que c'est trop de code pour pas grand chose"
C'est sûr que c'est l'artiellerie lourde mais ce n'est pas trop de code non plus (du point de vu longueur).
Afficher les 13 commentaires

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.