Besoin d'aide pour ce programme

Résolu
ibnoul Messages postés 6 Date d'inscription mercredi 11 avril 2007 Statut Membre Dernière intervention 12 avril 2007 - 11 avril 2007 à 16:51
ibnoul Messages postés 6 Date d'inscription mercredi 11 avril 2007 Statut Membre Dernière intervention 12 avril 2007 - 12 avril 2007 à 17:00
Salut j'aimerai avoir de l'aide a propos de ce programme en c++ il me sigale des errreurs et je ne parvient pas a les corriger. On me demande creer un menu avec a l'interieur des choix  concernant la gestion d'un stock de marchadise.

Voici le code que j'ai pu ecrire et qui contient des erreurs Merci de m'aider

#include <stdio.h>
#include <conio.h>
#define n 10 tva 0.18
int menu (void);
void listepdt(void) ;
void saisiecode(void);
void facture (void);
struct produit
{
  char m[10];
  char o [10];
  char t [10];
  char p [10];
  };

   produit[n] ;

  int menu (void);
  {
    int choix;
     clrscr();
     printf ("Menu principal \n");
     printf ("1. liste des produits \n");
     printf ("2. Saisie code des produits\n");
     printf ("3. Impression de la facture\n");
     printf ("4.Quitter le Menu\n");
     printf (" Merci de faire votre choix :_");
     scanf ("%d",& choix);
     return (choix);
     }
      void listpdt (void);
      {
    char m [10];
    char o [10];
    char t [10];
    char p [10] ;

    int pu, qte, pht, ttc, nbp, mtc, total, rel;
      char choix;
       nbp=0; total=0;
       while ((nbp<4) && choix!= q));
        printf ("Entrer le code u produit ou Q pour quitter \n");
        scanf ("%c",& choix);
        printf(" Entrer la qunatit‚ de produit\n");
        scanf("%d",& qte);
         switch (choix);
         {
          case 'm' : pu=500
           ttc= (qte*pu)(tva+1);
           break;
           case 'o' : pu=100
           ttc= (qte*pu)(tva+1);
           break;
           case 'p' : pu=1200
           ttc= (qte*pu)(tva+1);
           break;
           case 't' : pu=100
           ttc= (qte*pu)(tva+1);
           break;
           case 'q'
        printf("merci de votre visite");
        break;
        default;
        printf("Le produit demand‚ n'existe pas dans nos raon\n");
        }
        total=total+ttc;
        nbp++;
        printf("Entrer le montant du client\n");
        scanf("%d",& mtc);
        rel=mtc-total;
        printf ("Le montant total :%d",total);
        printf("vore reliquat est de=%d",rel);
        }
        main()
        {
          int choix=menu();
          switch(choix);
          {
           case 1: printf("Liste des produit\n");
           break;
           case 2: printf("saisie code des produits\n");
           break;
           case 3: printf("Impression de la facture\n");
           break;
           case 4: printf("Quitter le menu\n");
           break;
           default : printf("Aucun produit n'a ‚t‚ saisie\n");
           }
           {
            int facture
             facture== total
              if total=0;
               {
            printf("votre facture ne peut etre imprim‚e\n");
            }
            }

13 réponses

ndubien Messages postés 557 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 10 mai 2014 4
11 avril 2007 à 23:14
Bonjour,
voilà ton code remis à neuf.


#include <stdio.h>
#include <conio.h>






int menu ();
void listepdt() ;
void saisiecode();
void facture ();






int menu (){
    int choix;
     printf ("Menu principal \n");
     printf ("1. liste des produits \n");
     printf ("2. Saisie code des produits\n");
     printf ("3. Impression de la facture\n");
     printf ("4.Quitter le Menu\n");
     printf (" Merci de faire votre choix :_");
     scanf ("%d",& choix);
     return (choix);
}



void listpdt (){



int tva=0.18;
    int pu=0;
    int qte=0;
    int pht=0;
    int ttc=0;
    int nbp=0;
    int mtc=0;
    int total=0;
    int rel=0;
      char choix;
       while ((nbp<4)&&choix!='Q'){
        printf ("Entrer le code u produit ou Q pour quitter \n");
        scanf ("%c",& choix);
        printf(" Entrer la qunatit? de produit\n");
        scanf("%d",& qte);
        switch(choix){
                      case 'm':pu=500;
           ttc=qte*pu*(tva+1);
           break;
           case 'o':pu=100;
           ttc=qte*pu*(tva+1);
           break;
           case 'p':pu=1200;
           ttc=qte*pu*(tva+1);
           break;
           case 't':pu=100;
           ttc=qte*pu*(tva+1);
           break;
           case 'q':
        printf("merci de votre visite");
        break;
        default : printf("Le produit demand? n'existe pas dans nos raon\n");
        break;
        }
        }
        total=total+ttc;
        nbp++;
        printf("Entrer le montant du client\n");
        scanf("%d",mtc);
        rel=mtc-total;
        printf ("Le montant total :%d",total);
        printf("vore reliquat est de=%d",rel);
}



int main(){
    int choix=menu();
    switch(choix)
    {
    case 1:
         printf("Liste des produit\n");
         break;
    case 2:
         printf("saisie code des produits\n");
         break;
    case 3:
         printf("Impression de la facture\n");
         break;
    case 4:
         printf("Quitter le menu\n");
         break;
    default :
            printf("Aucun produit n'a ?t? saisie\n");
            break;
    }
                  int total=0;
            int facture;
             facture=total;
              if (total==0) printf("votre facture ne peut etre imprim?e\n");
              return 0;
}



Mais à quoi servent :
char [10] m;
char [10] o;
char [10] t;
char [10] p;
listpdt ();
N'étant jamais appelés je les ai supprimés (sauf listpdt).

A propos pour utiliser switch il faut faire comme ça :

switch(ma_variable) {
   case 1:
      //Mon code//
      break;
   case 2:
      //Mon code//
      break;
   ...
   default:
      //Mon code//
      break;

Je pense que tu souhaite "void listpdt" retourne total à main. Pour celà il faudrait "int listpdt" et ajouter "return total;" à la fin.
Je pense qu'avant de te lancer dans la programmation à des fins personnelles tu devrait lire des tutoriaux tels que ceux que tu peux trouver sur : http://lesouriciergris.free.fr/

Nico
3
ndubien Messages postés 557 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 10 mai 2014 4
11 avril 2007 à 17:04
Bonjour,

Je vois tout d'abord une grosse erreur,
lorsque tu met : pu=500
tu oublis d'y ajouter un ;.
Ceci cause l'apparition de messages tels que :
syntax error before ')' token
(sous DEV-C++)

De plus je ne crois pas qu'il s'agisse de C++ mais plutôt de C.

Sinon pour le reste je ne vois pas trop.

Nico
0
ibnoul Messages postés 6 Date d'inscription mercredi 11 avril 2007 Statut Membre Dernière intervention 12 avril 2007
11 avril 2007 à 17:11
Merci pour la remarque je vais les ajouter.. c'est un programme en c autant pour moi.
Si tu pourrais le prendre et voir les erreurs que jai commis ça m'aideriass bcp
0
julien_boss Messages postés 165 Date d'inscription samedi 4 juin 2005 Statut Membre Dernière intervention 24 octobre 2007
11 avril 2007 à 17:19
WAW es tu sur de savoir programmer ?

int facture
             facture== total
              if total=0;

aurais tu voulu faire :
int facture;if(total 0) facture total;

pas de ; aprés un switch() :
switch(n)
{
   case 0: //code
   break;
}

#define n 10
#define tva 0.18
et non #define n 10 tva 0.18

j'en passe

essaie de compiler ton code, il comporte des erreurs tellement simple que le compilo va toutes te les signaler
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ndubien Messages postés 557 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 10 mai 2014 4
11 avril 2007 à 18:07
Bonjour julien_boss,

Ma question va paraître bête mais je pense qu'elle peut s'avérer interressante.

Il faut que je te demande :
Après un swith y a pas de ";" en C?

En tout cas y en a en c++ :
http://www.cppfrance.com/tutoriaux/DEBUTEZ-CPLUSPLUS_586.aspx (voir la fonction : void Saisie_utilisateur(int intChoix) ).

De plus maintenant que tu l'as dis le :
facture== total
if total=0;

ne passe pas inaperçut.

Merci d'avance pour ce renseignement.

Nico
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
11 avril 2007 à 18:38
void Saisie_utilisateur(int intChoix)







{







switch(intChoix)







{







case 1:







cin >> chrNombre;







break;







case 2:







cin >> chrOperand;







break;







}







}










Je ne vois pas de ; après le switch moi.



En C/C++, le ; à l'aire d'être accepté mais on peut très bien s'en passer.







C++ (@++)<!--
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
11 avril 2007 à 19:19
Quand je dis "après le switch", c'est après les parenthèses:
switch(...)
{
    ...
};

Mettre un ; directement après le switch:
switch(...);
C'est comme dire de ne rien faire du tout pour le switch et le reste,
Exemple:
{
    case ...:
    break;
    ...
}
sera interprété sans ce qui génèrera des erreurs assurément.

C++ (@++)<!--
0
ndubien Messages postés 557 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 10 mai 2014 4
11 avril 2007 à 19:25
Bonjour,

Je me suis mal exprimé lorsque je disais un point virgule (";") après le switch, c'était pour :
cin >> chrNombre;


par exemple.

Je tenterai de mieux m'exprimer la prochaine fois.

Nico
0
ibnoul Messages postés 6 Date d'inscription mercredi 11 avril 2007 Statut Membre Dernière intervention 12 avril 2007
11 avril 2007 à 21:31
Oui mais mon probléme n'est toujours pas réglé j'ai beau changé mais rien il m'indique des erreurs. Quelqu'un pourrai t'il me le corrigé afin de m'aider Merci
0
ibnoul Messages postés 6 Date d'inscription mercredi 11 avril 2007 Statut Membre Dernière intervention 12 avril 2007
12 avril 2007 à 01:36
Merci Nico pour le code sauf qu'il me signal juste une erreur a la fin il s'agit de cette ligne
facture=total; (l'erreur est : Undefined symbole 'total'.
j'ai pensé mettre total entre crochet mais ça ne passe pas pourrais tu voir a ton niveau ce que ça donne.

char [10] m;
char [10] o;
char [10] t;
char [10] p;
 c'était prevu pour un tableau qui contiendrait 10 pdts vu que tu les a enlevé c pas grave
0
ibnoul Messages postés 6 Date d'inscription mercredi 11 avril 2007 Statut Membre Dernière intervention 12 avril 2007
12 avril 2007 à 01:39
Merci pour le lien j'ai bien apprecié
0
ndubien Messages postés 557 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 10 mai 2014 4
12 avril 2007 à 12:11
Bonjour,

Lorsque je lance la compilation de ton application (du code que je t'ai modifié) en projet C console, elle s'effectue sans erreur (J'utilise DEV-C++).

Nico
0
ibnoul Messages postés 6 Date d'inscription mercredi 11 avril 2007 Statut Membre Dernière intervention 12 avril 2007
12 avril 2007 à 17:00
Salut! j'ai copié le code integralement et je l'ai ouvert avec mon compilateur mais il m'indique des erreurs. Seriat-il possible d'avoir le dans ma boite l'executable du projet et les fichiers qui y sont rataché merci. l'adresse c'est bbintadiop@hotmail.com Merci
0
Rejoignez-nous