Petit gestionnaire mathématiques

Soyez le premier à donner votre avis sur cette source.

Snippet vu 2 514 fois - Téléchargée 33 fois

Contenu du snippet

Bonjour à tous.
Je replace ma source normalement améliorée.
Il s'agit d'un mini gestionnaire de maths pour faire de "très simples" calculs
de mathématiques. Je débute le C++ depuis Septembre 2002
et ce code regroupe tout ce que j'ai pu apprendre depuis tout ce temps.
Merci aux autres adhérents qui m'ont fait découvrir de nouvelles fonctions
tel system()...
Merci de bien vouloir me donner un avis.
Muntoya

Source / Exemple :


#include<iostream.h> // librairie du C++.
#include<stdlib.h> // pour system("");
#include<conio.c> // Affichage des couleurs
#include<math.h>// "sqrt", d'habitude fonctionnant avec math.h 
// [ je compile sans math.h]

//Compilation sous Dev-C++4.9.6.0

//-----------------------------------PROTOTYPES-------------------------------------------
int menu(); // Fonction pour pallier à main(); trop utilisé comme retour
                 // dans ma première source

int calculatrice(); // Toutes fonctions faites après main() se doivent d'être déclarées
int Addition ();    // avant, sinon on génère une erreur de compilation.
int Soustraction (); 
int Division();     
int Multiplication () ;
int Moyenne () ;

int Convers();
int Convers_euro();
int Convers_franc();

int racine();
int carre();
int facteur();

int Apropos () ;

int About();

//-----------------------------------Variables Globales-------------------------------------------
int rep;
//-----------------------------------main()-------------------------------------------
main()
{
menu();

}

int menu()
{

system("cls"); // permet d'effacer l'écran précédent

textcolor(LIGHTCYAN); // pour mmodifier la couleur du texte.
cout << "MENU PRINCIPAL " << endl;
cout << "********************************************************************"<< endl;
cout << "\t\t\t[1] Calculatrice " << endl<< endl;
cout << "\t\t\t[2] Calcul de facteurs  " << endl<< endl;
cout << "\t\t\t[3] Calcul de racines " << endl<< endl;
cout << "\t\t\t[4] Calcul de carres " << endl<< endl;
cout << "\t\t\t[5] Convertisseur Franc\\Euro" << endl<< endl;
textcolor(YELLOW);
cout << "\t\t\t[6] A propos de... " << endl<< endl;
textcolor(LIGHTCYAN);
cout << "\t\t\t[7] Sortir " << endl;
cout << "********************************************************************"<< endl;
int wait; // variable d'attente du menu principal
do{

// si supérieur à 7, refaire un choix.
wait = getch();
if (wait > 100)cout << "Erreur dans le choix, recommencez..." <<endl;
}while ((wait< '1')||(wait >'7')); // attente d'un chiffre entre 1 et 7

switch(wait)
 {
   case '1':
      calculatrice();
  
   case '2':
      racine();
      break;
      
   case '3':
      carre();
      break;
    
   case '4':
      facteur();
      break;
  
   case '5':
      Convers();
  
   case '6':
      About();
      break;  
                      
   case 7:
       return 0; // fin du programme...
 }       
 
}
//-----------------------------------Convers()-------------------------------------------
int Convers()
{
 
system("cls");
textcolor(LIGHTCYAN);

cout << endl<<endl;
cout << "\t\t****************************"<< endl;
cout << "\t\t[1].CONVERSION FRANCS -> EURO "<< endl;
cout << "\t\t[2].CONVERSION EURO -> FRANCS "<< endl;
cout << "\t\t[3].RETOUR " << endl;
cout << "\t\t****************************"<< endl;
do{

rep = getch();

}while ((rep < '1')||(rep >'3'));

switch(rep)
 {
   case '1':
      Convers_franc();
      break;
      
   case '2':
       Convers_euro();
       break;
   default:
       return menu();
 }       
 
}
//-----------------------------------Convers fr()-------------------------------------
int Convers_franc()
{
  
  double val1;
   
  textcolor(WHITE);
  cout << "\t\tValeur en francs: ";
  cin >> val1;
  cout << endl;
  if(val1==0)
  {
   cout << "\t\tValeur nulle"<<endl<<endl;
   return Convers_franc();
  }
  
  else
  cout << endl;textcolor(YELLOW);
  cout <<"\t\t" << val1 << " Francs " << " = " << val1/ 6.55957 << " Euros " <<endl<< endl<<endl;
  textcolor(LIGHTGREEN);

 do{

cout << "\t\t1.Conversion " << endl;
cout << "\t\t2.Menu principal " << endl;
rep = getch();

}while ((rep < '1')||(rep >'3'));

switch(rep)
 {
   case '1':
      Convers();
      break;
      
   case '2':
      menu();
       break;
 
  }
  
}   
//-----------------------------------Convers eur()-------------------------------------  
int Convers_euro()
{
  
  textcolor(WHITE); 
  double val2;
  cout << "\t\tValeur en euros: ";
  cin >> val2;
  cout << endl;
 if(val2==0)
  {
   cout << "\t\tValeur nulle"<<endl<<endl;
   return Convers_euro();
  }
 
 else
 cout << endl;textcolor(YELLOW);
 cout <<"\t\t"<< val2 << " Euros " << " = " << val2* 6.55957 << " Francs" <<endl<< endl<<endl;
  
textcolor(LIGHTGREEN);

  do{

cout << "\t\t1.Conversion " << endl;
cout << "\t\t2.Menu principal " << endl;
rep = getch();

}while ((rep < '1')||(rep >'3'));

switch(rep)
 {
   case '1':
      Convers();
      break;
      
   case '2':
       menu();
       break;
  
  }
  
}  
//-----------------------------------facteur()-------------------------------------  
int facteur () 

