cs_fce
Messages postés1Date d'inscriptionvendredi 21 octobre 2005StatutMembreDernière intervention31 janvier 2006 31 janv. 2006 à 16:59
Bonjour
j essaies de réaliser une liste chainée en utilisant le language C (turbo C) mais g deux erreurs au nivo de la compilation
Pour commencer jetez svp un coup d'oeuil sur le programme :
#include<stdio.h>
#include<stddef.h>
#include<stdlib.h>
#define Malloc(t) (t *)malloc(sizeof(t))
enum boolean {true, faulse};
typedef struct_noeud //(1)
{ char nom[15];
struct_noeud *suivant;} adh;
misterzinzin
Messages postés112Date d'inscriptionvendredi 27 octobre 2000StatutMembreDernière intervention26 janvier 20112 25 oct. 2004 à 23:13
bonjour, j'essaye de faire une liste liée en c mais... j'y arrive pas... en fait le compilateur (borland 4.5) me retourne un erreur que je n'arrive pas a resoudre :
Pointer to structure required on left side of -> or ->* in function encode si qq pouvais me dire ou je me suis trompé, ca m'aiderais enormement.
do{
choix=menu();
switch (choix){
case 1: printf("\nENCODAGE\n");
do {printf("Nom:");fgets(nom,25,stdin);nom[strlen(nom)-1]=0;}
while (nom[0]==0);
do {printf("Numero:");fgets(numero,15,stdin);numero[strlen(numero)-1]=0;}
while (numero[0]==0);
encode(nom,numero,&debut);
break;
case 2: printf("\nRECHERCHE\n");
do {printf("Nom:");fgets(nom,25,stdin);nom[strlen(nom)-1]=0;}
while (nom[0]==0);
/*do {printf("Numero:");fgets(numero,15,stdin);numero[strlen(numero)-1]=0;}
while (numero[0]==0);*/
recherche(nom/*,numero*/,&debut);
break;
default: printf("\nFIN\n");
}
}
while(choix!=3);
}
void encode(char* nom,char* numero,fiche **ptr_debut){
printf("\nJ'encode %s avec le numero %s\ndans la file qui a comme adresse de debut:%p",nom,numero,*ptr_debut);
if (*ptr_debut==NULL) {
*ptr_debut=malloc(sizeof(fiche));
strcpy(*ptr_debut->nom,nom); //L ERREUR SE TROUVE A CETTE LIGNE
}
else{
*ptr_debut->suivant=malloc(sizeof(fiche)); //ET A CETTE LIGNE
}
}
void recherche(char* nom/*,char* numero*/,fiche** debut){
printf("\nJe recherche %s \ndans la file qui a comme adresse de debut:%p",nom,*debut);
}
int menu(){
int lechoix;
printf("\n1>Encoder\n2>Rechercher\n3>Quitter\nVotre choix ");
do scanf("%d",&lechoix);
while ((lechoix>3) && (lechoix<1));
return lechoix;
}
BumpMANN
Messages postés330Date d'inscriptionjeudi 22 mai 2003StatutMembreDernière intervention26 janvier 2009 12 févr. 2004 à 07:53
waou! le triple posting! :O
quanganh
Messages postés4Date d'inscriptionjeudi 12 février 2004StatutMembreDernière intervention12 février 2004 12 févr. 2004 à 05:58
help me
3.1. Ecriture d’une liste chaînée
Le C++ est un langage modulaire qui permet d’écrire des classes ré-utilisables. Si l’on doit réaliser une liste chaînée d’étudiants, une liste chaînée d’enseignants, etc., il serait peut-être intéressant d’isoler tous les mécanismes de gestion d’une liste chaînée pour pouvoir les réutiliser. C’est ce que nous allons faire. Toute liste chaînée est composée de deux parties :
Les éléments qui constituent les maillons de la liste chaînée. Pour cela, vous devez créer une classe Element.
Le mécanisme de gestion des éléments et des liens entre les éléments que vous stockerez dans une classe Liste.
3.1.1. Ecrire la classe Element
Tout élément d’une liste chaînée est caractérisé par :
son contenu. Si nous souhaitons pouvoir faire des listes d’étudiants, d’enseignants, etc., il faut ne faut pas que ce contenu soit typé. Vous utiliserez donc le type void* qui représente un type quelconque. Vous aurez donc un attribut du type void * contenu ;
le pointeur vers l’élément suivant. Ce pointeur sera donc de type Element *.
3.1.2. Ecrire la classe Liste
Cette classe modélise une liste chaînée d’Elements. Elle est caractérisée par un pointeur sur le premier élément de la liste et un pointeur sur l’élément courant. Cette classe contient toutes les méthodes nécessaires à la gestion d’une liste chaînée d’Elements (Ajouter, Supprimer, FinListe, Premier, Prochain).
3.2. Ecrire la classe ListeEnseignant
Cette classe permettra de stocker l'ensemble des enseignants de l'université. Puisque nous avons défini une classe Liste générique, nous pouvons la réutiliser. Pour cela, vous pouvez et devez considérer que la ListeEnseignant "est une" Liste. Ainsi, grâce à un lien d'héritage, votre classe ListeEnseignant dispose de tous les éléments nécessaires à une gestion d'une liste chaînée. Vous devez rajouter à cette classe tous les éléments qui sont propres à la gestion d'enseignants comme par exemple, ajouter un enseignant dans la liste, supprimer un enseignant de la liste, … plus une méthode de GestionListeEnseignant permettant d'afficher un menu pour le choix entre les différentes fonctionnalités.
3.3. Ecrire la classe ListeUV
3.4. Ecrire la classe Universite
Cette classe devra comprendre :
Une liste d'UV
Une liste d'enseignants
Toutes les méthodes que vous trouverez utiles
Une méthode GestionUniversité contenant le menu permettant d'accéder à la gestion des différentes composantes de la classe (gestion des étudiants, gestion des enseignants…)
3.5. Ecrire le programme principal
Ecrire un programme principal qui permette de créer une université et de lancer la gestion de l'université.
quanganh
Messages postés4Date d'inscriptionjeudi 12 février 2004StatutMembreDernière intervention12 février 2004 12 févr. 2004 à 05:58
help me
3.1. Ecriture d’une liste chaînée
Le C++ est un langage modulaire qui permet d’écrire des classes ré-utilisables. Si l’on doit réaliser une liste chaînée d’étudiants, une liste chaînée d’enseignants, etc., il serait peut-être intéressant d’isoler tous les mécanismes de gestion d’une liste chaînée pour pouvoir les réutiliser. C’est ce que nous allons faire. Toute liste chaînée est composée de deux parties :
Les éléments qui constituent les maillons de la liste chaînée. Pour cela, vous devez créer une classe Element.
Le mécanisme de gestion des éléments et des liens entre les éléments que vous stockerez dans une classe Liste.
3.1.1. Ecrire la classe Element
Tout élément d’une liste chaînée est caractérisé par :
son contenu. Si nous souhaitons pouvoir faire des listes d’étudiants, d’enseignants, etc., il faut ne faut pas que ce contenu soit typé. Vous utiliserez donc le type void* qui représente un type quelconque. Vous aurez donc un attribut du type void * contenu ;
le pointeur vers l’élément suivant. Ce pointeur sera donc de type Element *.
3.1.2. Ecrire la classe Liste
Cette classe modélise une liste chaînée d’Elements. Elle est caractérisée par un pointeur sur le premier élément de la liste et un pointeur sur l’élément courant. Cette classe contient toutes les méthodes nécessaires à la gestion d’une liste chaînée d’Elements (Ajouter, Supprimer, FinListe, Premier, Prochain).
3.2. Ecrire la classe ListeEnseignant
Cette classe permettra de stocker l'ensemble des enseignants de l'université. Puisque nous avons défini une classe Liste générique, nous pouvons la réutiliser. Pour cela, vous pouvez et devez considérer que la ListeEnseignant "est une" Liste. Ainsi, grâce à un lien d'héritage, votre classe ListeEnseignant dispose de tous les éléments nécessaires à une gestion d'une liste chaînée. Vous devez rajouter à cette classe tous les éléments qui sont propres à la gestion d'enseignants comme par exemple, ajouter un enseignant dans la liste, supprimer un enseignant de la liste, … plus une méthode de GestionListeEnseignant permettant d'afficher un menu pour le choix entre les différentes fonctionnalités.
3.3. Ecrire la classe ListeUV
3.4. Ecrire la classe Universite
Cette classe devra comprendre :
Une liste d'UV
Une liste d'enseignants
Toutes les méthodes que vous trouverez utiles
Une méthode GestionUniversité contenant le menu permettant d'accéder à la gestion des différentes composantes de la classe (gestion des étudiants, gestion des enseignants…)
3.5. Ecrire le programme principal
Ecrire un programme principal qui permette de créer une université et de lancer la gestion de l'université.
quanganh
Messages postés4Date d'inscriptionjeudi 12 février 2004StatutMembreDernière intervention12 février 2004 12 févr. 2004 à 05:58
help me
3.1. Ecriture d’une liste chaînée
Le C++ est un langage modulaire qui permet d’écrire des classes ré-utilisables. Si l’on doit réaliser une liste chaînée d’étudiants, une liste chaînée d’enseignants, etc., il serait peut-être intéressant d’isoler tous les mécanismes de gestion d’une liste chaînée pour pouvoir les réutiliser. C’est ce que nous allons faire. Toute liste chaînée est composée de deux parties :
Les éléments qui constituent les maillons de la liste chaînée. Pour cela, vous devez créer une classe Element.
Le mécanisme de gestion des éléments et des liens entre les éléments que vous stockerez dans une classe Liste.
3.1.1. Ecrire la classe Element
Tout élément d’une liste chaînée est caractérisé par :
son contenu. Si nous souhaitons pouvoir faire des listes d’étudiants, d’enseignants, etc., il faut ne faut pas que ce contenu soit typé. Vous utiliserez donc le type void* qui représente un type quelconque. Vous aurez donc un attribut du type void * contenu ;
le pointeur vers l’élément suivant. Ce pointeur sera donc de type Element *.
3.1.2. Ecrire la classe Liste
Cette classe modélise une liste chaînée d’Elements. Elle est caractérisée par un pointeur sur le premier élément de la liste et un pointeur sur l’élément courant. Cette classe contient toutes les méthodes nécessaires à la gestion d’une liste chaînée d’Elements (Ajouter, Supprimer, FinListe, Premier, Prochain).
3.2. Ecrire la classe ListeEnseignant
Cette classe permettra de stocker l'ensemble des enseignants de l'université. Puisque nous avons défini une classe Liste générique, nous pouvons la réutiliser. Pour cela, vous pouvez et devez considérer que la ListeEnseignant "est une" Liste. Ainsi, grâce à un lien d'héritage, votre classe ListeEnseignant dispose de tous les éléments nécessaires à une gestion d'une liste chaînée. Vous devez rajouter à cette classe tous les éléments qui sont propres à la gestion d'enseignants comme par exemple, ajouter un enseignant dans la liste, supprimer un enseignant de la liste, … plus une méthode de GestionListeEnseignant permettant d'afficher un menu pour le choix entre les différentes fonctionnalités.
3.3. Ecrire la classe ListeUV
3.4. Ecrire la classe Universite
Cette classe devra comprendre :
Une liste d'UV
Une liste d'enseignants
Toutes les méthodes que vous trouverez utiles
Une méthode GestionUniversité contenant le menu permettant d'accéder à la gestion des différentes composantes de la classe (gestion des étudiants, gestion des enseignants…)
3.5. Ecrire le programme principal
Ecrire un programme principal qui permette de créer une université et de lancer la gestion de l'université.
BumpMANN
Messages postés330Date d'inscriptionjeudi 22 mai 2003StatutMembreDernière intervention26 janvier 2009 16 déc. 2003 à 18:31
31 janv. 2006 à 16:59
j essaies de réaliser une liste chainée en utilisant le language C (turbo C) mais g deux erreurs au nivo de la compilation
Pour commencer jetez svp un coup d'oeuil sur le programme :
#include<stdio.h>
#include<stddef.h>
#include<stdlib.h>
#define Malloc(t) (t *)malloc(sizeof(t))
enum boolean {true, faulse};
typedef struct_noeud //(1)
{ char nom[15];
struct_noeud *suivant;} adh;
adh *creer(char *nom) //(2)
{
adh *tete; tete =NULL;
adh *p;
p=NULL;
p=Malloc(adh);
p->nom= nom;
p->suivant=NULL;
return(p);
}
void inserer(adh *nom)
{
adh *tete;
adh *p1;
adh *p2;
p1=tete; p2=NULL;
while ((p1!= NULL) && (strcmp (nom, p1->nom) >0))
{
p2=p1;
p1=p1->suivant;
}
if (p1==NULL)
p1=creer(nom);
else
{
p2=creer(nom);
p2->suivant=p1;
}
}
void afficher()
{
adh *p;
p=tete;
while(p) prrintf("%s -> %s", p, p->suivant);
}
boolean chercher(char *nom)
{
adh *tete;
while ((tete-> nom != nom) && (tete -> suivant != NULL))
tete=tete-> suivant;
if (tete -> nom == nom)
return(true);
else return(faulse);
}
adh * supprimer(adh *nom)
{
adh *pred, *p; boolean found;
pred=NULL;
p=NULL;
if (tete==NULL) perror("liste vide");
else
{
if (tete-> nom==nom)
{
p=tete; tete=tete->suivant;
free(p);
}
else
{
found = chercher(nom);
if (! found) peror("pas dans la liste");
else
{
pred-> suivant= p-> suivant;
free(p);
}
return(tete);
}
}
}
void main()
{
...
...
}
le compilateur affiche les erreur suivante
' , expected' voir (1)
' declaration syntax error' voir (2)
Svp aidez moi.
je vous remercies d'avance.
25 oct. 2004 à 23:13
Pointer to structure required on left side of -> or ->* in function encode si qq pouvais me dire ou je me suis trompé, ca m'aiderais enormement.
le code est le suivant:
#include <stdio.h>
#include <string.h>
#include
typedef struct _fiche{char nom[25],num[15];struct _fiche*suivant;} fiche;
int menu(void);
void encode(char* nom,char* numero,fiche** debut);
void recherche(char* nom/*,char* numero*/,fiche** debut);
void main(){
int choix;
fiche *debut;
char nom[25],numero[15];
debut=NULL;
printf("\nAdresse de debut: %p\n",&debut);
do{
choix=menu();
switch (choix){
case 1: printf("\nENCODAGE\n");
do {printf("Nom:");fgets(nom,25,stdin);nom[strlen(nom)-1]=0;}
while (nom[0]==0);
do {printf("Numero:");fgets(numero,15,stdin);numero[strlen(numero)-1]=0;}
while (numero[0]==0);
encode(nom,numero,&debut);
break;
case 2: printf("\nRECHERCHE\n");
do {printf("Nom:");fgets(nom,25,stdin);nom[strlen(nom)-1]=0;}
while (nom[0]==0);
/*do {printf("Numero:");fgets(numero,15,stdin);numero[strlen(numero)-1]=0;}
while (numero[0]==0);*/
recherche(nom/*,numero*/,&debut);
break;
default: printf("\nFIN\n");
}
}
while(choix!=3);
}
void encode(char* nom,char* numero,fiche **ptr_debut){
printf("\nJ'encode %s avec le numero %s\ndans la file qui a comme adresse de debut:%p",nom,numero,*ptr_debut);
if (*ptr_debut==NULL) {
*ptr_debut=malloc(sizeof(fiche));
strcpy(*ptr_debut->nom,nom); //L ERREUR SE TROUVE A CETTE LIGNE
}
else{
*ptr_debut->suivant=malloc(sizeof(fiche)); //ET A CETTE LIGNE
}
}
void recherche(char* nom/*,char* numero*/,fiche** debut){
printf("\nJe recherche %s \ndans la file qui a comme adresse de debut:%p",nom,*debut);
}
int menu(){
int lechoix;
printf("\n1>Encoder\n2>Rechercher\n3>Quitter\nVotre choix ");
do scanf("%d",&lechoix);
while ((lechoix>3) && (lechoix<1));
return lechoix;
}
12 févr. 2004 à 07:53
12 févr. 2004 à 05:58
3.1. Ecriture d’une liste chaînée
Le C++ est un langage modulaire qui permet d’écrire des classes ré-utilisables. Si l’on doit réaliser une liste chaînée d’étudiants, une liste chaînée d’enseignants, etc., il serait peut-être intéressant d’isoler tous les mécanismes de gestion d’une liste chaînée pour pouvoir les réutiliser. C’est ce que nous allons faire. Toute liste chaînée est composée de deux parties :
Les éléments qui constituent les maillons de la liste chaînée. Pour cela, vous devez créer une classe Element.
Le mécanisme de gestion des éléments et des liens entre les éléments que vous stockerez dans une classe Liste.
3.1.1. Ecrire la classe Element
Tout élément d’une liste chaînée est caractérisé par :
son contenu. Si nous souhaitons pouvoir faire des listes d’étudiants, d’enseignants, etc., il faut ne faut pas que ce contenu soit typé. Vous utiliserez donc le type void* qui représente un type quelconque. Vous aurez donc un attribut du type void * contenu ;
le pointeur vers l’élément suivant. Ce pointeur sera donc de type Element *.
3.1.2. Ecrire la classe Liste
Cette classe modélise une liste chaînée d’Elements. Elle est caractérisée par un pointeur sur le premier élément de la liste et un pointeur sur l’élément courant. Cette classe contient toutes les méthodes nécessaires à la gestion d’une liste chaînée d’Elements (Ajouter, Supprimer, FinListe, Premier, Prochain).
3.2. Ecrire la classe ListeEnseignant
Cette classe permettra de stocker l'ensemble des enseignants de l'université. Puisque nous avons défini une classe Liste générique, nous pouvons la réutiliser. Pour cela, vous pouvez et devez considérer que la ListeEnseignant "est une" Liste. Ainsi, grâce à un lien d'héritage, votre classe ListeEnseignant dispose de tous les éléments nécessaires à une gestion d'une liste chaînée. Vous devez rajouter à cette classe tous les éléments qui sont propres à la gestion d'enseignants comme par exemple, ajouter un enseignant dans la liste, supprimer un enseignant de la liste, … plus une méthode de GestionListeEnseignant permettant d'afficher un menu pour le choix entre les différentes fonctionnalités.
3.3. Ecrire la classe ListeUV
3.4. Ecrire la classe Universite
Cette classe devra comprendre :
Une liste d'UV
Une liste d'enseignants
Toutes les méthodes que vous trouverez utiles
Une méthode GestionUniversité contenant le menu permettant d'accéder à la gestion des différentes composantes de la classe (gestion des étudiants, gestion des enseignants…)
3.5. Ecrire le programme principal
Ecrire un programme principal qui permette de créer une université et de lancer la gestion de l'université.
12 févr. 2004 à 05:58
3.1. Ecriture d’une liste chaînée
Le C++ est un langage modulaire qui permet d’écrire des classes ré-utilisables. Si l’on doit réaliser une liste chaînée d’étudiants, une liste chaînée d’enseignants, etc., il serait peut-être intéressant d’isoler tous les mécanismes de gestion d’une liste chaînée pour pouvoir les réutiliser. C’est ce que nous allons faire. Toute liste chaînée est composée de deux parties :
Les éléments qui constituent les maillons de la liste chaînée. Pour cela, vous devez créer une classe Element.
Le mécanisme de gestion des éléments et des liens entre les éléments que vous stockerez dans une classe Liste.
3.1.1. Ecrire la classe Element
Tout élément d’une liste chaînée est caractérisé par :
son contenu. Si nous souhaitons pouvoir faire des listes d’étudiants, d’enseignants, etc., il faut ne faut pas que ce contenu soit typé. Vous utiliserez donc le type void* qui représente un type quelconque. Vous aurez donc un attribut du type void * contenu ;
le pointeur vers l’élément suivant. Ce pointeur sera donc de type Element *.
3.1.2. Ecrire la classe Liste
Cette classe modélise une liste chaînée d’Elements. Elle est caractérisée par un pointeur sur le premier élément de la liste et un pointeur sur l’élément courant. Cette classe contient toutes les méthodes nécessaires à la gestion d’une liste chaînée d’Elements (Ajouter, Supprimer, FinListe, Premier, Prochain).
3.2. Ecrire la classe ListeEnseignant
Cette classe permettra de stocker l'ensemble des enseignants de l'université. Puisque nous avons défini une classe Liste générique, nous pouvons la réutiliser. Pour cela, vous pouvez et devez considérer que la ListeEnseignant "est une" Liste. Ainsi, grâce à un lien d'héritage, votre classe ListeEnseignant dispose de tous les éléments nécessaires à une gestion d'une liste chaînée. Vous devez rajouter à cette classe tous les éléments qui sont propres à la gestion d'enseignants comme par exemple, ajouter un enseignant dans la liste, supprimer un enseignant de la liste, … plus une méthode de GestionListeEnseignant permettant d'afficher un menu pour le choix entre les différentes fonctionnalités.
3.3. Ecrire la classe ListeUV
3.4. Ecrire la classe Universite
Cette classe devra comprendre :
Une liste d'UV
Une liste d'enseignants
Toutes les méthodes que vous trouverez utiles
Une méthode GestionUniversité contenant le menu permettant d'accéder à la gestion des différentes composantes de la classe (gestion des étudiants, gestion des enseignants…)
3.5. Ecrire le programme principal
Ecrire un programme principal qui permette de créer une université et de lancer la gestion de l'université.
12 févr. 2004 à 05:58
3.1. Ecriture d’une liste chaînée
Le C++ est un langage modulaire qui permet d’écrire des classes ré-utilisables. Si l’on doit réaliser une liste chaînée d’étudiants, une liste chaînée d’enseignants, etc., il serait peut-être intéressant d’isoler tous les mécanismes de gestion d’une liste chaînée pour pouvoir les réutiliser. C’est ce que nous allons faire. Toute liste chaînée est composée de deux parties :
Les éléments qui constituent les maillons de la liste chaînée. Pour cela, vous devez créer une classe Element.
Le mécanisme de gestion des éléments et des liens entre les éléments que vous stockerez dans une classe Liste.
3.1.1. Ecrire la classe Element
Tout élément d’une liste chaînée est caractérisé par :
son contenu. Si nous souhaitons pouvoir faire des listes d’étudiants, d’enseignants, etc., il faut ne faut pas que ce contenu soit typé. Vous utiliserez donc le type void* qui représente un type quelconque. Vous aurez donc un attribut du type void * contenu ;
le pointeur vers l’élément suivant. Ce pointeur sera donc de type Element *.
3.1.2. Ecrire la classe Liste
Cette classe modélise une liste chaînée d’Elements. Elle est caractérisée par un pointeur sur le premier élément de la liste et un pointeur sur l’élément courant. Cette classe contient toutes les méthodes nécessaires à la gestion d’une liste chaînée d’Elements (Ajouter, Supprimer, FinListe, Premier, Prochain).
3.2. Ecrire la classe ListeEnseignant
Cette classe permettra de stocker l'ensemble des enseignants de l'université. Puisque nous avons défini une classe Liste générique, nous pouvons la réutiliser. Pour cela, vous pouvez et devez considérer que la ListeEnseignant "est une" Liste. Ainsi, grâce à un lien d'héritage, votre classe ListeEnseignant dispose de tous les éléments nécessaires à une gestion d'une liste chaînée. Vous devez rajouter à cette classe tous les éléments qui sont propres à la gestion d'enseignants comme par exemple, ajouter un enseignant dans la liste, supprimer un enseignant de la liste, … plus une méthode de GestionListeEnseignant permettant d'afficher un menu pour le choix entre les différentes fonctionnalités.
3.3. Ecrire la classe ListeUV
3.4. Ecrire la classe Universite
Cette classe devra comprendre :
Une liste d'UV
Une liste d'enseignants
Toutes les méthodes que vous trouverez utiles
Une méthode GestionUniversité contenant le menu permettant d'accéder à la gestion des différentes composantes de la classe (gestion des étudiants, gestion des enseignants…)
3.5. Ecrire le programme principal
Ecrire un programme principal qui permette de créer une université et de lancer la gestion de l'université.
16 déc. 2003 à 18:31