Simulation de systeme de gestion de stock!

NG007 Messages postés 25 Statut Membre -  
NG007 Messages postés 25 Statut Membre -
Bonjour,
Salue tout le monde
J'ai un programme un petit peu difficil et j'ai deja trop calcule, mais je ne parviens pas à trouver la bonne solution.
Voici l'enoncé:
Principe: On suppose que vous disposez d'un vecteur produit, quantité, prix unitaire, quantité de seuil. A partir de ces variable proposer un programme permettant de:
* Realiser la saisie des produit stock;
*Et l'affichage de sproduit en rupture de stock.
SVP, j'espere pouvoir compter sur vous.Cela me ferait tres plaisir.
A voir également:

4 réponses

Utilisateur anonyme
 
Bonjour,

Dans quel langage programmes-tu ?

Qu'est ce que "quantité de seuil" ?
0
NG007 Messages postés 25 Statut Membre 4
 
Salue Tassin, moi je programme en c.
Tu peux laisser tomber la quantite de seuil.
0
Utilisateur anonyme > NG007 Messages postés 25 Statut Membre
 
J'essaye de bien comprendre le but du programme.

Confirme moi que j'ai coompris.

Tu veux créer un programme en C qui permettrait à l'utilisateur d'ajouter des produits (avec ses caractéristiques) dans un tableau et une méthode qui affiche les produits qui ne sont plus en stock ? (quantite = 0)

0
NG007 Messages postés 25 Statut Membre 4 > Utilisateur anonyme
 
Oui, vous avez bien compris l'enocé. Alors tu propose quoi?
0
Utilisateur anonyme
 
Voici ce que j'ai fait :

fichier main.c :
#include <stdio.h>
#include <stdlib.h>
#include "stocks.h"

#define TAILLE 64

void afficherProduit(Produit p){
printf("Nom : %s\tQantité : %d\tPrix unitaire : %.2f\n", p.nom, p.quantite, p.prixUnit);
}

void afficherTableau(Produit *p, int taille){
int i;
if(taille == 0)
printf("Tableau vide\n");
for(i = 0; i<taille;i++)
afficherProduit(p[i]);
}

void afficherRupture(Produit *p, int taille){
int i;
if(taille == 0)
printf("Tableau vide\n");
for(i = 0; i<taille;i++){
if(p[i].quantite <= 0)
afficherProduit(p[i]);
}
}

void saisie(Produit *prod){
char *nom;
char *qua;
char *pu;
nom = (char *)malloc(TAILLE * sizeof(char));
qua = (char *)malloc(TAILLE * sizeof(char));
pu = (char *)malloc(TAILLE * sizeof(char));
printf("Nom du produit : ");
fgets(nom, TAILLE, stdin);
nom[strlen(nom)-1] = '\0';
printf("Quantité : ");
fgets(qua, TAILLE, stdin);
qua[strlen(qua)-1] = '\0';
printf("Prix unitaire : ");
fgets(pu, TAILLE, stdin);
pu[strlen(pu)-1] = '\0';
prod->nom = nom;
prod->quantite = atoi(qua);
prod->prixUnit = atof(pu);
}

Produit* ajouterProduit(Produit* tab, int *taille){
Produit prod;
Produit p;
saisie(&prod);
(*taille)++;
tab = (Produit *)realloc(tab, *taille * sizeof(Produit));
tab[(*taille)-1] = prod;
return tab;
}

int menu(){
int choix;
char cChaine[TAILLE];
do{
printf("\nChoisissez l'action à réaliser : \n");
printf("--------------------------------\n");
printf("1 - Ajouter un produit - \n");
printf("2 - Afficher les produits en rupture - \n");
printf("3 - Afficher tous les produits - \n");
printf("4 - Quitter - \n\n");
printf("Votre choix : ");
fgets(cChaine, sizeof cChaine, stdin);
printf("\n");
cChaine[strlen(cChaine)-1] = '\0';
choix = atoi(cChaine);
}while(choix > 4 || choix < 1);
return choix;
}

int main(int argc, char *argv[])
{
int retour, taille;
Produit* tab;

taille = 0;
tab = (Produit *)calloc(taille, sizeof(Produit));
do{
retour = menu();
switch(retour){
case 1 : tab = ajouterProduit(tab, &taille);break;
case 2 : afficherRupture(tab, taille);break;
case 3 : afficherTableau(tab, taille);break;
case 4 : printf("Au Revoir !!!\n");retour = 0;break;
default : retour = 0;
}
}
while(retour != 0);
free(tab);

system("PAUSE");
return 0;
}

fichier stocks.h :
typedef struct MaStructure {
char* nom;
int quantite;
float prixUnit;
} Produit;

En espérant que cela puisse t'aider. N'hésite pas à poser des questions si tu ne comprends pas ;-)
0
NG007 Messages postés 25 Statut Membre 4
 
salut Tassin, je te remercie de m'avoir repondu. Mais ce que t'as fait est un peu flux. Et en plus le 64 veut dire quoi? D'apres ce que j'ai, l'utilisateur devrait commencer par saisir les valeurs dans le tableau....cela peut se faire ainsi:

#include<stdio.h>
#include<conio.h>
#definen 50
main ();

{ int TQte[n],TPU[n],Tseuil[n],QtA;
int i,j,j,s,Mtclt, Relicat,trouve=1;
Char TPdt[n],TPdtM[n],codeP, res;
Clrscr(); j=0;

For(i=0;i<n;i++)
{ scanf("%c", &TPdt[i]);
scanf("%d",&TQte[i],& TPu[i];
scanf("%d", tseuil[i];
}
s=0;i=0;
Do
{ printf("entrer code produit\n");
scanf("%c",&code P);
printf("entrer quantite\n");
scanf("%d",&QteA);

While(i<50 && trouve==1)
{ if(codeP==TPdt[i])
{ trouve=0;
s=s+QteA*TPU[i]
TPt[i]=TQte[i]-QtA;
}
If(TQte[i]<=Tseuil[i])
{ TPdtM[j]=TPdt[i];
j++;
}
i++;
printf("voulez-vous continueroui/non\n");
scanf("%c",&Rep);
}
While(Rep==0||Rep==)
{ printf("somme totale=%d",s);
printf("entrer montant client\n");
scanf("%d",&Mtclt);
relicat=Mtclt-s;
printf("Relicat=%d", Relicat);
}
getch();
}
0
Utilisateur anonyme
 
ATTENTION : saisie(∏);

Le code que je voulais mettre est : saisie(& prod) (supprime l'espace entre le & et prod)

Celui ci a été interprété pour du html
0
NG007 Messages postés 25 Statut Membre 4
 
Ok j'ai saisi, merci beaucoup.
0
Utilisateur anonyme
 
As tu exécuté mon programme ?

Je t'ai donné une base mais je ne connaissais pas exactement ce qu'il te fallait. Si tu exécutes mon programme dis moi ce qu'il faut que je change pour l'adapter à ta demande
0
NG007 Messages postés 25 Statut Membre 4
 
salut Tassin!
J'aimerais que tu m'aide à terminer un gros progamme en c.
En fait, j'avais déjà fait une partie du programme avant que mon prof y ait apporté une série des modifications. A un moment donné, je me suis senti perdu dans le programme et je ne sais plus quoi faire. C'est la raison pour laquelle je te demande un coup de main.
Voici l'enoncé:

On veut représenter un menu de restaurant composé d'au maximun 20 noms de plat associé à son prix respectif.
Le menu général du programme devra se présenter comme suit:

1. Qui permet de saisir un certain nombre de plats et prix associés;
2. Qui permet d'afficher le menu de tous les plats et prix à la carte;
3. Qui permet d'afficher le prix d'un plat dont on fournira le nom (on suppose que chaque nom de plat est unique dans le menu);
4. Qui permet d'afficher tous les noms de plat correspondant à un prix donné;
5. Qui permet d'afficher tous le noms de plat correspondant à une fourchette de prix donné (compris entre un prix minimun et un prix maximun);
6. Qui permet d'afficher le nom et prix d'un plat dont on donnera le rang dans le menu;
7. Modification du nom et/ou du prix d'un plat;
8. Suppression d'un plat ou de tous les plats dans le menu;
9. Augmentation de tous les prix de 10%.

NB:
* Un nom de plat est unique (signaler s'sil existe déjà);
* Aprés la saisie des plats, trier les tableau en fonction des prix dans l'ordre croissant;
* Lors de la saisie des plats, si le tableau n'est pas vide, on peut soit le vider soit écrire à la suite en fonction du choix de l'utilisateur.
0