Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1280 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [C] probleme de fichiers

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] probleme de fichiers

n°1666834
peweete
Posté le 06-01-2008 à 18:35:45  profilanswer
 

hello
j'ai un super programme à faire et je bloque si quelqu'un pouvais me donner un petit coup de main
Sujet:
Une société organise des receptions respectant le protocole pour des gouvernements.
Pour cela, elle dispose de différentes sources d'informations:
       - la liste des pays existant dans le monde, avec pour chacun d'entre eux son continent, son mode de gouvernement (empire, royauté, république,fédération, dictature), son nombre d'habitants et sa capitale. Par ailleurs, pour chaque état, elle connait egalement ses principales sources de richesses (tourisme, pétrole,....)
       - pour chaque pays, elle connait ses alliés politiques (ou pays frere), ses alliés economique (pays amis), ses ennemis (pays en guerre), ses inimitiés (pays avec lesquels il y a une tension).
       -pour chaque pays dans le monde, elle connait la liste des ambassades presentes dans le pays, ainsi que le nom de l'ambassadeur en poste.
       - pour chaque chef d'etat et chaque ambassadeur, elle connait ses allergies culinaires éventuelles (ingredients que la personne ne peut manger).
       - pour chaque reception, elle conserve la date, le lieu, la liste des invités et le menu servi.
 
La société a egalement un catalogue de plat à servir. Pour chaque plat elle si il s'agit d'une entrée, d'un plat principal ou d'un dessert et elle connait la liste des ingredient qui le compose.

 
J'ai les structures qui represente le sujet:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define A 26
#define N 20
#define M 100
#define R 10   //nombre de richesse maximum pour un pays
#define P 5
#define T 15
#define Nb_max 50
#define Nb_i 30
#define Nb_pays 20
#define Nb_rec 100
  //Gouvernement existant dans le monde
 
typedef struct Tallergie{           //article regroupant les allergies
               char nom_allergie[R] [N];
               int nombre_allergie;
           }Tallergie;
 
typedef struct Tfrere{           // article des liens qu'un pays a avec les autres
           char nom_frere[P][N];
           int nombre_frere;
       } Tfrere;
 
typedef struct Tami{           // article des liens qu'un pays a avec les autres
         char nom_ami[P][N];
         int nombre_ami;
      } Tami;
 
typedef struct Tguerre{           // article des liens qu'un pays a avec les autres
               char nom_guerre[P][N];
               int nombre_guerre;
         } Tguerre;
 
typedef struct Ttension{               // article des liens qu'un pays a avec les autres
               char nom_tension[P][N];
               int nombre_tension;
           } Ttension;
typedef struct Tambassadeur{                  //article regroupant les ambassade ainsi que le
              char nom[N];                                                          // le nom de l'ambassadeur
              char prenom[N];
              Tallergie allergie;              
              struct Tambassade * suiv ;
                                        } Tambassadeur;
 
typedef struct Tambassade{          //article regroupant les ambassade ainsi que le
             char nom[N];
             Tambassadeur ambassadeur[A][N];
             int nb_amb;         //nombre de d'ambassadeur
             struct Tambassade * suiv ;
                                    } Tambassade;
 
typedef struct Tchef{                 //article regroupant les ambassade ainsi que le
    char nom[N];  
    char prenom[N];
    Tallergie allergie;         //nom de l'ambassadeur
    struct Tchef * suiv ;
                            } Tchef;
 
typedef struct Trichesse{
                char richesse[N];
                int nombre_rich;
                                 } Trichesse;
 
 
typedef struct Tpays{              // article pour un pays et tout ce qui le rattache
            char nom[10];
            char capital[N];
            char continent[N];
            char gouv[N];
            int Nbhabit;
            Trichesses_richesse[R];
            Tchef chef_etat;
            Tambassade ambassade;
            Tfrere pays_frere;
            Tami pays_ami;
            Tguerre  pays_guerre;
                   Ttension pays_tension;
            struct Tpays * suiv ;
        } Tpays;
 
typedef struct Tinvite {           //article pour un invitée d'une réception
             char nom[N];
             char prenom[N];
         } Tinvite;
 
typedef struct Tlieu{
         char pays;
         char capitale;
                           } Tlieu;
 
 
typedef struct Tmenu {            //article de la composition du menu
            char entree[N];
            char plat_principal [N];
            char dessert[N];
         }Tmenu;
 
 
typedef struct Treception {           //article de description d'une reception
                  int date;
                  Tlieu lieu;
                  Tinvite invite[Nb_max];
                  int nbinvite;
                  Tmenu menu;
                                   }Treception;
 
 
typedef struct Tingredient{
                   char nom_ingredient[Nb_i] [N];
                    int nb_ing;
                                   } Tingredient;
typedef struct Tplat {
           char nom_plat[N];
           char type[N];
           Tingredient ingredient;
                             }Tplat;
 
typedef struct Tcatalogue{
                   Tplat plat[T][N];
                    int nb_plat;
                                   }Tcatalogue;
 
typedef struct Tsociete {
                       Tpays pays[Nb_pays];
                        int nb_pays;
                        Treception reception[Nb_rec];
                        int nb_reception;
                        Tcatalogue catalogue;
                                 }Tsociete;
 
 
jusque la tout va bien le probleme c'est pour repondre aux questions qui suivent j'aimerais créer des fichiers qui contiennent toutes ses données et utiliser des pointeurs pour rechercher les reponses
la société souhaite informatiser la gestions des receptions. Aidez la en lui proposant un logiciel écrit en C lui permettant de repondre aux questions:
    -Pour chaque pays, donnez la liste des pays avec qui il est en guerre.
    - Quelle est la liste des ambassadeurs d'un pays donné
    -Soit une capitale, quelle est la liste des receptions qui ont ete organisees dans cette ville une année donnée
    - Soit un chef d'etat, quelle est la liste des receptions auxquelles il a assistées cette année
    - Soit un ambassadeur,quel est le dessert qui lui a ete le plus souvant servi dans une reception cette année
     -Un chef d'état doit se rendre en visite officielle dans une capitale d'un etat ami qui organise une reception en son honneur. Proposez la liste des invités possibles, sachant que ne sont invité à la reception que les ambassadeurs des pays amis ou frere
et quelle est la liste des plats qui ne conviennent pas aux 2 chef d'état
     - Pour un pays, donner la liste des pays amis de ses pays amis
     - Quel est le pays ayant le plus de pays ennemis ayant des richesses dans le petrole.

 
Voila donc en gros j'aurais besoin d'un coup de main pour mes fichiers où seront stockés toutes mes infos pour les question, je sais y repondre c'est pas le probleme.
 
 
 
 

mood
Publicité
Posté le 06-01-2008 à 18:35:45  profilanswer
 

n°1666878
tpierron
Posté le 06-01-2008 à 20:32:35  profilanswer
 

Hum, ça sent la demande pour faire ton projet à ta place.
 
Bon, comme je suis levé du bon pied ce matin, je vais te donner une piste.
 
Utilise un SGBD (pour pas te prendre la tête utilise SQLite, c'est juste une DLL à déployer, que tu pourras même recompiler en lib statique). Il faudra convertir ton fichier texte en db (c'est le plus dur en fait).
 
À partir de là, chaque question pour se faire en une requète SQL, soit un appel de fonction si tu utilises SQLite.
 
Bonne chance.
 

n°1666898
Joel F
Real men use unique_ptr
Posté le 06-01-2008 à 21:51:39  profilanswer
 

ca sent plus le TP.
 
rencadre toi sur fread/fwrite/fopen/fclose et consoeur

n°1666899
olivthill
Posté le 06-01-2008 à 21:52:17  profilanswer
 

Je crains que notre pauvre ami peweete n'ait pas le choix de ces outils de programmation (soit parce qu'il serait étudiant, soit parce qu'il serait sous la direction de chefs qui n'y connaissent rien en informatique comme c'est le cas habituellement), sinon il est évident qu'il utiliserait une base de données, et autre chose que du C pour faire ça, par exemple du PHP avec MySQL.
 
Pour répondre en respectant les contraintes, il suffit de connaitre fopen (en mode binaire, pas en mode texte qui est le mode par défaut), fwrite, fread, fclose, connaitre &ma_variable (avec l'ampersand, l'esperluette qui permet de prendre l'adresse), et ne pas se faire avoir avec des sizeof() qui prendraient la taille d'un pointeur au lieu de la taille d'une donnée.
 
Bonne chance !
 
Edit: grilled par Joel F qui pense aussi au fxxxxx.


Message édité par olivthill le 06-01-2008 à 21:54:02
n°1667728
gilou
Modérateur
Modzilla
Posté le 08-01-2008 à 14:22:10  profilanswer
 

Perso, vu qu'on ne lui demande pas d'écrire les fiches avec son programme, je ferais les fiches en XML avec un éditeur de texte, avec utilisation de expat pour les lire et remplir ses structures de données.
Sinon, s'il doit tout faire a la pogne, alors fread/fwrite en mode binaire...
A+,


Message édité par gilou le 08-01-2008 à 14:24:03

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [C] probleme de fichiers

 

Sujets relatifs
Probleme de type incompatibleDébutant, petit probléme
Faire une redirection d'url.C#/SOAP/PHP5 Probleme webservice
Problème sur un script PHP de calendrier[BASH] Probleme cron et autres [Résolu]
Probleme de "logique de script"probleme php 5.2.5
probleme de avec la validation html (validateur W3)Problème IIS 5 et ASP sur Windows 2000 pro
Plus de sujets relatifs à : [C] probleme de fichiers


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR