Browse Source

Transférer les fichiers vers ''

philouxy-fixme 1 year ago
parent
commit
497da6973b
5 changed files with 864 additions and 0 deletions
  1. 126 0
      help.c
  2. 59 0
      main_langage_C_fixme.c
  3. 183 0
      selection_user.c
  4. 153 0
      template_menu.c
  5. 343 0
      template_menu_arithm.c

+ 126 - 0
help.c

@@ -0,0 +1,126 @@
+//-----------------------------------------------------------------------------------//
+// Nom du projet 		: Langage_C_fixme
+// Nom du fichier 		: help.c
+// Date de création 	: 23.09.2015
+// Date de modification : 23.10.2017
+//
+// Auteur 				: Philou (Ph. Bovey)
+//
+// Description          : fichier comportant différentes fonctions d'astuces
+//
+//
+// Remarques :            lien pour la table ASCII :
+// 						  -> http://www.asciitable.com/
+// 						  lien pour la saisie de clavier avec getc & getchar pour ne pas
+//                        avoir des erreurs d'interprétation
+// 						  -> http://fr.openclassrooms.com/informatique/cours/utiliser-les-bonnes-fonctions-d-entree
+// 						  lien vers différents
+// 						  -> http://fr.wikipedia.org/wiki/String.h
+//----------------------------------------------------------------------------------//
+
+//--- librairie standart ---//
+#include <stdio.h>                  // entrée - sortie
+#include <string.h>
+
+//--- librairie perso ---//
+#include "display.h"
+
+//----------------------------------------------------------------------------------//
+// Nom de la fonction   : Help_Printf
+// Entrée / Sortie      : - / - /
+// Description          : on affiche quelques régles avec le printf
+// Date modfification   : le 09.09.2015
+// Remarque             : -
+//----------------------------------------------------------------------------------//
+void Help_Printf(void)
+{
+    //--- déclaration de variable interne ---//
+    char var_test = 'A';
+    float var_test2 = 3452.10;
+    int puissance = 5;
+    int i, val;
+
+    //--- Notion du "Printf" --> permet l'affichage dans une console ---//
+    printf("-> fct ""PRINTF()"" : permet d'afficher du texte dans une console \n");
+    printf("-> le \\n permet un retour a la ligne \n");
+    printf("-> pour afficher un caractere on utilise %%c \n");
+    printf("-> pour afficher un entier on utilise %%d \n");
+    printf("-> pour afficher une valeur en hexa on utilise %%x \n");
+    PRINT_SAUT_LIGNE;
+    printf("=> Exemple 1A : la variable de test a comme caractere : %-3c \n", var_test);
+    printf("=> Exemple 1B : la variable de test vaut en decimal :   %-3d \n", var_test);
+    printf("=> Exemple 1C : la variable de test vaut en hexa :    OX%-3x \n", var_test);
+    PRINT_SAUT_LIGNE;
+    printf("-> pour afficher un nombre flottant on utilise %%f \n");
+    printf("-> pour afficher un nombre en notation scientifique on utilise %%e \n");
+    PRINT_SAUT_LIGNE;
+    printf("REMARQUE : ecriture notation scientifique %%nb_total.Nb_ap_virgule => ex: %%3.1e \n");
+    PRINT_SAUT_LIGNE;
+    printf("=> Exemple 2A : la variable de test vaut : %f \n", var_test2);
+    printf("=> Exemple 2B : la variable de test vaut en notation scientifique : %3.1e \n", var_test2);
+    PRINT_SAUT_LIGNE;
+    PRINT_SAUT_LIGNE;
+    printf("-> Valeur de fin de fichier dit EOF : %d", EOF);
+    PRINT_SAUT_LIGNE;
+    printf("-> allignement de nombres entier %%nb_esapce+indicateur \n");
+    printf("-> les signes  + & - devant le nb d'espace definit les sens d'alignement gauche ou droite \n");
+    PRINT_SAUT_LIGNE;
+    printf("=> Exemple 3 : allignement de nbs - de 1 a 10^5 \n");
+    for(i = 0 ; i < puissance + 1 ; i++)
+    {
+        //--- calcul de la valeur à afficher ---//
+        if(i == 0)
+            val = 1;
+        else
+            val = val*10;
+
+        //--- affichage de la valeur avec alignement de droite a gauche ---//
+        printf("puissance %d -> %6d || %-6d", i, val, val);
+        PRINT_SAUT_LIGNE;
+    }
+}
+
+//----------------------------------------------------------------------------------//
+// Nom de la fonction   : Help_Loop
+// Entrée / Sortie      : - / - /
+// Description          : quelque exemple d'affichage avec des boucles itératives
+// Date modfification   : le 23.10.2017
+// Remarque             : -
+//----------------------------------------------------------------------------------//
+void Help_Loop(void)
+{
+    //--- déclaration de variable ---//
+    int i, val_user;
+
+    //--- différences nombre itération (écriture différentes) ---//
+    val_user = Select_Var_Entier(LIMITE_NB_MAX, LIMITE_NB_MIN);
+
+    //--- boucle for avec un test : x < y ---//
+    PRINT_SAUT_LIGNE;
+    printf("-> selection iteration user : %d", val_user);
+    PRINT_SAUT_LIGNE;
+
+    //--- boucle ---//
+    printf("LOOP FOR -> iteration reel avec test (i < user)");
+    PRINT_SAUT_LIGNE;
+    for(i = 0; i < val_user; i++)
+        printf("%d / ", i);
+    PRINT_SAUT_LIGNE;
+
+    printf("LOOP FOR -> iteration reel avec test (i <= user)");
+    PRINT_SAUT_LIGNE;
+    for(i = 0; i <= val_user; i++)
+        printf("%d / ", i);
+    PRINT_SAUT_LIGNE;
+
+    printf("LOOP WHILE -> iteration reel avec test (i < user)");
+    PRINT_SAUT_LIGNE;
+    i = 0;
+    while(i < val_user)
+    {
+        printf("%d / ", i);
+        i++;
+    }
+    PRINT_SAUT_LIGNE;
+}
+

