begin process at 2010 02 10 01:38:08
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

les listes chaînées C.


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

les listes chaînées C.

jeudi 14 novembre 2002 à 03:48:52 | les listes chaînées C.

ayour

veuillez m evoyer une solution pour l ennonce suivant : merci a tt le monde.

Matière exercée: les listes chaînées.

Les services de renseignements possèdent les informations relatives aux pays visités et aux emplois occupés par leurs espions et espionnes. De plus, à chaque trimestre, de nouvelles informations sont mises à jour: mise hors service d?un espion (retraite ou décès), nouvel espion en service, nouvelle localisation d?un espion. Vous devez écrire un programme en C capable de traiter toutes ces informations.

Informations disponibles

Le fichier espion.txt contient les informations sur les espions (chaque ligne comporte trois champs distincts):

Champ 1 (colonnes 1-30) : nom de l?espion ou de l?espionne (maximum de 30 caractères)
Champ 2 (colonnes 31-50) : nom du pays visité (maximum de 20 caractères)
Champ 3 (colonnes 51-79) : emploi occupé (maximum de 29 cararactères)

Ce fichier ne contient aucune erreur. Voici un exemple de quelques lignes de données du fichier:

Bruce Twincam Congo Prof. invite (informatique)
Jef Van Den Nonante Guatemala Avocat de droit international
Callaghan Argentine Prof. invite (informatique)

Le fichier esp2002.txt contient la mise à jour du fichier sur les espions (chaque ligne peut comporter jusqu?à quatre champs distincts):

Champ 1 (colonnes 1-30) : nom de l?espion ou de l?espionne (maximum de 30 caractères)
Champ 2 (colonnes 31-50) : nom du pays visité (maximum de 20 caractères); peut être vide si code est ?E?
Champ 3 (colonnes 51-79) : emploi occupé (maximum de 29 caractères); peut être vide si code est ?E?
Champ 4 (colonnes 80-80) : code de mise à jour (une lettre majuscule)

Le code ?E? indique que l?espion est hors service, le code ?R? indique qu?il s?agit d?un nouvel espion (absent du fichier espion.txt) et le code ?N? indique que l?espion ou l?espionne a été envoyé dans un nouveau pays (soit avec un nouvel emploi, soit avec un emploi déjà occupé).

Ce fichier aussi ne contient aucune erreur. Voici un exemple de quelques lignes de données du fichier:

John Caesar Alexander Beaumont E
Youri Leonide E
Jimmy Bond Madagascar Conseiller en communications R

Vous pouvez importer ces deux fichiers de notre site Web.

Difficultés

Il y a essentiellement deux difficultés.

La première difficulté concerne les données du fichier espion.txt; le nom d?un espion peut apparaître un nombre quelconque de fois. Il est aussi possible que cet espion (ou cette espionne) visite plusieurs fois le même pays ou occupe plusieurs fois le même emploi. Il faut veiller alors à ne pas insérer le pays dans la liste s?il a déjà été visité et/ou à ne pas insérer l?emploi dans la liste si cet emploi a déjà été enregistré pour cet espion (ou cette espionne).

La seconde difficulté concerne les données du fichier esp2002.txt; lorsqu?on rencontre le code ?E?, il faut enlever l?espion (ou l?espionne) de la liste. Il faut toutefois veiller à détruire correctement les sous-listes associées (la liste des pays visités ainsi que la liste des emplois occupés).

Résultats à produire

Après la lecture du fichier espion.txt, votre programme doit produire deux rapports:

? la liste alphabétique des espions (espionnes) avec chaque pays visité (les pays en ordre alphabétique);
? la liste alphabétique des espions (espionnes) avec chaque emploi occupé (les emplois en ordre alphabétique).

Voici un exemple du premier rapport:

ESPION PAYS

Algernon Solvency Chine
Grece
Haiti
Liban
Suede

Allan Barker Albanie
Allemagne
Ethiopie
Japon
Zambie
etc.

Voici un exemple du second rapport:

ESPION EMPLOI

Algernon Solvency Att. commercial (industrie)
Att. militaire (colonel)

Allan Barker Att. militaire (general)

Bruce Twincam Att. militaire (capitaine)
Ingenieur civil
etc.

Après la lecture du fichier esp2002.txt, votre programme doit produire les deux mêmes rapports, avec en plus:

? le nombre d?espions mis hors service;
? le nombre de nouveaux espions.

Ces quatre rapports (listes alphabétiques) différents, ainsi que les nombres concernant les espions hors service et les nouveau espions, doivent être produites dans un fichier appelé nbtries.txt.

Remise des résultats

Les résultats sont remis seulement de manière électronique étant donné la taille des résultats (sinon, ça risque de faire beaucoup trop de pages à imprimer). Ainsi, lors de la remise électronique, on ne doit pas oublier de copier dans le répertoire remise-tp4 le fichier contenant le programme, mais aussi le fichier de résultats infoesp.txt.

Exigences pédagogiques

Vous devez utiliser une liste chaînée pour traiter les informations sur les espions et espionnes. De plus, chaque élément de cette liste comporte aussi deux listes chaînées: une liste pour les pays visités et une liste pour les emplois occupés. Autrement dit, vous aurez la structure de données suivante:

typedef struct pays* PtrPays;
typedef struct pays
{
char nom[...]; /* nom du pays */
PtrPays suivant; /* pointeur sur le prochain pays */
} pays;

typedef struct emploi* PtrEmploi;
typedef struct emploi
{
char nom[...]; /* nom de l?emploi */
PtrEmploi suivant; /* pointeur sur le prochain emploi */
} Emploi;

typedef struct espion* PtrEspion;
typedef struct espion
{
char nom[...]; /* nom de l?espion(ne) */
PtrPays listePays; /* tête de liste des pays visités */
PtrEmploi listeEmploi; /* tête de liste des emplois occupés */
PtrEspion suivant; /* pointeur sur le prochain espion */
} Espion;

PtrEspion listeEspion; /* tête de liste des espions */

Pour trier l?information, il suffit simplement, lors de la lecture, d?insérer les nouvelles informatons au bon endroit (que ce soit pour la liste principale des espions ou des sous-listes associées concernant les pays ou les emplois).

Finalement, votre programme doit être composé d?au moins 10 fonctions (en ne comptant pas la fonction main).

Suggestions

Afin d'éviter les nombreux désagréments de la programmation, il est souhaitable de procéder par étapes. Voici quelques suggestions:

? une première étape est une version simplifiée qui lit les données du fichier espion.txt, et les imprime au fur et à mesure (c'est toujours rassurant d'avoir un programme qui correctement les données...);
? une seconde étape incorpore la construction des listes en découpant bien les étapes (recherche d?un élément dans une liste et insertion d?un élément dans une liste; il est conseillé de faire 3 fonctions de recherche et de faire 3 fonctions d?insertion puisqu?il y a 3 listes différentes);
? une troisième étape est une version simplifiée qui lit les données du fichier esp2002.txt, et les imprime au fur et à mesure (c'est toujours rassurant d'avoir un programme qui correctement les données...);
? finalement, une quatrième étape incorpore la mise-à-jour des listes selon le code spécifié (il faut ici prévoir la destruction d?un élément dans une liste en suivant la même approche que pour la recherche et l?insertion).
vendredi 15 novembre 2002 à 16:24:28 | Re : les listes chaînées C.

thitoune

Tu ne te fouterai pas un peu de la gueule du monde en voulant sous traiter tes projets d'école sur un site web ?



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

veuillez m evoyer une solution pour l ennonce suivant : merci a tt le monde.

Matière exercée: les listes chaînées.

Les services de renseignements possèdent les informations relatives aux pays visités et aux emplois occupés par leurs espions et espionnes. De plus, à chaque trimestre, de nouvelles informations sont mises à jour: mise hors service d?un espion (retraite ou décès), nouvel espion en service, nouvelle localisation d?un espion. Vous devez écrire un programme en C capable de traiter toutes ces informations.

Informations disponibles

Le fichier espion.txt contient les informations sur les espions (chaque ligne comporte trois champs distincts):

Champ 1 (colonnes 1-30) : nom de l?espion ou de l?espionne (maximum de 30 caractères)
Champ 2 (colonnes 31-50) : nom du pays visité (maximum de 20 caractères)
Champ 3 (colonnes 51-79) : emploi occupé (maximum de 29 cararactères)

Ce fichier ne contient aucune erreur. Voici un exemple de quelques lignes de données du fichier:

Bruce Twincam Congo Prof. invite (informatique)
Jef Van Den Nonante Guatemala Avocat de droit international
Callaghan Argentine Prof. invite (informatique)

Le fichier esp2002.txt contient la mise à jour du fichier sur les espions (chaque ligne peut comporter jusqu?à quatre champs distincts):

Champ 1 (colonnes 1-30) : nom de l?espion ou de l?espionne (maximum de 30 caractères)
Champ 2 (colonnes 31-50) : nom du pays visité (maximum de 20 caractères); peut être vide si code est ?E?
Champ 3 (colonnes 51-79) : emploi occupé (maximum de 29 caractères); peut être vide si code est ?E?
Champ 4 (colonnes 80-80) : code de mise à jour (une lettre majuscule)

Le code ?E? indique que l?espion est hors service, le code ?R? indique qu?il s?agit d?un nouvel espion (absent du fichier espion.txt) et le code ?N? indique que l?espion ou l?espionne a été envoyé dans un nouveau pays (soit avec un nouvel emploi, soit avec un emploi déjà occupé).

Ce fichier aussi ne contient aucune erreur. Voici un exemple de quelques lignes de données du fichier:

John Caesar Alexander Beaumont E
Youri Leonide E
Jimmy Bond Madagascar Conseiller en communications R

Vous pouvez importer ces deux fichiers de notre site Web.

Difficultés

Il y a essentiellement deux difficultés.

La première difficulté concerne les données du fichier espion.txt; le nom d?un espion peut apparaître un nombre quelconque de fois. Il est aussi possible que cet espion (ou cette espionne) visite plusieurs fois le même pays ou occupe plusieurs fois le même emploi. Il faut veiller alors à ne pas insérer le pays dans la liste s?il a déjà été visité et/ou à ne pas insérer l?emploi dans la liste si cet emploi a déjà été enregistré pour cet espion (ou cette espionne).

La seconde difficulté concerne les données du fichier esp2002.txt; lorsqu?on rencontre le code ?E?, il faut enlever l?espion (ou l?espionne) de la liste. Il faut toutefois veiller à détruire correctement les sous-listes associées (la liste des pays visités ainsi que la liste des emplois occupés).

Résultats à produire

Après la lecture du fichier espion.txt, votre programme doit produire deux rapports:

? la liste alphabétique des espions (espionnes) avec chaque pays visité (les pays en ordre alphabétique);
? la liste alphabétique des espions (espionnes) avec chaque emploi occupé (les emplois en ordre alphabétique).

Voici un exemple du premier rapport:

ESPION PAYS

Algernon Solvency Chine
Grece
Haiti
Liban
Suede

Allan Barker Albanie
Allemagne
Ethiopie
Japon
Zambie
etc.

Voici un exemple du second rapport:

ESPION EMPLOI

Algernon Solvency Att. commercial (industrie)
Att. militaire (colonel)

Allan Barker Att. militaire (general)

Bruce Twincam Att. militaire (capitaine)
Ingenieur civil
etc.

Après la lecture du fichier esp2002.txt, votre programme doit produire les deux mêmes rapports, avec en plus:

? le nombre d?espions mis hors service;
? le nombre de nouveaux espions.

Ces quatre rapports (listes alphabétiques) différents, ainsi que les nombres concernant les espions hors service et les nouveau espions, doivent être produites dans un fichier appelé nbtries.txt.

Remise des résultats

Les résultats sont remis seulement de manière électronique étant donné la taille des résultats (sinon, ça risque de faire beaucoup trop de pages à imprimer). Ainsi, lors de la remise électronique, on ne doit pas oublier de copier dans le répertoire remise-tp4 le fichier contenant le programme, mais aussi le fichier de résultats infoesp.txt.

Exigences pédagogiques

Vous devez utiliser une liste chaînée pour traiter les informations sur les espions et espionnes. De plus, chaque élément de cette liste comporte aussi deux listes chaînées: une liste pour les pays visités et une liste pour les emplois occupés. Autrement dit, vous aurez la structure de données suivante:

typedef struct pays* PtrPays;
typedef struct pays
{
char nom[...]; /* nom du pays */
PtrPays suivant; /* pointeur sur le prochain pays */
} pays;

typedef struct emploi* PtrEmploi;
typedef struct emploi
{
char nom[...]; /* nom de l?emploi */
PtrEmploi suivant; /* pointeur sur le prochain emploi */
} Emploi;

typedef struct espion* PtrEspion;
typedef struct espion
{
char nom[...]; /* nom de l?espion(ne) */
PtrPays listePays; /* tête de liste des pays visités */
PtrEmploi listeEmploi; /* tête de liste des emplois occupés */
PtrEspion suivant; /* pointeur sur le prochain espion */
} Espion;

PtrEspion listeEspion; /* tête de liste des espions */

Pour trier l?information, il suffit simplement, lors de la lecture, d?insérer les nouvelles informatons au bon endroit (que ce soit pour la liste principale des espions ou des sous-listes associées concernant les pays ou les emplois).

Finalement, votre programme doit être composé d?au moins 10 fonctions (en ne comptant pas la fonction main).

Suggestions

Afin d'éviter les nombreux désagréments de la programmation, il est souhaitable de procéder par étapes. Voici quelques suggestions:

? une première étape est une version simplifiée qui lit les données du fichier espion.txt, et les imprime au fur et à mesure (c'est toujours rassurant d'avoir un programme qui correctement les données...);
? une seconde étape incorpore la construction des listes en découpant bien les étapes (recherche d?un élément dans une liste et insertion d?un élément dans une liste; il est conseillé de faire 3 fonctions de recherche et de faire 3 fonctions d?insertion puisqu?il y a 3 listes différentes);
? une troisième étape est une version simplifiée qui lit les données du fichier esp2002.txt, et les imprime au fur et à mesure (c'est toujours rassurant d'avoir un programme qui correctement les données...);
? finalement, une quatrième étape incorpore la mise-à-jour des listes selon le code spécifié (il faut ici prévoir la destruction d?un élément dans une liste en suivant la même approche que pour la recherche et l?insertion).



Cette discussion est classée dans : fichier, liste, emploi, pays, espion


Répondre à ce message

Sujets en rapport avec ce message

Lecture d'un fichier texte pour mettre dans une liste chainée [ par webgladiator ] Merci de prendre du temps à me lire.J'ai un projet d'info dont le but est d'effectuer le plus court itinéraire dans le metro parisien (opimisation).J' REcuperer des donnée d'un fichier binaire vers une tableau de hachage [ par whiteknight ] Slt j'ai des problemes avec ma fonction load qui me permet de recuperer les données d'un fichier binaire et de les transférer vers un tableau de hacha probleme de listage de fichiers [ par Kevin972 ] salut!! je ne comprends pas la fonction ne liste rien du tout.........al'aide!!!!!!!!!!!!!!!!! voici ma fonction:#include#include#include#include#in Erreur de débutant - Debug Assertion Failed! [ par PsyCaDi ] Bonjour,Aujourd'hui, j'ai un gros pb, j'ai un petit programme qui me liste le contenu de mes répertoire dans des fichiers texteVoici le code: (désolé ligne d'horizon (urgent!!!) [ par tresorr ] bonjour,je suis une pauvre étudiante au bord du suicide (enfin presque..), qui doit faire un programme qui trace une liggne d'horizon et qui n'y compr Moteur de recherche en C [ par christophebalet198406 ] Bonjour à tous, je souhaite réaliser un moteru de recherche en C. La recherche s'effecture à partir d'une liste de fichier à créer. elle pourra se fai ListBox et fichier texte [ par lomat62 ] voila je cherche une méthode qui permet d'afficher le contenu d'un fichier texte dans une listbox. cette liste doit s'afficher suite a un clik effectu Liste fichier wxWindows [ par probordelais ] Bonjour,Je commence à utiliser wxWindows. Le truc que je veux faire c'est sélectionner un répertoire et ensuite lister automatiquement tous les fichie Problème avec liste chainée [ par quiz82 ] salut tout le monde g un programme qui gere des RDV en C++ et j aimerai rajouter des fonctions pour annuler ou supprimer un RDV, et une fonction qui m Mise à jour d'un fichier texte [ par Neo020585 ] Bonjour à tous.J'ai un fichier "liste.txt" qui contient une liste de chemin d'accès à des fichiers avec leur date de dernière modification :ex. : ...C


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,686 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales