achourmeddeb
Messages postés4Date d'inscriptionmardi 17 octobre 2006StatutMembreDernière intervention31 mars 2010
-
30 mars 2010 à 19:53
achourmeddeb
Messages postés4Date d'inscriptionmardi 17 octobre 2006StatutMembreDernière intervention31 mars 2010
-
31 mars 2010 à 15:38
bonsoir tout le monde , j'ai un projet à rendre mais je n'arrive pas à compiler ce code et je pense que le problème réside dans l'une des trois fonctions !! Qui pourra m'aider !!
c'est un programme de gestion des clients d'une auto-ecole !!
#include<stdio.h>
#include<stdlib.h>
struct date{
int jour;
int mois;
int annee;
};
typedef struct date date;
struct heure{
int h;
int m;
};
struct cellule_seance{
int id_seance;
struct heure heure_seance;
date date_seance;
struct cellule_seance *suiv;
};
typedef struct cellule_seance cellule_seance;
struct liste_seance{
cellule_seance *tete;
cellule_seance *queue;
};
typedef struct liste_seance liste_seance;
struct faute_seance{
int id_seance;
int nb_faute;
};
typedef struct faute_seance faute_seance;
struct examen_eleve{
int id_examen;
int nb_fautes;
} ;
} */
void affichage(liste_eleve t){
liste_eleve p; p.tete=t.tete;
int i=0,j;
while(p.tete->suiv!=t.queue){
printf("\nl'eleve %s %s numéro %d qui a comme identificateur %d",p.tete->nom,p.tete->prenom,i,p.tete->id_eleve);
if(p.tete->nb_seance!=0){
printf("a assisté à %d séance(s):",p.tete->nb_seance);
for(j=0;jnb_seance;j++){
printf("\n%d\tnombre de fautes est: %d",p.tete->s[j].id_seance,p.tete->s[j].nb_faute);
}
}
printf("cet(te) eleve a passé %d examen(s):",p.tete->nb_examen);
if(p.tete->nb_examen!=0){
for(j=0;jnb_examen;j++){
printf("\nl examen %d\tnombre de faute(s):%d",p.tete->e[j].id_examen,p.tete->e[j].nb_fautes);
}
}
p.tete=p.tete->suiv;
i++;
}
}
void affichage_seance(liste_seance l){
cellule_seance *p;p=l.tete; int i=1;
while(p->suiv!=l.queue){
printf("\nla seance d identificateur %d de la date %d/%d/%d à l heure %dh:%d",i,p->date_seance.jour,p->date_seance.mois,p->date_seance.annee,p->heure_seance.h,p->heure_seance.m);
p=p->suiv;
i++;
}
}
/*
void affichage_examen(liste_examen*.tete t,liste_examen*.queue q){
liste_examen*.tete p=t; int i=1;
while(p*.suiv!=q){
printf("\nl examen numéro %d de la date %d/%d/%d à l'heure %dh:%d",i,p*.date_examen.jour,p*.date_examen.mois,p*.date_examen.annee,p*.heure_examen.h,p*.heure_examen.m);
if(p*.nb_eleve!=0){
printf("dont %d eleves ont assisté et %d réussi(s)",p*.nb_eleve,p*.nb_reussis);
}
else printf("qui n'est pas encore passé");
p=p*.suiv;i++;
}
}
void insertion_eleve(liste_eleve l,int nb_eleve){
liste_eleve*.tete p,q,r;
malloc(q,sizeof(cellule_eleve));
printf("\ndonncer lidentificateur de l'eleve");scanf("%d",q*.id_eleve);
printf("\ndonncer le nom de l'eleve");scanf("%s",q*.nom);
printf("\ndonncer le prenom de l'eleve");scanf("%s",q*.prenom);
q*.nb_seance=0;q*.nb_examen=0;
if(pos==nb_eleve){
p=l*.queue;
l*.queue=q;p*.suiv=q;q*.suiv=null;
}
else if(pos==1){
q*.suiv=l*.tete;l*.tete=q;
}
else{p=l*.tete
if (pos!=2){
for(i=0;i<pos-2;i++){
p=p*.suiv;
}
}
r=p*.suiv;p*.suiv=q;q*.suiv=r;
}
}
void ajout_seance_eleve(liste_eleve l){
int a; liste_eleve*.tete p;
printf("donner l'identificateur de l'eleve auquel vouv voulez ajouter une séance");
scanf("%d",&a);
while(p*.id_eleve!=a){
p=p*.suiv;
}
p*.nb_seance++;
printf("\ndonner l'identificateur de cette seance ajoutée");
scanf("%d",&p*.s[nb_seance].id_examen);
printf("\ndonner le nombre de fautes obtenues par l'eleve au cours de cette seance");
scanf("%d",&p*.s[nb_seance].nb_fautes);
}
void modifier_faute_seance(liste_eleve l){
int a,i,b; liste_eleve*.tete p=l*.tete;
printf("\ndonner l'identificateur de l'eleve que vous voulez changer le nombre de fautes de seance");
scanf("%d",&a);
while(p*.id_eleve!=a){
p=p*.suiv;
}
printf("\ndonner l'identificateur de la seance que vous voulez changer le nombre de fautes");
scanf("%d",&b);
i=0;
while(p*.s[i].id_seance!=b){
i++;
}
printf("\nvoila l'ancien nombre de fautes %d veuillez entrer le nouveau nombre",p*.s[i].nb_fautes);
scanf("%d",&p*.s[i].nb_fautes);
printf("\nmodification terminée");
}
void modifier_faute_examen(liste_eleve l){
int a,i,b; liste_eleve*.tete p=l*.tete;
printf("\ndonner l'identificateur de l'eleve que vous voulez changer le nombre de fautes d'examen");
scanf("%d",&a);
while(p*.id_eleve!=a){
p=p*.suiv;
}
printf("\ndonner l'identificateur de l'examen que vous voulez changer le nombre de fautes");
scanf("%d",&b);
i=0;
while(p*.e[i].id_examen!=b){
i++;
}
printf("\nvoila l'ancien nombre de fautes %d veuillez entrer le nouveau nombre",p*.s[i].nb_fautes);
scanf("%d",&p*.e[i].nb_fautes);
printf("\nmodification terminée");
}
*/void modification_seance(liste_seance l){
int a; liste_seance*.tete p=l*.tete;
printf("\ndonner l'identificateur de la seance que vous voulez modifier");
scanf("%d",&a);
while(p*.id_seance!=a){
p=p*.suiv;
}
printf("\ntaper le nouveau identificateur de cette seance si vous voulez le changer sinon taper l'ancien");
scanf("%d",&p*.id_seance);
printf("\ntaper la nouvelle date si vous voulez la changer sinon taper l'ancienne date: jour mois année");
scanf("%d",&p*.date_seance.jour);
scanf("%d",&p*.date_seance.mois);
scanf("%d",&p*.date_seance.annee);
printf("\ntaper la nouvelle heure si vous voulez la changer sinon taper l'ancienne: heure minutes");
scanf("%d",&p*.heure_seance.h);
scanf("%d",&p*.heure_seance.m);
}
void suppression_seance(liste_seance l){
liste_seance*.tete p=l*.tete,q;
int a;
printf("\ndonner l'identificateur de la seance que vous voulez supprimer");
scanf("%d",&a);
if(a==p*.id_seance){
q=p;l*.tete=p*.suiv;
free(q);
}
else if(a==l*.queue.id_seance){
while(p*.suiv.id_seance!=a){
p=p*.suiv;
}
q=l*.queue;
p*.suiv=NULL;
l*queue=p;free(q);
}
else{
while((p*.suiv.id_seance!=a){
p=p*.suiv;
}
q=p*.suiv;
p*.suiv=p*.suiv.suiv;
free(q);
}
}
achourmeddeb
Messages postés4Date d'inscriptionmardi 17 octobre 2006StatutMembreDernière intervention31 mars 2010 30 mars 2010 à 22:39
"ComeauTest.c", line 68: warning: parameter "l" was set but never used
void remplir(liste_eleve l){
^
"ComeauTest.c", line 177: warning: nested comment is not allowed
/**************************6**************************/
^
"ComeauTest.c", line 189: warning: nested comment is not allowed
/**************************7**************************/
^
"ComeauTest.c", line 203: warning: nested comment is not allowed
/**************************8**************************/
^
"ComeauTest.c", line 216: warning: nested comment is not allowed
/**************************9**************************/ +
^
"ComeauTest.c", line 216: error: expected a declaration
Wild guess: Should this be in a function block?
/**************************9**************************/ +
^
"ComeauTest.c", line 231: warning: nested comment is not allowed
/**************************10**************************/
^
"ComeauTest.c", line 409: warning: parsing restarts here after previous syntax error
q=p*.suiv;
^
"ComeauTest.c", line 410: error: identifier "p" is undefined
p*.suiv=p*.suiv.suiv;
^
"ComeauTest.c", line 410: error: expected an identifier
p*.suiv=p*.suiv.suiv;
^
"ComeauTest.c", line 410: error: identifier "p" is undefined
p*.suiv=p*.suiv.suiv;
^
"ComeauTest.c", line 410: error: expected an expression
p*.suiv=p*.suiv.suiv;
^
"ComeauTest.c", line 411: error: this declaration has no storage class or type
Hint: export syntax is: export template declaration
not: template export declaration
specifier, Wild guess: Should this be in a function block?
Wild Guess: You're using export but not using Comeau C++ 4.3.x
free(q);
^
"ComeauTest.c", line 411: error: declaration is incompatible with
"void free(void *) C" (declared at line 42 of
"stdlib.h")
free(q);
^
"ComeauTest.c", line 411: error: identifier "q" is undefined
free(q);
^
"ComeauTest.c", line 412: error: expected a declaration
Wild guess: Should this be in a function block?
}
deadhand
Messages postés152Date d'inscriptiondimanche 15 octobre 2006StatutMembreDernière intervention27 août 20103 31 mars 2010 à 08:32
Première erreur :
Tu commences un commentaire que tu ne fermes jamais ! Une ouverture de commentaire doit correspondre à une fermeture (certains compilateur s'en fiche mais pas celui-ci apparement). Tu le fais sur plusieurs lignes.
/*
p->id_eleve=25;
Deuxième erreur :
Pour moi (à moins que je ne me trompe), ce n'est pas une initialisation valide de 'p' :
liste_seance*.tete p=l*.tete,q;
. En effet :
liste_seance*.tete
n'est pas un type ou une structure.
Tu dois faire :
cellule_seance * p,q;
p = liste_seance->tete;
Troisième erreur :
Idem pour 'q'
Voilà, je pense que ça devrait résoudre toutes les autres.