Aller au contenu

Un menu en C


M3rCo

Messages recommandés

Le switch te permet de faire un "if ... then ...else ..."

cad :

un selon que (valeur = ... faire)

On va commencer par un exemple:

void main(...)

{

int a;

...

printf("MENU/n");

printf("choix 1 : ....\n");

printf("choix 2 : ....\n");

...

printf("choix n : ....\n");

scanf("%d ", &a);

switch (a)

{

case 1:

.... // Faire le choix 1

break;

case 2:

break;

....

default;

break;

}

}

Ca correspond à

void main (...)

{

....

scanf(....);

if (a == ...)

then

{

}

elseif (a == ...)

then

{

}

elseif (a == ...)

...

**********

Pour le fonctionnement

switch(valeur)

{

case valeur_choix

}

valeur et valeur_choix doivent etre de meme type (int, float, char,...)

ne fonctionnent pas avec le type string, ni les pointeurs, ni les types "farfelus"

Apres le 'case'

il faut mettre un 'break'

Ce 'break' signifie 'ne pas exécuter le case suivant'

(tu peux faire un test en mettant des printf dans les cases)

'default', signifie 'tous les autres cas'

voila

Lien vers le commentaire
Partager sur d’autres sites

#include<stdio.h>

#include<conio.h>

main()

{

switch(choix)

{

case 1: printf("Min/Max"); break;

case 2: printf("suite/carré/somme"); break;

case 3: printf("echec"); break;

default: printf("erreur")

    }

return 0;

}

Je pense ke c fo ?

il te faut rajouter

int choix;

ensuite il te faut faire un menu :

printf("1 : Min-Max\n");

printf("2 : Suite-Carré-Somme\n");

printf("3 : Echec\n");

scanf("%d", &choix);

apres tu mets ton switch

sinon le compilo il va te dire "connait pas choix"

Lien vers le commentaire
Partager sur d’autres sites

#include<stdio.h>

#include<conio.h>

main()

{

int choix;

{

printf("MENU/n");

printf("1 : Min-Max\n");

printf("2 : Suite-Carré-Somme\n");

printf("3 : Echec\n");

scanf("%d", &choix);

}

switch(choix)

{

case 1: printf("Min-Max\n"); break;

case 2: printf("Suite-Carré-Somme\n"); break;

case 3: printf("Echec\n"); break;

default: printf("erreur");

}

return 0;

}

Ué mon premeir menu mé le prof ve kil soit un pe plus convivial => kil soit center , encadrer , é avec un efface écran ! mogwai met toi prof je comprend mieux avec toi ke mon prof

Lien vers le commentaire
Partager sur d’autres sites

Pour positionner du texte, il faut utiliser la méthode GotoXY

(Ca fonctionne qu'en mode texte)

Par contre, j'ai oublié quelle est la bibliothèque..... :craint:

Avant le printf, tu appelles cette méthode :

GotoXY (ligne, colonne);

ensuite le prochain printf, sera positionné à cet endroit

le prochain prinf, lui, sera à la suite ou en dessous (ca dépend si tu mets '\n' dans le printf)

L'écran DOS "standard", fait 80x25

le point 1, 1 se trouve en haut à gauche

le point 80, 25 se trouve en bas à droite

Si tu veux vraiment centrer, il te faut faire une methode, ressemblant à :

void Centrer (char* Texte, int Ligne)

{

int Longueur_texte = length(Texte);

int Colonne = (80 - Longueur_texte) / 2 + 1;

GotoXY(Ligne, Colonne);

printf(Texte);

}

Je fais ça rapidement, de tête, donc pas sûr que ça fonctionne

mais l'idée y est..

Merci pour le compliment :-D:chinois:

}

Lien vers le commentaire
Partager sur d’autres sites

Oups, j'ai oublié les couleurs, et le reste

la biblio, c'est conio.h

Les méthodes c'est

textcolor (couleur_du_texte)

textbackground (couleur_du_fond)

Pour effacer l'ecran :

clrscr()

les couleurs : (il y en a 16 : de 0 à 15)

soit tu appelles

textcolor (0);

soit tu appelles

textcolor(BLACK)

Les autres couleurs :

BLACK, BLUE, GREEN, CYAN, RED, MAGENTA, BROWN, LIGHTGRAY, DARKGRAY, LIGHTBLUE, LIGHTGREEN, LIGHTCYAN, LIGHTRED, LIGHTMAGENTA, YELLOW, WHITE

et BLINK (clignotant, le numéro est 128)

Pour faire des rectangles, tu "t'amuses" avec les caractères

ou alors, un peu plus dur, tu fais une methode :

void Rectangle(int X1, int Y1, int X2, int Y2)

{

....

GotoXY(..., ...);

printf("*");

...

}

Lien vers le commentaire
Partager sur d’autres sites

#include<stdio.h>

#include<conio.h>

main()

{

int choix;

{

printf("MENU/n");

printf("1 : Min-Max\n");

printf("2 : Suite-Carré-Somme\n");

printf("3 : Echec\n");

scanf("%d", &choix);

}

switch(choix)

{

case 1: printf("Min-Max\n"); break;

case 2: printf("Suite-Carré-Somme\n"); break;

case 3: printf("Echec\n"); break;

default: printf("erreur");

}

return 0;

}

Ué mon premeir menu mé le prof ve kil soit un pe plus convivial => kil soit center , encadrer , é avec un efface écran ! mogwai met toi prof je comprend mieux avec toi ke mon prof

Il affiche des trucs, mais ne calcule rien, normal?

Lien vers le commentaire
Partager sur d’autres sites

Car notre prof nous dis ce kil fo faire (pa un poly rien ) et lui pedant ce temps il é sur caramail et il écoute sa vieil zik ko mé obligé de subir  :chinois:

Et encore tu debutes dans la prog C/C++

qu'est ce que ca va être quand vous allez attaquer les pointeurs et la prog objet....

Tu peux aller sur ce site, il y a qqs tutoriaux C/C++

http://c.developpez.com/cours/

Mais pour être bon en C/C++, faut déjà être bon en algorithmie.

une fois que l'algo est bon et optimisé, le passage au langage est assez rapide (quoique, certains langages sont vraiment :craint: )

Lien vers le commentaire
Partager sur d’autres sites

Mon prob, c'est l'orienté objet... Le concept d'objet m'est... étranger... Faudrait que je me penche dessus... Les pointeurs, :chinois:

L'objet, ça semble compliqué au début, ensuite "no pb"

Quoique, avec les surcharges, le polymorphisme, et tout le reste

il suffit de respirer un bon coup, et zou.

En fait

ca ressemble aux "struct"

sauf qu'en plus des variables "habituelles", tu peux rajouter des méthodes.

Le plus ouf, c'est que tu peux surcharger les operateurs (+, -, *, /, =)

C'est à dire, que tu veux modifier le comportement habituel de ses signes, voire meme de faire l'addition (ou autre) de 2 objets non additionnables

Au niveau du code, tu gagnes en temps de développement,

Au niveau exécution, où tu perds un peu, mais c'est négligeable

Un petit exemple :

Windows !!!

l'objet de base, c'est une zone rectangulaire

ensuite tous les autres objets héritent de cet objet de base

et donc t'obtiens tous les autres objets (fenetres, bouton, menu, ...)

et chacun a ses propres methodes (clic_dessus, relache, got_focus, lost_focus, ...)

Ensuite quand tu developpes ton appli windows

tu dis si tu veux que les objets windows fassent en + qqc ou s'ils font leur "bout de code habituel"

Voilou

Lien vers le commentaire
Partager sur d’autres sites

L'objet, ça semble compliqué au début, ensuite "no pb"

Quoique, avec les surcharges, le polymorphisme, et tout le reste

il suffit de respirer un bon coup, et zou.

En fait

ca ressemble aux "struct"

sauf qu'en plus des variables "habituelles", tu peux rajouter des méthodes.

Le plus ouf, c'est que tu peux surcharger les operateurs (+, -, *, /, =)

C'est à dire, que tu veux modifier le comportement habituel de ses signes, voire meme de faire l'addition (ou autre) de 2 objets non additionnables

Au niveau du code, tu gagnes en temps de développement,

Au niveau exécution, où tu perds un peu, mais c'est négligeable

Un petit exemple :

Windows !!!

l'objet de base, c'est une zone rectangulaire

ensuite tous les autres objets héritent de cet objet de base

et donc t'obtiens tous les autres objets (fenetres, bouton, menu, ...)

et chacun a ses propres methodes (clic_dessus, relache, got_focus, lost_focus, ...)

Ensuite quand tu developpes ton appli windows

tu dis si tu veux que les objets windows fassent en + qqc ou s'ils font leur "bout de code habituel"

Voilou

Le concept, en lui-même je le connais à peu près, c'est sa mise en applications qui pour l'instant me chagrine... Ca me semble pas naturel...

Mais je vais essayer de recup soit un cours d'objet, soit un cours de GTK...

Lien vers le commentaire
Partager sur d’autres sites

Le concept, en lui-même je le connais à peu près, c'est sa mise en applications qui pour l'instant me chagrine... Ca me semble pas naturel...

Mais je vais essayer de recup soit un cours d'objet, soit un cours de GTK...

Comme exemple...euh.....

Un jeu de stratégie genre Warcraft

chaque unité est un objet.

Chaque unité hérite de l'objet unité de base à laquelle tu lui rajoutes ses propres specs....

Moi, mon pb, c'est la notion de Template.

J'en ai peu entendu parler, mais je ne sais pas à quoi ça sert et comment ça fonctionne

Pour les fous du C/C++, deux petits tests (en anglais), 1 facile, 1 plus dur

http://www.cpp-home.com/tests/ind.php

Lien vers le commentaire
Partager sur d’autres sites

#include<stdio.h>

#include<conio.h>

main()

{

int choix;

{

printf("MENU/n");

printf("1 : Min-Max\n");

printf("2 : Suite-Carré-Somme\n");

printf("3 : Echec\n");

scanf("%d", &choix);

}

switch(choix)

{

case 1: printf("Min-Max\n"); break;

case 2: printf("Suite-Carré-Somme\n"); break;

case 3: printf("Echec\n"); break;

default: printf("erreur");

}

   

return 0;

}

Ué mon premeir menu mé le prof ve kil soit un pe plus convivial => kil soit center , encadrer , é avec un efface écran ! mogwai met toi prof je comprend mieux avec toi ke mon prof

Il affiche des trucs, mais ne calcule rien, normal?

ui normale c jsute le menu les prog je dois les faire aprés :chinois:

héhé ca fé ke 3 semaine je fé du c avec 4h de cours par semaine

Lien vers le commentaire
Partager sur d’autres sites

Le concept, en lui-même je le connais à peu près, c'est sa mise en applications qui pour l'instant me chagrine... Ca me semble pas naturel...

Mais je vais essayer de recup soit un cours d'objet, soit un cours de GTK...

Comme exemple...euh.....

Un jeu de stratégie genre Warcraft

chaque unité est un objet.

Chaque unité hérite de l'objet unité de base à laquelle tu lui rajoutes ses propres specs....

Moi, mon pb, c'est la notion de Template.

J'en ai peu entendu parler, mais je ne sais pas à quoi ça sert et comment ça fonctionne

Pour les fous du C/C++, deux petits tests (en anglais), 1 facile, 1 plus dur

http://www.cpp-home.com/tests/ind.php

J'ai TP de C dans 30min... Encore des prog à la con que j'aurais torché en 5min... Vais me faire chier, vais boire du café pour passer le temps... Enfin tout ça tout ça...

Pour vous donner une idée du niveau où on en est rendu, je mets mon code pour l'exo le plus difficile de la semaine dernière, tout en sachant que je suis aller bien plus loin que la demande du prof (il a pas demandé de malloc, de pointeur ou autres)

#include <stdio.h>

#define max(a,b) a>b?a:b
#define min(a,b) a<b?a:b

int main ()
{
int *tab;
int i,n;
int maxi,mini;

/*Saisie du nombre de valeurs*/
printf("Combien de valeur voulez-vous comparer ?\n");
scanf("%d",&n);

/*On crée le tableau tab et on l'initialise à 0*/
tab=(int *)calloc(n,sizeof(int));

/*Saisie du premier nombre*/
printf("Donnez le premier entier\n");
scanf("%d",&tab[0]);
maxi=tab[0]; /*On utilise le premier nombre pour "initialiser" le maximum*/
mini=tab[0]; /*On utilise le premier nombre pour "initialiser" le minimum*/

/*Saisie des nombres suivants*/
for(i=1;i<n;i++)
{
 printf("Donnez le %de entier\n",i+1);
 scanf("%d",&tab[i]);
}

/*Recherche du maximum et du minimum*/
for(i=0;i<n;i++)
{
 maxi=max(maxi,tab[i]);
 mini=min(mini,tab[i]);
}

/*Affichage*/
printf("Le maximum est : %d\n",maxi);
printf("Le minimum est : %d\n",mini);
}

Lien vers le commentaire
Partager sur d’autres sites

J'ai TP de C dans 30min... Encore des prog à la con que j'aurais torché en 5min... Vais me faire chier, vais boire du café pour passer le temps... Enfin tout ça tout ça...

Moi aussi, c'était le cas, quand j'étais à l'école (oulala ça date !!)

sauf que le prof était sympa, il donnait du boulot supplémentaire pour les meilleurs

pendant qu'il s'occupait des moins bons.

Sauf que, - souvent - le boulot supplémentaire ne suffisait pas.

Donc glandage à fond, pendant les cours de prog

Lien vers le commentaire
Partager sur d’autres sites

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

main()

{

int choix;

{

system("cls");

printf("..:MENU:... By M3r v1.0\n\n\n\n\n");

printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n",201,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,187);

printf("%c --> 1 : ..:Min-Max:.. %c\n",186,186);

printf("%c --> 2 : ..:Suite-Carre-Somme:..%c\n",186,186);

printf("%c --> 3 : ..:Echec:.. %c\n",186,186);

printf("%c --> 4 : ..:Retour:.. %c\n\n\n\n",186,186);

printf("Faites votre Choix\n");

scanf("%d", &choix);

}

switch(choix)

{

case 1: printf("Min-Max\n"); break;

case 2: printf("Suite-Carre-Somme\n"); break;

case 3: printf("Echec\n"); break;

default: printf("erreur");

}

return 0;

}

je me l'envoie pour finir cette nuit ché c a rendre poyur lundi

Lien vers le commentaire
Partager sur d’autres sites

Félicitations, c'est vraiment incroyable la façon comment vous maîtrisez ce langage!! :D

Moi, j'en suis au début, enfin en 2em année de BTS IG 2 et j'ai l'impression de ne pas du tout avancée! :craint:

Comment faire, sachant que j'ai 5 projets à faire d'ici la fin de l'année (2 C/C++, 1 VB et VBA et PHP ou ASP...)!! :chinois:

Quelle galère.... :-D

Lien vers le commentaire
Partager sur d’autres sites

J'ai TP de C dans 30min... Encore des prog à la con que j'aurais torché en 5min... Vais me faire chier, vais boire du café pour passer le temps... Enfin tout ça tout ça...

Moi aussi, c'était le cas, quand j'étais à l'école (oulala ça date !!)

sauf que le prof était sympa, il donnait du boulot supplémentaire pour les meilleurs

pendant qu'il s'occupait des moins bons.

Sauf que, - souvent - le boulot supplémentaire ne suffisait pas.

Donc glandage à fond, pendant les cours de prog

Moi, le prof est un boulet...

Alors, je fais des essais, entre macro dans le préprocess et une fonction standard par ex... (cf plus haut, #define...)

Lien vers le commentaire
Partager sur d’autres sites

Félicitations, c'est vraiment incroyable la façon comment vous maîtrisez ce langage!! :prof:

Moi, j'en suis au début, enfin en 2em année de BTS IG 2 et j'ai l'impression de ne pas du tout avancée! :heben:

Comment faire, sachant que j'ai 5 projets à faire d'ici la fin de l'année (2 C/C++, 1 VB et VBA et PHP ou ASP...)!! :keskidit:

Quelle galère.... :prof:

Lol je suis en ig1 :pleure:

ta 1 an de plus ke moi :keskidit:

Lien vers le commentaire
Partager sur d’autres sites

Félicitations, c'est vraiment incroyable la façon comment vous maîtrisez ce langage!! :pleure:

Moi, j'en suis au début, enfin en 2em année de BTS IG 2 et j'ai l'impression de ne pas du tout avancée! :heben:

Comment faire, sachant que j'ai 5 projets à faire d'ici la fin de l'année (2 C/C++, 1 VB et VBA et PHP ou ASP...)!! :keskidit:

Quelle galère.... :prof:

Lol je suis en ig1 :pleure:

ta 1 an de plus ke moi :keskidit:

Bein alors, je tiens à te souhaiter bonne chance!! :prof:

:pleure:

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...