dans ce projet, il vous est demandé de réaliser une application de gestion de commandes et de facturation dans un restaurant. Un restaurant est composé d’un ensemble de tables clients. Chaque table est définie par un numéro. Le menu d’un restaurant est composé essentiellement de plats (salades, soupes, pates, grillades, etc), de boissons (eau minérale, jus, thé, café, etc), et d’extras (portion frites natures, portion frites épicées, etc). Étant donnée une table composée de plusieurs clients, une commande spécifique est faite pour chaque client. Celle-ci est donnée par le menu, la boisson (et extras s’il y en a) commandés du client concerné. Pour chaque table, une ou plusieurs factures est/sont produite(s). Ceci est réalisé soit par clients ou pour la table entière.
ps: j'ai déjà saisie le programme mais la compilation ne marche pas , je cherche de l'aide pour corriger mon code merci !
j'ai utilisé les listes chainées , merci .


voici mon code :


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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#define TVA 0.06 
 
typedef struct{
	char plat[20];
	float prix;
}menu;
menu m;
typedef struct m{
   menu	val;
	struct m*suiv;
}article;
//1)Creation liste vide : 
void cree_list (article **l)//initialiser,modifier mais on va pas retourner et si fonction on ne fait pas double etoile
{ 
 *l = NULL ;
}
//2)Saisie plat :
menu saisie_article ()
{ menu m;
printf ("saisie Plat\n");
scanf("%s",m.plat);
printf ("saisie Prix\n");
scanf("%f",m.prix);
return (m);
 
}
//3)Ajout d'un article : 
article* ajouter_element (article*l,menu m)//menu m) //si void on ecrit listreel**l ici au debut
{ article*nouv;
nouv=(article*)malloc(sizeof(article));
nouv->val=saisie_article(); //nouv->val=m;
nouv->suiv=l;
l=nouv;
return (l);
}
//4)somme des articles achetés:
float somme_article (article*l)//mode de passage par valeur
{ article*cour;
float sous_totale;
menu m;
cour=l;
sous_totale=0;
if (l==NULL){
 
return 0;
}else
while (cour!=NULL){
	sous_totale=sous_totale + m.prix;
	cour=cour->suiv;
}
return (sous_totale);
}
//5)calcule de TVA
float tva()
{ float totale,sous_totale;
totale = sous_totale+ (sous_totale*TVA);
return (totale);
}
//6)Affichage des articles :
void afficher_article(article*l)
{ article*cour;
cour=l;
while (cour !=NULL)
      { printf("*Article*\t\t*Prix*\n%s\t\t%f\n",m.plat,m.prix);
      cour=cour->suiv;
	  }
}
//7)taille articles : 
int taille_article (article *l)
{ if (l==NULL)
return 0;
else return 1+taille_article(l->suiv);
}
//8) prohgramme principale :
main()
{int n;
 article*l;menu m ;
 char rep;
float sous_totale,s; 
 
cree_list(&l); //car on l'a declare en passage par adresse ou passage par variable
printf("\t\t***WELCOME TO FOODY'S***\n");
do{
	printf ("voulez vous ajouter un article? TAPEZ O/N\n");
	scanf(" %c",&rep);
	if(rep=='o' || rep =='O') //if (toupper(rep)=='O') dans biblio <ctype.h>
	m=saisie_article();
         l=ajouter_element(l,m);
 
 
}while(!(toupper(rep)=='N'));
//nombre des articles :
n=taille_article(l);
printf("le taille des articles a acheter *\t%d*\t",n);
 
 
//layout du ticket:
printf("\t\t***FOODY\'S***\n");
printf ("\t\t***Telephone 25 618 678***\n");
printf ("\t\t***Notre Adresse 07,rue Ahmed Pacha 1255,LAC II***\n");
afficher_article(l);
printf("\t\t\tSous Totale : %f DT\n",somme_article(l));
printf("\t\t\tTaux De TVA : 6% = %f\n",sous_totale*0.06);
printf("\t\t\tTOTALE = %f\n",tva());
printf ("\t\t ***WELCOME TO FOODY\'S");
 
 
}