IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Problème logiciel de caisse [Langage/Algorithme]


Sujet :

C++Builder

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 23
    Points : 22
    Points
    22
    Par défaut Problème logiciel de caisse
    Bonjour,

    Je vous explique un peu ce que je désire faire.
    C'est un petit programme de caisse enregistreuse pour une pizzeria que j'essaie de faire pour moi même
    Ça avance bien mais je rencontre certains difficultés, et surtout celle que je vas vous énoncer ci-dessous :
    Un utilisateur sélectionne dans une ComboBox le nom d'une pizza, une fois celle ci sélectionne, un autre Form apparait avec 3 bouton radio avec la taille indiquer (junior - senior et familiale).

    Je souhaiterais qu'après la sélection d'un bouton, qu'un clique sur "valide"r affiche sur le form précédent dans un Memo le nom de la pizza ainsi que la taille sélectionné juste a coté.
    Et très important également le prix, mais étant donné que le prix est diffèrent selon le pizza et la taille ca complique un peu les choses.

    j'ai fais un peu en sauvage un code du genre :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Tarif * Prix = new Tarif;
    float selection;
     
         TComboBox *cbox = (TComboBox*)Sender ; //Récupération du Combobox
        if(( cbox ->ItemIndex != -1 ) && (cbox->ItemIndex!= 0)) // test si une valeur est sélectionnée
        {
            Form7->Show();
            Memo1->Lines->Add( cbox ->Text ) ;  //ajout a la suite du Memo
        }
     
     
        if(Form2->ComboBox1->ItemIndex==1)
        {
            selection= Prix->arizonajunior; // Le prix est incrémenté dans le champ selection
        }
        else if(Form2->ComboBox1->ItemIndex==2)
        {
            selection= Prix->auberginajunior;
     
        }
        else if(Form2->ComboBox1->ItemIndex==3)
        {
            selection= Prix->buffalojunior;
     
        }
    Voici à quoi ressemble mon fichier Tarif :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Tarif :: Tarif ()
    {
     
         //-------PIZZAS-----------
         margueritajunior=6.00;
         margueritasenior=9.00;
         margueritafam=12.00;
     
         marinarajunior=8.50;
         marinarasenior=12.00;
         marinarafam=17.00;
     
         reginajunior=8.50;
         reginasenior=12.00;
         reginafam=17.00;
     
         calzonejunior=8.50;
         calzonesenior=12.00;
         calzonefam=17.00;
     
         campionejunior=8.50;
         campionesenior=12.00;
         campionefam=17.00;
    }
    Mais je ne sais pas comment récupérer ce prix... ni afficher dans mon memo toute ces infos sachant que je ne peux pas utiliser de base de donnés, j'ai pensé a un fichier texte mais pareil je ne vois pas comment l'utiliser.

    je peux fournir les sources ci cela peut vous aidez à comprendre.

    Merci beaucoup !

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Points : 446
    Points
    446
    Par défaut
    C'est effectivement un peu bourrin...

    Si tu as déclaré ta classe "Tarif" comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    class Tarif  {
     
      public:
         //-------PIZZAS-----------
         float margueritajunior;
         float margueritasenior;
         float margueritafam;
     
    ...
    }
    alors tu peux retrouver chaque prix comme cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      float prixPizza=Prix->margueritajunior;
    Mais ton code n'est pas très évolutif. Tu devrais plutôt faire un table croisé qui donne le prix d'une pizza selon son modèle et sa taille.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    typedef enum { margarita, marinara, regina, calzone, campione } PizzaType;
    typedef enum { junior, senior, familiale } PizzaTaille;
     
    class Tarif {
     
      public:
        Tarif();
     
         float PrixPizza(PizzaType pizza,PizzaTaille taille) const;
     
      protected:
         float tarif[3][3];
    };
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
      Tarif::Tarif() {
          tarif[margarita][junior]=6.00;
          tarif[margarita][senior]=9.00;
          tarif[margarita][familiale ]=12.00;
     
          tarif[marinara][junior]=8.50;
    etc...
       };
     
      float Tarif::PrixPizza(PizzaType pizza,PizzaTaille taille) const {
     
        if ((pizza<margarita)||(pizza>campione)||(taille<junior)||(taille>familiale)){
          // erreur
          return 0;
        }
     
        return tarif[pizza][taille];
     
      }
    Et pour récupérer le prix d'une pizza:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
       float prix=Tarif->PrixPizza[Form2->ComboBox1->ItemIndex-1][cbox ->ItemIndex-1];

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 23
    Points : 22
    Points
    22
    Par défaut
    Merci beaucoup pour ton aide, je récupère bien les prix.

    Mais comment faire pour que toutes les sommes s'ajoute dans un edit?

    A chaque fois que je sélectionne un autre élément, ça efface mon prix par celui que je viens de sélectionner...

    En gros ce que je cherche, c'est d'afficher le total.

    Merci

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 573
    Points : 713
    Points
    713
    Par défaut
    Salut
    Cômme çà ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Edit1->Text=Edit1->Text.ToDouble()+Tarif->PrixPizza[Form2->ComboBox1->ItemIndex-1][cbox ->ItemIndex-1].ToDouble();

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 23
    Points : 22
    Points
    22
    Par défaut
    Mon code ressemble un peu plus à ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    class Tarif
     {
    	 public :
     
    	 Tarif();
    	 ~Tarif();
     
     
    	 //-------SALADES--------
    	 float salades;
    	 //-------PANINIS--------
    	 float paninis;
    	 //-------PIZZ'DWITCH----
    	 float pizzdwitch;
     
             float margueritajunior;
    	 float margueritasenior;
    	 float margueritafam;
     
    	 float marinarajunior;
    	 float marinarasenior;
    	 float marinarafam;
     
    };
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Tarif :: Tarif ()
    {
    //-------SALADES--------
    	 salades=5.50;
    	 //-------PANINIS--------
    	 paninis=4.00;
    	 //-------PIZZ'DWITCH----
    	 pizzdwitch=6.00;
    	 //-------PATES----------
    	 pates=7.50;
    	 //-------TEX MEX--------
    	 chicken8=6.00;
    	 chicken12=7.50;
     
    	 nuggets8=5.50;
    	 nuggets12=7.00;
     
    	 potatoes=3.00;
     
              margueritajunior=6.00;
    	 margueritasenior=9.00;
    	 margueritafam=12.00;
     
    	 marinarajunior=8.50;
    	 marinarasenior=12.00;
    	 marinarafam=17.00;
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    void __fastcall TForm2::ComboBox8Change(TObject *Sender)
    {
    	float prixselection;
    	 TComboBox *cbox = (TComboBox*)Sender ; //Récupération du Combobox
    	if(( cbox ->ItemIndex != -1 )|| ( cbox ->ItemIndex != 0))   // test si une valeur est sélectionnée
    	{
    		if(ComboBox8->ItemIndex==1)
    		{
    			prixselection=Prix->HG100;
    		}
    		if(ComboBox8->ItemIndex==2)
    		{
    			prixselection=Prix->HG500;
    		}
    		if(ComboBox8->ItemIndex==3)
    		{
    			prixselection=Prix->magnum;
    		}
    		if (MessageDlg("Validez-vous la selection?", mtConfirmation, TMsgDlgButtons() << mbYes << mbNo, 0) == mrYes)
    		Memo1->Lines->Add( cbox ->Text += prixselection ) ;  //ajout a la suite du Memo
     
     
    	}
    		Edit1->Text=prixselection;
    }

    je pense qu'il me manque un methode du genre :

    par contre je ne sais pas quoi mettre comme argument...
    afin de pouboir renvoyer le prix a chaque fois dans mon edit, car là actuellement je ne vois pas comment c'est possible...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème logiciel Gevalt
    Par chandlerbing87 dans le forum Bioinformatique
    Réponses: 0
    Dernier message: 10/06/2010, 14h09
  2. Le problème logiciel: une solution evidente(?) et pourtant.
    Par kisitomomotene dans le forum Forum général ERP
    Réponses: 7
    Dernier message: 11/12/2007, 11h33
  3. Problème logiciel VB
    Par morrison29 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 31/10/2006, 18h17
  4. Problème logiciel d'apercu des images windows
    Par mystar dans le forum Windows
    Réponses: 4
    Dernier message: 28/10/2006, 11h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo