forked from philouxy/langage_C
-
Notifications
You must be signed in to change notification settings - Fork 0
/
template_menu.c
177 lines (154 loc) · 6.05 KB
/
template_menu.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
//-----------------------------------------------------------------------------------//
// Nom du projet : Langage_C_fixme
// Nom du fichier : template_menu.c
// Date de création : 25.02.2015
// Date de modification : 16.04.2023
//
// 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 <stdlib.h> // pour les fonctions systèmes
//--- 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 13.03.2019
// 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++)
#ifdef VISUAL_STUDIO
printf("*");
#else
printf("*");
PRINT_SAUT_LIGNE;
#endif // VISUAL_STUDIO
}
//----------------------------------------------------------------------------------//
// Nom de la fonction : Template_Display_Menu
// Entrée / Sortie : choix_menu / - /
// Description : affiche le menu dans lequel on se situe
// Date modfification : le 16.04.2023
// Remarque : -
//----------------------------------------------------------------------------------//
void Template_Display_Menu(e_infoMenus 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 m_principal:
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;
case m_arithmetique:
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(select_sousMenu); //-> on indique que l'on veut un caractère en retour
DELETE_SCREEN;
//-- appel d'un nouveau menu --//
Template_Display_Menu_Arithm(car_retour); //-> affiche le nouveau menu sélectionné
PRINT_SAUT_LIGNE;
break;
case m_affichage:
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(select_sousMenu); //-> on indique que l'on veut un caractère en retour
DELETE_SCREEN;
//-- appel d'un nouveau menu --//
Template_Display_Menu_Display(car_retour); //-> affiche le nouveau menu sélectionné
PRINT_SAUT_LIGNE;
break;
case m_astucePrint:
printf("%s", NAME_M_ASTUCE_PRINTF);
PRINT_SAUT_LIGNE;
Template_Menu_Ligne();
PRINT_SAUT_LIGNE;
Help_Printf();
break;
case m_astuceLoop:
printf("%s", NAME_M_ASTUCE_LOOP);
PRINT_SAUT_LIGNE;
Template_Menu_Ligne();
PRINT_SAUT_LIGNE;
Help_Loop();
break;
case m_astuceMemory:
printf("%s", NAME_M_ASTUCE_MEMOIRE);
PRINT_SAUT_LIGNE;
Template_Menu_Ligne();
PRINT_SAUT_LIGNE;
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 28.05.2019
// 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("[C] --- %s ---", NAME_M_ASTUCE_MEMOIRE);
PRINT_SAUT_LIGNE;
printf("[Q] --- help ---\n");
printf("[E] --- fermer le programme ---");
}
//printf("\x1b[1;1 H]");
//system("cls");