+ 59 - 0
main_langage_C_fixme.c

@@ -0,0 +1,59 @@
+//-----------------------------------------------------------------------------------//
+// Nom du projet 		:   Langage_C_fixme
+// Nom du fichier 		:   main_langage_C_fixme.c
+// Date de création 	:   25.02.2015
+// Date de modification : 	10.11.2015
+//
+// Auteur 				: 	Philou (Ph. Bovey)
+//
+// Description 			: 	Selon le livre "le Langage C" - Auteur : Tony Zhang
+//                          Reprise des Exercies du livres et adapter ceux-ci
+//                          pour faire un programme complet et aisni voirdifférents
+//                          aspects du C
+//
+// Remarques			:   lien pour la table ASCII :
+//                          http://www.asciitable.com/
+//                          lien pour la saisie de clavier avec getc & getchar pour ne pas
+//                          avoir des erreurs d'interprétation
+//                          http://fr.openclassrooms.com/informatique/cours/utiliser-les-bonnes-fonctions-d-entree
+//                          lien vers différents
+//                          http://fr.wikipedia.org/wiki/String.h
+//----------------------------------------------------------------------------------//
+
+//--- Librairie utilisées ---//
+//--- Standart ---//
+#include <stdio.h>                  // entrée - sortie
+#include <string.h>
+
+//--- Perso ---//
+#include "display.h"
+
+//--- définition ---//
+#define _CRT_NONSTDC_NO_WARNINGS
+#define VERSION_PROG  1
+
+
+//--- Programme personalisé ---//
+int main()
+{
+    //--- déclaration de variables interne à la function main ---//
+    char var_retour = CHOIX_MENU_PRINCIPAL;         // initialise la variable de retour
+
+    //--- Message de bienvenue ---//
+    printf("--- Fixme - Projet en C - Version %d ---", VERSION_PROG);
+    PRINT_SAUT_LIGNE;
+
+    //--- tant que l'utilisateur n'est pas sorti en tapant sur 'E' on reste dans la boucle ---//
+    do{
+        //--- structure du menu ---//
+        Template_Menu_Ligne();
+        Template_Display_Menu(var_retour);
+        PRINT_SAUT_LIGNE;
+        PRINT_SAUT_LIGNE;
+        var_retour = Selection_Menus(CHOIX_MENU);
+        PRINT_SAUT_LIGNE;
+
+    }while(var_retour != CHOIX_EXIT);
+
+    return 0;
+}

+ 183 - 0
selection_user.c

@@ -0,0 +1,183 @@
+//-----------------------------------------------------------------------------------//
+// Nom du projet 		: Langage_C_fixme
+// Nom du fichier 		: selection_user.c
+// Date de création 	: 16.04.2015
+// Date de modification : 23.10.2017
+//
+// Auteur 				: Philou (Ph. Bovey)
+//
+// Description          : fichier comportant différentes fonctions permettant de
+//                        charger des valeurs de l'utilisateur
+//
+// Remarques :            lien pour la table ASCII :
+// 						  -> http://www.asciitable.com/
+// 						  lien pour la saisie de clavier avec getc & getchar pour ne pas
+//                        avoir des erreurs d'interprétation
+// 						  -> http://fr.openclassrooms.com/informatique/cours/utiliser-les-bonnes-fonctions-d-entree
+// 						  lien vers différents
+// 						  -> http://fr.wikipedia.org/wiki/String.h
+//----------------------------------------------------------------------------------//
+
+//--- librairie standart ---//
+#include <stdio.h>                  // entrée - sortie
+#include <string.h>
+
+//--- librairie perso ---//
+#include "display.h"
+
+//--- constante ou définition ---//
+#define _CRT_NONSTDC_NO_WARNINGS
+
+
+
+//----------------------------------------------------------------------------------//
+// Nom de la fonction   : Selection_Menus
+// Entrée / Sortie      : choix_selection_msg / var_retour
+// Description          : affiche un message pour que l'utilisateur entre une valeur
+//                        M : affichage d'un message concernant un menu
+//                        C : affichage d'un message concernant un choix de sous menu
+//                        V : affichage d'un message concernant une valeur
+// modification         : le 23.10.2017
+// Remarque             : -
+//----------------------------------------------------------------------------------//
+char Selection_Menus(char choix_selection_msg)
+{
+    //--- declaration de variable local ---//
+    char var_retour;
+
+    //--- selection du message selon la configuration ---//
+    switch(choix_selection_msg)
+    {
+        case 'M':
+            PRINT_SELECTION_MENU;
+            var_retour = Select_Var_Cara();
+        break;
+
+        case 'C':
+            PRINT_SELECTION_CHOIX;
+            var_retour = Select_Var_Cara();
+        break;
+
+        case 'V':
+            var_retour = Select_Var_Entier(LIMITE_NB_MAX, LIMITE_NB_MIN);
+        break;
+    }
+    return var_retour;
+}
+
+
+//----------------------------------------------------------------------------------//
+// Nom de la fonction   : Select_Var_Cara
+// Entrée / Sortie      : - / val_retour
+// Description          : récuperation d'un caractère issu d'un utilisateur
+//                        en entier
+// modification         : le 04.05.2015
+// Remarque             : -
+//----------------------------------------------------------------------------------//
+char Select_Var_Cara(void)
+{
+    //--- déclaration de variable interne ---//
+    char val_retour;
+
+    //--- lire le caractère saisi ---//
+    val_retour = getchar();
+
+    //--- vide le buffer de saisie de clavier ---//
+    while(getchar() != '\n');
+
+    return val_retour;
+}
+
+//----------------------------------------------------------------------------------//
+// Nom de la fonction   : Select_Option
+// Entrée / Sortie      : - / car_retour
+// Description          : demande à l'utilisateur de choisir un choix
+//                        en entier
+// modification         : le 19.05.2015
+// Remarque             : http://fr.wikipedia.org/wiki/Lois_de_De_Morgan
+//----------------------------------------------------------------------------------//
+char Select_Option(void)
+{
+    //--- déclaration de variable interne ---//
+    char car_retour;
+
+    //--- boucle pour choisir un choix d'option
+    do
+    {
+        //--- message afficher à l'utilisateur ---//
+        PRINT_SELECTION_INT;
+        PRINT_SAUT_LIGNE;
+        printf("OU");
+        PRINT_SAUT_LIGNE;
+        PRINT_SELECTION_FLOAT;
+        PRINT_SAUT_LIGNE;
+        PRINT_SAUT_LIGNE;
+
+        //--- demander à l'utilisetur de choisir une option ---//
+        PRINT_SELECTION_CHOIX;
+
+        //--- lecture du caractère en retour ---//
+        car_retour = Select_Var_Cara();
+
+    //---condition de sortie : obliger de choisir une de deux possibilités ---//
+    }//while((car_retour != CHOIX_ENTIER) && (car_retour != CHOIX_FLOTTANT));    // les deux solutions sont justes
+    while(!((car_retour == CHOIX_ENTIER) || (car_retour == CHOIX_FLOTTANT)));
+
+    return car_retour;
+}
+
+//----------------------------------------------------------------------------------//
+// Nom de la fonction   : Select_Var_Entier
+// Entrée / Sortie      : limiteMax, limiteMin / val_retour
+// Description          : récuperation d'une chaîne de caractère en la transformant
+//                        en entier avec contrôle de limites (min et max)
+// modification         : le 23.10.2017
+// Remarque             : 
+//----------------------------------------------------------------------------------//
+int Select_Var_Entier(int limiteMax, int limiteMin)
+{
+    //--- déclaration de variable interne ---//
+	char testPositif = 0;		// 0 -> NOT OK - 1 -> OK
+	int val_retour;
+
+    //--- message de sélection ---//
+    PRINT_SELECTION_NB;
+
+	//-- boucle pour tester si valeur est correctes ou non --// 
+	do
+	{
+		//--- fonction pour la lire la saisie d'un chaîne de caractère ---//
+		scanf_s("%d", &val_retour);
+
+		//-- test si valeur est dans les limites --//
+		if ((val_retour < limiteMax) && (val_retour > limiteMin))
+			testPositif = 1;
+		else
+			testPositif = 0; 
+
+	} while (testPositif == 0);
+
+    return val_retour;
+}
+
+//----------------------------------------------------------------------------------//
+// Nom de la fonction   : Select_Var_Flottant
+// Entrée / Sortie      : - / val_retour
+// Description          : récuperation d'une chaîne de caractère en la transformant
+//                        en flottant
+// modification         : le 08.06.2015
+// Remarque             : -
+//----------------------------------------------------------------------------------//
+float Select_Var_Flottant(void)
+{
+    //--- déclaration de variable interne ---//
+    float val_retour;
+
+    //--- message de sélection ---//
+    PRINT_SELECTION_NB;
+
+    //--- fonction pour la lire la saisie d'un chaîne de caractère ---//
+    scanf_s("%f", &val_retour);
+
+    return val_retour;
+}

