Partage
  • Partager sur Facebook
  • Partager sur Twitter

project

Anonyme
7 décembre 2019 à 18:39:50

Bonjour tout le monde,

 je travail sur un programme de gestion de stocks , et je ne comprend pas pourquoi le programme ne marche pas. Pouvez-vous m'aider s'il vous plait a faire marcher se programme

Voici mon code :
#include <stdio.h>
#include <stdlib.h>
#include<conio.h>
struct produit
{
    char nom[20];;
int ref;
int qtes;
float prix;
};
typedef struct produit produit;
int main()
{
   void menuprincpale()
  {
system("cls");
printf("\n\n\n\n\n\n\n");
printf("        --------------------------------------------------------------------  \n");
printf(                             "MENU PRINCIPALE \n");
printf("        --------------------------------------------------------------------   \n");
        printf("          1) Ajouter un Produit                                          \n");
        printf("          2) Afficher tous les Produits                                  \n");
        printf("          3) Supprimer un Produit                                        \n");
printf("          4) Modifier un Produit                                         \n");
printf("          5)Supprimer tous les Produits                                  \n");
        printf("          8)  Quitter                                                    \n");
        printf("        --------------------------------------------------------------------  \n");
}
produit pro;
produit saisir(int ref)
{
    produit p;
    p.ref=ref;
    printf(" \n Nom : ");
    scanf("%s",p.nom);
    printf(" \n Quantites : ");
    scanf("%d",p.qtes);
    printf(" \n prix : ");
    scanf("%f",p.prix);
    return p;
}
void afficher(produit p)
{
    printf("    reference : %d  Nom :  %s Quantité %d prix : %f ",p.ref,p.nom,p.qtes,p.prix);
}
void ouverture(FILE**F,char mode[5])
{
*F=fopen("FichierProduits",mode);
if(!*F) {
printf("\n\n Ce fichier est vide ,il faut ajouter un produit svp \n\n");
AjouterProduit();
}
}
int recherche(int ref){
FILE*F;
produit p;
ouverture(&F,"rb");
if (F != NULL)
    {
do{
fread(&pro,sizeof(p),1,F);
if(pro.ref==ref){
fclose(F);
return (1);
}
}while (!feof(F));
fclose(F);
return -1;
}
}
void AjouterProduit(){
FILE*F;
produit p;
int ref;
ouverture(&F,"ab");
printf("\n\n\t Entrez la reference du Produit : ");
scanf("%d",&ref);
while (rech(ref)==1)
{
printf("\n\n\t Cette reference du Produit existe deja\n");
printf("\n\n\t Entrez une autre reference du Produit : ");
scanf("%d",&ref);
}
pro=saisir(ref);
printf("Hello");
fwrite(&pro,sizeof(p),1,F);
fclose(F);
printf("\n\n ----- L'ajout a %ct%c effectu%c avec succ%cs ----- \n\n",130,130,130,130);
}
void AfficherTout(){
FILE*F;
produit p;
system("cls");
ouverture(&F,"rb");
if(F!=NULL)
{
printf("\n\n\n");
printf("                        La liste des Produits        \n\n\n\n");
printf("      reference/nom/Quantité/prix \n");
fread(&pro,sizeof(p),1,F);
while (!feof(F)){
afficher(pro);
fread(&pro,sizeof(p),1,F);
}
fclose(F);
printf("                         Le nombre totale des Produits est : %d \n\n\n ",nombreTotalProduits());
}
}
void Afficher_ref(int ref){
FILE*F;
produit p;
ouverture(&F,"rb");
if(F!=NULL)
{
printf("\n\n\n");
printf("      reference/nom/Quantité/prix \n");
fread(&pro,sizeof(p),1,F);
while (!feof(F)){
if(ref==pro.ref){
afficher(pro);
break;
}
fread(&pro,sizeof(p),1,F);
}
fclose(F);
}
}
void supprimerProduit()
{
system("cls");
int rep,ref;
FILE*F,*fich;
produit p;
ouverture(&F,"rb");
if(F!=NULL){
fich=fopen("temp","wb");
printf("\n\n \t Entrez la reference t du Produit a supprimer: \t");
scanf("%d",&ref);
if(rech(ref)==1){
system("cls");
Afficher_ref(ref);
printf("\n Voulez vous vraimment supprimer \t |0|->Oui  |1|->Non : ");
scanf("%d",&rep);
if(rep==0){
fread(&pro,sizeof(p),1,F);
while (!feof(F)){
if(pro.ref!=rep)
fwrite(&pro,sizeof(p),1,fich);
fread(&pro,sizeof(p),1,F);
}
fclose(F);
fclose(fich);
remove("FichierProduits");
rename("temp","FichierProduits");
printf("\n\n ------ La suppression a %ct%c effectu%c avec succ%cs ------\n\n",130,130,130,130);
}
else printf("\n\n ------ La suppression a %ct%c annul%ce ------- \n\n",130,130,130);
}
elseprintf("\n Cette reference n'existe pas \t");
}
}
void modifierProduit()
{
system("cls");
int rep;
int ref;
FILE*F,*fich;
produit p;
ouverture(&F,"rb");
if(F!=NULL){
fich=fopen("temp","wb");
printf("\n\n \t  Entrez la reference du Produit a modifier: \t");
scanf("%d",&ref);
if(rech(ref)==1){
system("cls");
Afficher_ref(ref);
printf("\n Voulez vous vraimment modifier \t |0|->Oui  |1|->Non : ");
scanf("%d",&rep);
if(rep==0){
fread(&pro,sizeof(p),1,F);
while (!feof(F)){
if(pro.ref==ref){
pro=saisir(ref);
}
fwrite(&pro,sizeof(p),1,fich);
fread(&pro,sizeof(p),1,F);
}
fclose(F);
fclose(fich);
remove("FichierProduits");
rename("temp","FichierProduits");
printf("\n\n ------ La modification a %ct%c effectu%c avec succ%cs ------- \n\n",130,130,130,130);
}
else printf("\n\n ------ La modification a %ct%c annul%ce ------- \n\n",130,130,130);
}
elseprintf("\n ce identificateur n'existe pas \t");
}
}
void  main()
{
system("COLOR 70");
int choix;
do
{
do
{
menuprincpale();
printf("                                                     |Choix : ");
scanf("%d", &choix);
}
while (choix < 1 || choix > 10);
switch (choix)
{
case 1: system("cls"); AjouterProduit();break;
case 2: AfficherTt(); break;
case 3: supprimerProduit();break;
case 4 :modifierProduit();break;
case 5: supprimerTout();break;
case 6:rechercherProduit_ref);break;
default : break;
}
}
while (choix!=10);
}
  • Partager sur Facebook
  • Partager sur Twitter
7 décembre 2019 à 20:29:28

Bonjour ! Attention :

1° Il faut utiliser le bouton </> de l'éditeur pour copier le code, comme expliqué dans un des messages épinglés. Là, inclus dans le texte, tu vois que c'est particulièrement moche et il n'y a même pas les numéros de lignes.

2° Tu ne peux pas dire « ça ne marche pas ». Ça n'apporte aucune information, autant ne rien dire du tout. Si le programme ne se comporte pas comme attendu, il faut dire précisément ce que le programme aurait dû faire, et ce qu'il fait. Les gens qui te lisent ne sont pas tous télépathes ! ;) (Je crois même que la plupart ne le sont pas.)

Pouvez-vous m'aider s'il vous plait a faire marcher se programme

Du coup, non.

-
Edité par robun 7 décembre 2019 à 20:49:37

  • Partager sur Facebook
  • Partager sur Twitter
7 décembre 2019 à 20:36:55

Bonjour,

Le message qui suit est une réponse automatique activée par un membre de l'équipe. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention.
Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé.

Pour plus d'informations, nous vous invitons à lire les règles générales du forum

Merci de colorer votre code à l'aide du bouton Code

Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton Code de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: cpp;">Votre code ici</pre>.

Mauvais titre

Le titre est un élément important qui ne doit pas être négligé. N'oubliez pas cette règle simple : le titre idéal résume la question que vous allez poser en une petite phrase. Il doit permettre aux visiteurs de se repérer facilement dans le forum visité et d'identifier le sujet à sa seule lecture.

Vous pouvez utiliser divers préfixes comme [Erreur], [MySQL], [Compatibilité], etc... Aussi, pensez à consulter les règles propres à chaque forum (visibles dans les topics épinglés en haut des sections).

De plus, choisir un bon titre permet de rendre plus faciles les recherches des autres membres.

Les titres de type "besoin d'aide" ou "problème" ne sont pas tolérés.

Pour modifier votre titre, éditez le premier message de votre sujet.

(titre originel : project)

Liens conseillés

  • Partager sur Facebook
  • Partager sur Twitter
7 décembre 2019 à 20:52:53

Tu as mis tes fonction à l’intérieur de la fonction main, de plus tu as deux fonction main ! Manque une accolade fermante, une parenthèse ouvrante ...

Bref, remet de l'ordre dans tout cela ! 

  • Partager sur Facebook
  • Partager sur Twitter
7 décembre 2019 à 21:04:02

Bonsoir, on lui à fait peur ou quoi?? Le membre à supprimé son compte. Ou peut être qu'il espérait un travail tout fait?

Bref comme il ne recevra plus de notification pour ce sujet, je ferme ici.

Merci à vous d'avoir répondu ;)

  • Partager sur Facebook
  • Partager sur Twitter