{
 textcolor(WHITE);                                         
  int result =1;  
     
cout << " calcul des  facteurs " << endl ;
cout << " a noter qu'a partir de 30!, le nombre est trop important " << endl;
cout << " quel le facteur choisi? " << endl ;
double n;
cin >>n;
  textcolor(YELLOW);   
          
     for ( int i =1 ; i<= n ; i++ )
             
         result *= i;
             
    {                        
        cout <<  result << "" <<endl ;
    }
     
   cout << " Fin de la recherche." << endl ;  
 do{
textcolor(LIGHTGREEN);
cout << "1.Facteur " << endl;
cout << "2.Menu principal " << endl;
rep = getch();

}while ((rep < '1')||(rep >'3'));

switch(rep)
 {
   case '1':
      facteur();
      break;
      
   case '2':
       menu();
       break;
                            
}

}
//-----------------------------------racine carre()-------------------------------------  
int racine ()
{

float n ;
textcolor(WHITE);
cout  <<"Calculez la racine carre d'un nombre" <<endl << endl ;
cout << "Quelle racine voulez vous afficher?" << endl ;
cin >>n;
textcolor(YELLOW);           
cout << "Racine Carre de " << n  << " = "   << "[" << sqrt (n) << "]" <<"\n" <<endl ; 

 textcolor(LIGHTGREEN);                       
do{

cout << "1.Racine CARRE " << endl;
cout << "2.Menu principal " << endl;
rep = getch();

}while ((rep < '1')||(rep >'2'));

switch(rep)
 {
   case '1':
      racine();
      break;
      
   case '2':
       menu();
       break;
   
 }                 

} 
//-----------------------------------carre()-------------------------------------  
int carre ()

{

int n ;

textcolor(WHITE);
cout << "Debut du calcul des  carres" << endl ;
cout  << "Quel carre voulez vous calculez" << endl ;
cin >>n;
     
  textcolor(YELLOW);   
 cout << "Carre de " << n  << " = " << "[" << n*n << "]" <<"\n"<<endl ;  
 
 do{
textcolor(LIGHTGREEN);
cout << "1.Carre " << endl;
cout << "2.Menu principal " << endl;
rep = getch();

}while ((rep < '1')||(rep >'2'));

switch(rep)
 {
   case '1':
      carre();
      break;
      
   case '2':
       menu();
       break;
   
 }          
    

} 

//-----------------------------------calculatrice()-------------------------------------  

int calculatrice () // Fonction principale du programme. tout est lu de manière succinte  

{ // Accolade necessaire au debut du programme et pour toutes fonctions
    system("cls");
    textcolor(LIGHTCYAN); 
  
      cout << " _________________________________ " << endl ; 
      cout << "|                                 |" << endl ;
      cout << "|   PROGRAMME MA CALCULATRICE     |" << endl ;
      cout << "|                                 |" << endl ;
      cout << "| [1] Addition de 2 nombres       |" << endl ;
      cout << "| [2] Soustraction de 2 nombres   |" << endl ;
      cout << "| [3] Division de 2 nombres       |" << endl ;
      cout << "| [4] Multiplication de 2 nombres |" << endl ;
      cout << "| [5] Moyenne de 2 nombres *      |" << endl ;
      cout << "| [6] A propos de Ma calculatrice |" << endl ;
      cout << "| [7] Sortir                      |" << endl ;
      cout << "|_________________________________|" << endl ;      
      int proposition = 0 ; // Nomination de la variable proposition
      
      
      
     do {
      cout << " Entrez votre proposition (1-7) " ;   
     proposition  = getch();
       cout <<endl ;               
    } while ((proposition < '1')|| (proposition > '7'));
      
     
      switch (proposition) 
                  
        {
            
            case '1' : // premiere possibilité dans la variable car
            
                Addition (); 
                break ;      
            
             case '2':
                
                Soustraction ();
                break ;     
                          
                                   
             case '3' :
                 
                 Division () ; 
                 break ;     
                 
             case '4' :
             
                 Multiplication () ; 
                 break ;            
             
             case '5' :
                  
                  Moyenne () ;
                  break ;
             
             case '6' :
             
                 Apropos () ;   
                 break ;
                 
             case '7' :
              
                menu();                
                         
            }   
            
           cout <<endl;system("Pause");                 
           system("cls");
          return calculatrice();  
                        
}                    
                    
 //-----------------------------fonctions de calculatrice-------------------------------------------   
 
                                                                                                           
int Addition () //Premiere fonction
                                                                                      
{            
     textcolor(WHITE);    
   double a, b ; 
    cout << " Vous avez choisi addition " << endl ;
    
    cout << " Premier nombre: " << endl ;
    cin >> a ;
    
    cout << " Deuxieme nombre: " << endl ;
    cin >> b ;
    
    double somme = a + b ; 
    
    cout << " Le resultat de " << a << " + " << b << " est: " << somme << endl ;
    
}

int Soustraction () // Seconde fonction
    
{                   
    double c, d ; textcolor(WHITE);
    cout << " Vous avez choisi soustraction " << endl ;
    cout << " Premier nombre: " << endl ;
    cin >> c ;
    
    cout << " Deuxieme nombre: " << endl ;
    cin >> d ;
    
   double soustraire = c - d ;
    
    cout << " Le resultat de " << c << " - " << d << " est: " << soustraire << endl ;
    
      
}                                    

int Division () // Troisième fonction 
    
{                   
    double c, d ; textcolor(WHITE);
    cout << " Vous avez choisi division " << endl ;
    
    cout << " Premier nombre: " << endl ;
    cin >> c ;
    
    cout << " Deuxieme nombre: " << endl ;
    cin >> d ;
    
    double division = c / d ;
    
    cout << " Le resultat de " << c << " / " << d << " est: " << division << endl ;
    
      
}       
                            
int Multiplication ()// quatrième fonction 
    
{                   
    double e, f ;  textcolor(WHITE);
    cout << " Vous avez choisi multiplication " << endl ;
    
    cout << " Premier nombre: " << endl ;
    cin >> e ;
    
    cout << " Deuxieme nombre " << endl ;
    cin >> f ;
    
    double multiplication = e * f ;
    
    cout << " Le resultat de " << e << " * " << f << " est: " << multiplication << endl ;
                 
}   