+ 153 - 0
template_menu.c

@@ -0,0 +1,153 @@
+//-----------------------------------------------------------------------------------//
+// Nom du projet 		:   Langage_C_fixme
+// Nom du fichier 		:   template_menu.c
+// Date de création 	:   25.02.2015
+// Date de modification : 	10.11.2015
+//
+// Auteur 				: 	Philou (Ph. Bovey)
+//
+// Description 			: 	Sorte de template modifiable pour afficher un menu
+//                          -> ici la partie du menu principal
+//
+// Remarques			:   lien pour la table ASCII :
+//                          http://www.asciitable.com/
+//                          lien pour la saisie de clavier avec getc & getchar pour ne pas
+//                          avoir des erreurs d'interprétation
+//                          http://fr.openclassrooms.com/informatique/cours/utiliser-les-bonnes-fonctions-d-entree
+//                          lien vers différents
+//                          http://fr.wikipedia.org/wiki/String.h
+//----------------------------------------------------------------------------------//
+
+//--- librairie standart ---//
+#include <stdio.h>                  // entrée - sortie
+#include <string.h>
+
+//--- librairie perso ---//
+#include "display.h"
+
+//----------------------------------------------------------------------------------//
+// Nom de la fonction   : Template_Menu_Ligne
+// Entrée / Sortie      : - / - /
+// Description          : affiche la structure du menu --> ligne remplie de '*'
+// Date modfification   : le 08.04.2015
+// Remarque             : -
+//----------------------------------------------------------------------------------//
+void Template_Menu_Ligne(void)
+{
+    //--- déclaration de variable interne ---//
+    char i;
+
+    //--- boucle pour afficher x caractère sur une ligne ---//
+    for(i = 0; i < MAX_CARA; i++)
+        printf("*");
+}
+
+//----------------------------------------------------------------------------------//
+// Nom de la fonction   : Template_Display_Menu
+// Entrée / Sortie      : choix_menu / - /
+// Description          : affiche le menu dans lequel on se situe
+// Date modfification   : le 06.11.2015
+// Remarque             : -
+//----------------------------------------------------------------------------------//
+void Template_Display_Menu(char choix_menu)
+{
+    //--- déclaration de variable interne ---//
+    char i;
+    char car_retour;
+
+    //--- boucle pour afficher x caractère sur une ligne ---//
+    for(i = 0; i < 3; i++)
+        printf("*");
+
+    //--- pour l'esthétique afficher un espace avant le mots "menu" ---/
+    PRINT_ESPACE;
+    PRINT_M_MENU;
+
+    switch(choix_menu)
+    {
+        case '1':
+            printf("%s", NAME_M_ARITHEMTIQUE);
+            PRINT_SAUT_LIGNE;
+            Template_Menu_Ligne();
+            PRINT_SAUT_LIGNE;
+            Template_Choix_Menu_Arithmetique();             //-> appel un template qui affiche le sous menu arithmétique
+            PRINT_SAUT_LIGNE;
+            PRINT_SAUT_LIGNE;
+            car_retour = Selection_Menus(CHOIX_MENU);       //-> on indique que l'on veut un caractère en retour
+            Template_Display_Menu_Arithm(car_retour);       //-> affiche le nouveau menu sélectionné
+            PRINT_SAUT_LIGNE;
+        break;
+
+        case '2':
+            printf("%s", NAME_M_AFFICHAGE);
+            PRINT_SAUT_LIGNE;
+            Template_Menu_Ligne();
+            PRINT_SAUT_LIGNE;
+            Template_Choix_Menu_Display();                  //-> appel un template qui affiche le sous menu afficahge
+            PRINT_SAUT_LIGNE;
+            PRINT_SAUT_LIGNE;
+            car_retour = Selection_Menus(CHOIX_MENU);       //-> on indique que l'on veut un caractère en retour
+            Template_Display_Menu_Display(car_retour);      //-> affiche le nouveau menu sélectionné
+            PRINT_SAUT_LIGNE;
+        break;
+
+        case 'A':
+            printf("%s", NAME_M_ASTUCE_PRINTF);
+            PRINT_SAUT_LIGNE;
+            Template_Menu_Ligne();
+            PRINT_SAUT_LIGNE;
+            Help_Printf();
+        break;
+
+        case 'B':
+            printf("%s", NAME_M_ASTUCE_LOOP);
+            PRINT_SAUT_LIGNE;
+            Template_Menu_Ligne();
+            PRINT_SAUT_LIGNE;
+            Help_Loop();
+        break;
+
+        case 'P':
+            printf("%s", NAME_M_PRINICIPAL);
+            PRINT_SAUT_LIGNE;
+            Template_Menu_Ligne();
+            PRINT_SAUT_LIGNE;
+            Template_Choix_Menu_Principal();                //-> appel un template qui affiche le menu principale
+        break;
+
+        default:
+            printf("LA SELECTION N'EXISTE PAS !!!");
+            PRINT_SAUT_LIGNE;
+            Template_Menu_Ligne();
+        break;
+    }
+}
+
+//----------------------------------------------------------------------------------//
+// Nom de la fonction   : Template_Choix_Menu
+// Entrée / Sortie      : - / - /
+// Description          : affiche le choix du menu pour l'utilisateur
+// Date modfification   : le 24.09.2015
+// Remarque             : -
+//----------------------------------------------------------------------------------//
+void Template_Choix_Menu_Principal(void)
+{
+    //--- déclaration propre à la fonction ---//
+    //char var_choix_menu;
+
+    printf("[1] %s", NAME_M_ARITHEMTIQUE);
+    PRINT_SAUT_LIGNE;
+    printf("[2] %s", NAME_M_AFFICHAGE);
+    PRINT_SAUT_LIGNE;
+    printf("[3] ... \n");
+    printf("[4] ... \n");
+    printf("[A] --- %s ---", NAME_M_ASTUCE_PRINTF);
+    PRINT_SAUT_LIGNE;
+    printf("[B] --- %s ---", NAME_M_ASTUCE_LOOP);
+    PRINT_SAUT_LIGNE;
+    printf("[Q] --- help ---\n");
+    printf("[E] --- fermer le programme ---");
+}
+
+    //printf("\x1b[1;1 H]");
+    //system("cls");

+ 343 - 0
template_menu_arithm.c

@@ -0,0 +1,343 @@
+//-----------------------------------------------------------------------------------//
+// Nom du projet 		:   Langage_C_fixme
+// Nom du fichier 		:   template_menu_arithm.c
+// Date de création 	:   16.04.2015
+// Date de modification : 	23.10.2017
+//
+// Auteur 				: 	Philou (Ph. Bovey)
+//
+// Description 			: 	Sorte de template modifiable pour afficher un menu ->
+//                          ici la partie du menu arithmétique
+//
+// Remarques			:   lien pour la table ASCII :
+//                          http://www.asciitable.com/
+//                          lien pour la saisie de clavier avec getc & getchar pour ne pas
+//                          avoir des erreurs d'interprétation
+//                          http://fr.openclassrooms.com/informatique/cours/utiliser-les-bonnes-fonctions-d-entree
+//                          lien vers différents
+//                          http://fr.wikipedia.org/wiki/String.h
+//----------------------------------------------------------------------------------//
+
+//--- librairie standart ---//
+#include <stdio.h>                  // entrée - sortie
+#include <string.h>
+
+//--- librairie perso ---//
+#include "display.h"
+#include "arithmetique.h"
+
+
+//----------------------------------------------------------------------------------//
+// Nom de la fonction   : Template_Choix_Menu_Arithmetique
+// Entrée / Sortie      : - / - /
+// Description          : affiche le choix du menu arithmétique
+// Date modfification   : le 19.06.2015
+// Remarque             : -
+//----------------------------------------------------------------------------------//
+void Template_Choix_Menu_Arithmetique(void)
+{
+    printf("[1] %s", NAME_M_OP_SIMPLE);
+    PRINT_SAUT_LIGNE;
+    printf("[2] %s", NAME_M_CONV);
+    PRINT_SAUT_LIGNE;
+    printf("[3] ... \n");
+    printf("[4] ... \n");
+    printf("[P] --- retour menu %s  ---", NAME_M_PRINICIPAL);
+    PRINT_SAUT_LIGNE;
+    printf("[E] --- fermer le programme ---");
+}
+
+//----------------------------------------------------------------------------------//
+// Nom de la fonction   : Template_Choix_Menu_OP_Simple
+// Entrée / Sortie      : - / - /
+// Description          : affiche le choix du menu des opération arithmétique simple
+// Date modfification   : le 23.10.2017
+// Remarque             : -
+//----------------------------------------------------------------------------------//
+void Template_Choix_Menu_OP_Simple(void)
+{
+    printf("[1] %s", NAME_M_ADITION);
+    PRINT_SAUT_LIGNE;
+    printf("[2] %s", NAME_M_SOUSTRACTION);
+    PRINT_SAUT_LIGNE;
+    printf("[3] %s", NAME_M_MULTIPLICATION);
+    PRINT_SAUT_LIGNE;
+    printf("[4] %s", NAME_M_DIVISION);
+    PRINT_SAUT_LIGNE;
+	printf("[5] %s", NAME_M_CALCUL_SEG_AB);
+	PRINT_SAUT_LIGNE;
+    printf("[A] %s", NAME_M_ASTUCE_INCR);
+    PRINT_SAUT_LIGNE;
+    printf("[P] --- retour menu %s  ---", NAME_M_PRINICIPAL);
+    PRINT_SAUT_LIGNE;
+    printf("[E] --- fermer le programme ---");
+}
+
+//----------------------------------------------------------------------------------//
+// Nom de la fonction   : Template_Choix_Menu_Conversion
+// Entrée / Sortie      : - / - /
+// Description          : affiche le choix du menu des opération arithmétique simple
+// Date modfification   : le 08.07.2015
+// Remarque             : -
+//----------------------------------------------------------------------------------//
+void Template_Choix_Menu_Conversion(void)
+{
+    printf("[1] %s", NAME_M_CONV_CHAR_NUM);
+    PRINT_SAUT_LIGNE;
+    printf("[2] %s", NAME_M_CONV_NUM_CHAR);
+    PRINT_SAUT_LIGNE;
+    printf("[3] %s", NAME_M_CONV_NUM_OCT_HEX);
+    PRINT_SAUT_LIGNE;
+    printf("[4] ... \n");
+    printf("[A] %s", NAME_M_ASTUCE_CONV_CHAR_NUM);
+    PRINT_SAUT_LIGNE;
+    printf("[P] --- retour menu %s  ---", NAME_M_PRINICIPAL);
+    PRINT_SAUT_LIGNE;
+    printf("[E] --- fermer le programme ---");
+}
+
+
+//----------------------------------------------------------------------------------//
+// Nom de la fonction   : Template_Display_Menu_Arithm
+// Entrée / Sortie      : choix_menu / - /
+// Description          : affiche le menu dans lequel on se situe -> ici arithmétique
+// Date modfification   : le 30.09.2015
+// Remarque             : -
+//----------------------------------------------------------------------------------//
+void Template_Display_Menu_Arithm(char choix_menu)
+{
+    //--- déclaration de variable interne ---//
+    char i, var_retour;
+
+    //--- affiche une ligne entière d'étoile ---//
+    PRINT_SAUT_LIGNE;
+    Template_Menu_Ligne();
+
+    //--- boucle pour afficher x caractère sur une ligne ---//
+    for(i = 0; i < 3; i++)
+        printf("*");
+
+    //--- pour l'esthétique afficher un espace avant le mots "menu" ---/
+    PRINT_ESPACE;
+    PRINT_M_MENU;
+
+    switch(choix_menu)
+    {
+        case 'P':
+            printf("%s", NAME_M_PRINICIPAL);
+            PRINT_SAUT_LIGNE;
+            Template_Menu_Ligne();
+            PRINT_SAUT_LIGNE;
+            Template_Choix_Menu_Principal();
+        break;
+
+        case '1':
+            printf("%s", NAME_M_OP_SIMPLE);
+            PRINT_SAUT_LIGNE;
+            Template_Menu_Ligne();
+            PRINT_SAUT_LIGNE;
+            Template_Choix_Menu_OP_Simple();
+            PRINT_SAUT_LIGNE;
+            PRINT_SAUT_LIGNE;
+            var_retour = Selection_Menus('C');
+            Template_Display_Menu_OP_Simple(var_retour);
+            PRINT_SAUT_LIGNE;
+            PRINT_SAUT_LIGNE;
+        break;
+
+        case '2':
+            printf("%s", NAME_M_CONV);
+            PRINT_SAUT_LIGNE;
+            Template_Menu_Ligne();
+            PRINT_SAUT_LIGNE;
+            Template_Choix_Menu_Conversion();
+            PRINT_SAUT_LIGNE;
+            PRINT_SAUT_LIGNE;
+            var_retour = Selection_Menus('C');
+            Template_Display_Menu_Conversion(var_retour);
+            PRINT_SAUT_LIGNE;
+            PRINT_SAUT_LIGNE;
+        break;
+
+        case 'A':
+            printf("%s", NAME_M_ASTUCE_INCR);
+            PRINT_SAUT_LIGNE;
+            Template_Menu_Ligne();
+            PRINT_SAUT_LIGNE;
+            Help_Printf();;
+        break;
+
+        default:
+            printf("LA SELECTION N'EXISTE PAS !!!");
+            PRINT_SAUT_LIGNE;
+            Template_Menu_Ligne();
+        break;
+    }
+}
+
+
+//----------------------------------------------------------------------------------//
+// Nom de la fonction   : Template_Display_Menu_OP_Simple
+// Entrée / Sortie      : choix_menu / - /
+// Description          : affiche le menu dans lequel on se situe avec les
+//                        differentes options
+// Date modfification   : le 23.10.2017
+// Remarque             : -
+//----------------------------------------------------------------------------------//
+void Template_Display_Menu_OP_Simple(char choix_menu)
+{
+    //--- déclaration de variable interne ---//
+    char i;
+
+    //--- affiche une ligne entière d'étoile ---//
+    PRINT_SAUT_LIGNE;
+    Template_Menu_Ligne();
+
+    //--- boucle pour afficher x caractère sur une ligne ---//
+    for(i = 0; i < 3; i++)
+        printf("*");
+
+    //--- pour l'esthétique afficher un espace avant le mots "menu" ---/
+    PRINT_ESPACE;
+    PRINT_M_MENU;
+
+    switch(choix_menu)
+    {
+        case 'P':
+            printf("%s", NAME_M_PRINICIPAL);
+            PRINT_SAUT_LIGNE;
+            Template_Menu_Ligne();
+            PRINT_SAUT_LIGNE;
+            Template_Choix_Menu_Principal();
+        break;
+
+        case '1':
+            printf("%s", NAME_M_ADITION);
+            PRINT_SAUT_LIGNE;
+            Template_Menu_Ligne();
+            PRINT_SAUT_LIGNE;
+            Addition();
+        break;
+
+        case '2':
+            printf("%s", NAME_M_SOUSTRACTION);
+            PRINT_SAUT_LIGNE;
+            Template_Menu_Ligne();
+            PRINT_SAUT_LIGNE;
+            Soustraction();
+        break;
+
+        case '3':
+            printf("%s", NAME_M_MULTIPLICATION);
+            PRINT_SAUT_LIGNE;
+            Template_Menu_Ligne();
+            PRINT_SAUT_LIGNE;
+            Multiplication();
+        break;
+
+        case '4':
+            printf("%s", NAME_M_DIVISION);
+            PRINT_SAUT_LIGNE;
+            Template_Menu_Ligne();
+            PRINT_SAUT_LIGNE;
+            Division();
+        break;
+
+		case '5':
+			printf("%s", NAME_M_CALCUL_SEG_AB);
+			PRINT_SAUT_LIGNE;
+			Template_Menu_Ligne();
+			PRINT_SAUT_LIGNE;
+			Calculs_Segment(); 
+		break; 
+
+        case 'A':
+            printf("%s", NAME_M_ASTUCE_INCR);
+            PRINT_SAUT_LIGNE;
+            Template_Menu_Ligne();
+            PRINT_SAUT_LIGNE;
+            Astuce_Calcul();
+        break;
+
+        default:
+            printf("LA SELECTION N'EXISTE PAS !!!");
+            PRINT_SAUT_LIGNE;
+            Template_Menu_Ligne();
+        break;
+    }
+}
+
+
+//----------------------------------------------------------------------------------//
+// Nom de la fonction   : Template_Display_Menu_Conversion
+// Entrée / Sortie      : choix_menu / - /
+// Description          : affiche le menu dans lequel on se situe avec les
+//                        differentes options -> ici menu de conversions
+// Date modfification   : le 23.10.2017
+// Remarque             : -
+//----------------------------------------------------------------------------------//
+void Template_Display_Menu_Conversion(char choix_menu)
+{
+    //--- déclaration de variable interne ---//
+    char i, choix_char;
+
+    int choix_int;
+
+    //--- affiche une ligne entière d'étoile ---//
+    PRINT_SAUT_LIGNE;
+    Template_Menu_Ligne();
+
+    //--- boucle pour afficher x caractère sur une ligne ---//
+    for(i = 0; i < 3; i++)
+        printf("*");
+
+    //--- pour l'esthétique afficher un espace avant le mots "menu" ---/
+    PRINT_ESPACE;
+    PRINT_M_MENU;
+
+    switch(choix_menu)
+    {
+        case '1':
+            printf("%s", NAME_M_CONV_CHAR_NUM);
+            PRINT_SAUT_LIGNE;
+            Template_Menu_Ligne();
+            PRINT_SAUT_LIGNE;
+            PRINT_SELECTION_CHAR;
+            choix_char = Select_Var_Cara();
+            Conv_Char_Num(choix_char);
+        break;
+
+        case '2':
+            printf("%s", NAME_M_CONV_NUM_CHAR);
+            PRINT_SAUT_LIGNE;
+            Template_Menu_Ligne();
+            PRINT_SAUT_LIGNE;
+            choix_int = Select_Var_Entier(LIMITE_NB_MAX, LIMITE_NB_MIN);
+            Conv_Num_Char(choix_int);
+        break;
+
+        case '3':
+            printf("%s", NAME_M_CONV_NUM_OCT_HEX);
+            PRINT_SAUT_LIGNE;
+            Template_Menu_Ligne();
+            PRINT_SAUT_LIGNE;
+            choix_int = Select_Var_Entier(LIMITE_NB_MAX, LIMITE_NB_MIN);
+            Conv_Num_Oct_Hex(choix_int);
+        break;
+
+        case 'A':
+            printf("%s", NAME_M_ASTUCE_CONV_CHAR_NUM);
+            PRINT_SAUT_LIGNE;
+            Template_Menu_Ligne();
+            Astuce_ASCII();
+        break;
+
+
+        default:
+            printf("LA SELECTION N'EXISTE PAS !!!");
+            PRINT_SAUT_LIGNE;
+            Template_Menu_Ligne();
+        break;
+    }
+
+}