Partage
  • Partager sur Facebook
  • Partager sur Twitter

Gestion de patients

    9 décembre 2017 à 16:46:08

    Bonjour, 

    Alors voila mon souci, j'espere que vous pourrez m'aider. Je dois faire un programme de gestion d'hopital, j'utilise un tableau de 26 entrées dont chaque entrée contient la tete et queue de la liste des patients, la premiere contient la tete et queue de la liste des patients dont le nom commence par a et ainsi de suite. la liste des patients est trié par ordre croissant suivant le nom/prénom, Nom est un pointeur vers une chaine de car, et chaque patient a une liste de médicament, possiblement vide. 

    Je dois faire ca en lisant un fichier texte qui se présente comme suit: 

    Jean michelle Penniclinie1 9  zenat 12 Mascot 25

    Pierre sylvain Med1 20 Med2 12

    julien tacbot med1 12 med2 13 med3 14 med4 18 med5 19 med6 21 med7 22 med8 23 med9 24 med10 25 

    Madi Said Cormed 12

    j'ai fait un  while ( fgets ( line, sizeof line, file ) != NULL ) pour lire chaque ligne, puis je bloque sur comment lire mot a mot la ligne et allouer correctement les différents champs.

    Avez vous des idées ? 

    Merci

    -
    Edité par SarahHana 9 décembre 2017 à 16:54:29

    • Partager sur Facebook
    • Partager sur Twitter
      9 décembre 2017 à 17:24:56

      Hello,

      Si tu peux être certaine que les deux premieres données sont toujours présentes, alors cela devient un jeu d'enfant (enfin presque) avec strchr() ou strtok(). Mais quid d'un nom composé, du style "van der Gracht de Rommerswael" ? (oui oui, ça existe vraiment). Les prénoms composés sont, quant à eux, reliés par un tiret, me semble-t-il.

      -
      Edité par edgarjacobs 9 décembre 2017 à 17:29:41

      • Partager sur Facebook
      • Partager sur Twitter

      On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

        9 décembre 2017 à 17:40:18

        edgarjacobs a écrit:

        Hello,

        Si tu peux être certaine que les deux premieres données sont toujours présentes, alors cela devient un jeu d'enfant (enfin presque) avec strchr() ou strtok(). Mais quid d'un nom composé, du style "van der Gracht de Rommerswael" ? (oui oui, ça existe vraiment). Les prénoms composés sont, quant à eux, reliés par un tiret, me semble-t-il.

        -
        Edité par edgarjacobs il y a 7 minutes

        Oui le nom et prénom sont toujours présents. Donc pour lire le nom du médoc et sa quantité j'utilise strtok et j'allou dynamiquement ? 

        Je vois pas trop comment faire ca en c :/ 

        • Partager sur Facebook
        • Partager sur Twitter
          9 décembre 2017 à 17:50:20

          Re,-

          Peux-tu montrer la structure que tu utlises pour les patients ainsi que celle pour les médicaments ?

          • Partager sur Facebook
          • Partager sur Twitter

          On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

            9 décembre 2017 à 17:58:16

            edgarjacobs a écrit:

            Re,-

            Peux-tu montrer la structure que tu utlises pour les patients ainsi que celle pour les médicaments ?


            typedef struct medic medic;
            struct medic
            {
            	medic *suivant;
            	int quant;
            	char *medicam;
            };
            
            typedef struct patient patient;
            struct patient
            {
            	patient *suivant;
            	patient *precedent;
            	medic *premier;
            	char *nom;
            };
            
            typedef struct alphabet alphabet;
            struct alphabet{
                patient *dernP;
                patient *premP;
            };


            • Partager sur Facebook
            • Partager sur Twitter
              9 décembre 2017 à 18:05:28

              Hello,

              Au vu de tes structures, l'allocation dynamique sera implicite: tu as une liste chainées pour les médicaments. Donc tu ajouteras autant de maillons que nécessaire.

              Tu as donc "juste" des liste chainées à gérer: les 26 listes chainées pour les patients dont le nom commence par la même lettre, et pour chaque patient, une liste chainée pour les médicaments.

              Si tu prévois convenablement les primitives pour tes listes, cela n'est pas si complexe qu'il y parait.

              Et oui, pour découper la ligne lue, strtok() est un bon plan (en omettant ma remarque sur les noms composés).

              -
              Edité par edgarjacobs 9 décembre 2017 à 18:08:11

              • Partager sur Facebook
              • Partager sur Twitter

              On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

                9 décembre 2017 à 18:14:54

                Donc aprés les 2 premiéres lectures du nom et prénom, je peux utiliser un entier initialisé a 2, que j'utiliserai comme ca : si c'est impair alors c'est un nom de medoc, la je fais le necessaire, et si c'est pair c'est sa quantité ? 



                -
                Edité par SarahHana 9 décembre 2017 à 18:16:03

                • Partager sur Facebook
                • Partager sur Twitter
                  9 décembre 2017 à 21:51:39

                  SarahHana a écrit:

                  Donc aprés les 2 premiéres lectures du nom et prénom, je peux utiliser un entier initialisé a 2, que j'utiliserai comme ca : si c'est impair alors c'est un nom de medoc, la je fais le necessaire, et si c'est pair c'est sa quantité ? 

                  C'est une idée qui devrait fonctionner, en n'oubliant pas la possibilité qu'il n'y ait pas de médicament.

                  • Partager sur Facebook
                  • Partager sur Twitter

                  On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

                  Gestion de patients

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown