Liste chainée

Signaler
Messages postés
22
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
17 juin 2006
-
Messages postés
64
Date d'inscription
dimanche 9 février 2003
Statut
Membre
Dernière intervention
7 mars 2003
-
sur un projet de video-club nous avons utilise une liste double chainées cepedant, nous avons quelque récurent à la compillation si une reponse pouvait parvenir assez tot ca nous aiderais bien merci

probleme :

[C++ Error] File1.cpp(6): E2451 Undefined symbol 'PFILM'
pourtant on a PFILM definit dans types.h (inclus au depart de chaque fichier.cpp
[C++ Error] restitution.cpp(26): E2094 'operator!=' not implemented in type 'PFILM' for arguments of type 'int'
p != NULL

7 réponses

Messages postés
22
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
17 juin 2006

-------------------------------
Réponse au message :
-------------------------------

>
> sur un projet de video-club nous avons utilise une liste double chainées cepedant, nous avons quelque récurent à la compillation si une reponse pouvait parvenir assez tot ca nous aiderais bien merci
>
>
> probleme :
>
> [C++ Error] File1.cpp(6): E2451 Undefined symbol 'PFILM'
> pourtant on a PFILM definit dans types.h (inclus au depart de chaque fichier.cpp
> [C++ Error] restitution.cpp(26): E2094 'operator!=' not implemented in type 'PFILM' for arguments of type 'int'
> p != NULL
Messages postés
527
Date d'inscription
vendredi 14 septembre 2001
Statut
Membre
Dernière intervention
6 octobre 2008
3
-------------------------------
Réponse au message : Ben dis donc sans code on ne va pas aller loin. Oh boule de cristal, donne moi la Vérité sur les double linked lists !!!!!!!!!!!
-------------------------------

>
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> >
> > sur un projet de video-club nous avons utilise une liste double chainées cepedant, nous avons quelque récurent à la compillation si une reponse pouvait parvenir assez tot ca nous aiderais bien merci
> >
> >
> > probleme :
> >
> > [C++ Error] File1.cpp(6): E2451 Undefined symbol 'PFILM'
> > pourtant on a PFILM definit dans types.h (inclus au depart de chaque fichier.cpp
> > [C++ Error] restitution.cpp(26): E2094 'operator!=' not implemented in type 'PFILM' for arguments of type 'int'
> > p != NULL
>
Messages postés
22
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
17 juin 2006

ok voici le code :

#include "types.h"
#include "prototypes.h"

void restitution_client ( int taille)

{
int decid ;
PFILM p ;

p = *tete ;

decid = 1 ;
do
{
if (p.tab_dispo[taille] == 0) /*rend le film disponible*/
{
(*p).dispo = 1 ;
(*p).dispo[taille] = 1 ;
}
printf(" Merci d'avoir rendu, %s \n ", (*p).nom) ;
printf(" Voulez vous en rendre un autre ? Si oui, tapez 0 ; sinon tapez 1 \n ") ;
scanf(" %s ", decid) ; /*affichage nom film à rendre !!! */
p = (*p).tab_suivant[taille] ;
}while (p !NULL && decid 0) ;
} /* ce module va rendre disponible différents films que le client souhaite rendre*/

il te faudrait autre chose?
Messages postés
527
Date d'inscription
vendredi 14 septembre 2001
Statut
Membre
Dernière intervention
6 octobre 2008
3
-------------------------------
Réponse au message : Il n'y a pas d'allocation mémoire pour tête, c'est normal ?
-------------------------------

>
> ok voici le code :
>
>
> #include "types.h"
> #include "prototypes.h"
>
>
> void restitution_client ( int taille)
>
> {
> int decid ;
> PFILM p ;
>
> p = *tete ;
>
> decid = 1 ;
> do
> {
> if (p.tab_dispo[taille] == 0) /*rend le film disponible*/
> {
> (*p).dispo = 1 ;
> (*p).dispo[taille] = 1 ;
> }
> printf(" Merci d'avoir rendu, %s \n ", (*p).nom) ;
> printf(" Voulez vous en rendre un autre ? Si oui, tapez 0 ; sinon tapez 1 \n ") ;
> scanf(" %s ", decid) ; /*affichage nom film à rendre !!! */
> p = (*p).tab_suivant[taille] ;
> }> while (p !NULL && decid 0) ;
> } /* ce module va rendre disponible différents films que le client souhaite rendre*/
>
>
>
> il te faudrait autre chose?
>
Messages postés
22
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
17 juin 2006

cet opération se fait dans le main et tete est une variable globale ( extern *PFILM) dans types.h
Messages postés
22
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
17 juin 2006

en fait ce probleme fut resolu il s'agissait en effet d'une histoire de pointeur

maintenant un autre problem survient

void film_a_louer_par_genre (PFILM p, char[10] genre_choisi, CLIENT info_client, int taille)
{}

me renvoie comme erreur
Undefined symbol 'PFILM'
pourtant PFILM est definit comme suit

typedef struct PFILM{char nom[20], genre[10], resume[1000], realisateur[10], acteurs[100],support[3] ;int annee, dispo ;PFILM *suivant ;PFILM *precedent ;int tab_dispo[TAILLE_MAX] ;PFILM *tab_suivant[TAILLE_MAX] ;PFILM *tab_precedent[TAILLE_MAX] ;} PFILM ;

et est reconnu par les autre module
Messages postés
64
Date d'inscription
dimanche 9 février 2003
Statut
Membre
Dernière intervention
7 mars 2003

> void film_a_louer_par_genre (PFILM p, char[10] genre_choisi, CLIENT info_client, int taille)
> {}
>
> me renvoie comme erreur
> Undefined symbol 'PFILM'
> pourtant PFILM est definit comme suit
>
> typedef struct PFILM
>{

le typedef est redondant puisqu'en C++, la définition d'une classe (ou struct) crée un nouveau type :

struct A
{
// ..
};

A mon_objet;

>char nom[20], genre[10], resume[1000], realisateur[10],
>acteurs[100],support[3] ;

Il y a une raison pour laquelle tu n'utilises pas std::string?

>int annee, dispo ;
>PFILM *suivant ;
>PFILM *precedent ;

>int tab_dispo[TAILLE_MAX] ;
>PFILM *tab_suivant[TAILLE_MAX] ;
>PFILM *tab_precedent[TAILLE_MAX] ;

std::vector?

>} PFILM ;
>
> et est reconnu par les autre module

<types.h> est inclu? On ne peut rien dire comme ça, pas plus que pour le problème d'avant.