int Moyenne () // Cinquième fonction
{
   double g, h ; 
   textcolor(WHITE);
    cout << " Vous avez choisi moyenne " << endl ;
    cout << " *( N'oubliez pas qu'il s'agit d'aditionner...) " << endl ;
    
    cout << " Premier nombre: " << endl ;
    cin >> g ;
    
    cout << " Deuxieme nombre: " << endl ;
    cin >> h ;
    
     double moyenne = g + h ; // directive de la tache à éffectué
    
    cout << " Le resultat de " << g << " + " << h << " divise par 2 est: " << moyenne / 2 << endl ;
}

int Apropos ()  // Sixième fonction. en fait il ne s'agit que d'écrire du texte
{ 

textcolor(WHITE); 
cout << "Raphael PRIGENT " << endl ;
cout << "Version 1.0.0 ,le 20/10/02 " << endl ;
cout << "A l'epoque ou je travaillais sur une mini calculatrice, je n'avais " << endl ;
cout << "que les outils necessaires pour faire cette calculatrice" << endl ;
cout << "Je tacherais de faire une calculatrice bien plus amelioree a l'avenir" << endl ;
cout << "Je tiens a preciser que la presentation de l'application provient d'une " << endl;
cout << "source qui etait libre de droit avant mon adhesion au site " << endl;                  
}     // Fin de la fonction. ne pas oublier de fermer toutes les accolades. 

int About()
{
 textcolor(WHITE);
cout << "Raphael PRIGENT " << endl;
cout << "Version 1.0.0 ,le 07/01/03 " << endl ;     
cout << "Bonjour. Ceci est ma premiere compilation de tous les petites " << endl ;                                                                                                                                                                                                                                                                     
cout << "applications que j'ai travaille depuis 4 mois. Le resultat est " << endl ;   
cout << "tres simple car il s'agit du travail que j'effectue en C++ depuis " << endl ;   
cout << "septembre 2002 " << endl ;  
cout << "pour toute demande sur mon travail personnel ou sur ce programme, " << endl ; 
cout << "n'hesitez pas a me laisser un mpessage ou alors em contactez sur mon adresse, " << endl ;    
cout << "e-mail a = raphaelprigent@free.fr " << endl ; 
cout << "Un grand merci a ce site et a tous ces adherents qui me permettent tous" << endl;
cout << " d'ameliorer mon savoir. " << endl;
system("Pause");
menu();
}

A voir également

Ajouter un commentaire

Commentaires

MaCFerson
Messages postés
21
Date d'inscription
dimanche 20 octobre 2002
Statut
Membre
Dernière intervention
4 décembre 2004

Plusieurs petites choses sont ennuyantes

1) on appelle jamais la fonction main()
2) Evite les variables globales utilise les passages par valeur ou par référence dans tes fonctions à la place
3) Je conseille pour tout débutant de respectez la normes ANSI afin d'apprendre à programmez correctement (de plus test codes tourneront en principe sur tous les compilateurs linux et ou windows)
4) tu déclares int variable globale dans tes prototype je parle de "rep"

de plus essayer d'organiser ton programmes de tel facon à ce le début se fasse au moment du lancement du programme et que la fin de ce dernier soit a la fin du main

voila!!
Sans rancunes a++
cs_vieuxLion
Messages postés
455
Date d'inscription
samedi 26 octobre 2002
Statut
Membre
Dernière intervention
6 avril 2004
7
bonjour, c'est un beau programme très bien présenté...
Mais ne compile pas sous Visual qui n'a pas de <conio.h> ni <conio.c>.
ton traitement de main() est bizarre et non standard
le prototype est int main()
une variable littérale comportant un '.' est par défaut un double, utilise 'F'
et elle devrait être attribuée à une const
le nom d'une const devrait être en majuscule :
const float TAUXCONVERSION = 6.55957F;
Les noms des fonctions sont inhomogènes (majuscules/minuscules)
const float

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.