IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Projet C++ : vecteur, structure, saisie de données


Sujet :

C++

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 18
    Points : 9
    Points
    9
    Par défaut Projet C++ : vecteur, structure, saisie de données
    Bonsoir,

    Je suis totalement débutante dans le langage c++ et j’ai un projet informatique à réaliser dans le cadre de mes études.

    Le projet débute en permettant la saisie de données médicales de plusieurs patients (nom, prénom, âge, poids, taille…) dont on ne connait pas le nombre puis de les stocker dans un tableau.

    Le programme doit permettre d’afficher les données d’un seul patient X (ce qui équivaut à sa fiche médicale) mais aussi d’afficher les données de tout les patients qu’on a enregistré.

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    / Je déclare mes variables :
           struct Patient
            {
                string nom;
                string prenom;
                int     age ;
                double   taille, poids ;
                char    sexe ;
     
            };
     
        Patient patientA, patientB, patientC, patientD, patientE ;
     
        // on crée le tableau vecteur vide :
        vector<Patient> liste;
     
        // le médecin rentre les données médicales du patient A :
        cout<<"Saisir le nom du patient : ";
        cin>>patientA.nom;
        cout<<"Saisir la taille du patient : ";
        cin>>patientA.taille;
        cout<<"Saisir le poids du patient : ";
        cin>>patientA.poids;
        cout<<"Saisir le sexe du patient : ";
        cin>>patientA.sexe;
        cout<<"Saisir l'âge du patient : ";
        cin>>patientA.age;
     
        // Toutes ces données sont stockées dans la première ligne du vecteur :
        liste.push_back(patientA);
     
        cout<<endl;
     
        // Test pour vérifier que les données soient bien stockées :
        cout<<"Le nom du patient A est : "<<patientA.nom<<endl;
        cout<<"La taille du patient A est : "<<patientA.taille<<endl;
        cout<<"Le poids du patient A est : "<<patientA.poids<<endl;
        cout<<"L'age du patient A est : "<<patientA.age<<endl; // affiche l'age du patient A par exemple
     
        cout<<endl;
     
        // le médecin ajoute les données médicales d'un deuxième patient
        cout<<"Saisir le nom du patient : ";
        cin>>patientB.nom;
        cout<<"Saisir la taille du patient : ";
        cin>>patientB.taille;
        cout<<"Saisir le poids du patient : ";
        cin>>patientB.poids;
        cout<<"Saisir le sexe du patient : ";
        cin>>patientB.sexe;
        cout<<"Saisir l'âge du patient : ";
        cin>>patientB.age;
     
        // Toutes ces données sont stockées dans la deuxième ligne du vecteur :
        liste.push_back(patientB);
     
        cout<<endl;
     
        // Test pour vérifier que les données soient bien stockées dans le vecteur :
        cout<<"Le nom du patient B est : "<<patientB.nom<<endl;
        cout<<"La taille du patient B est : "<<patientB.taille<<endl;
        cout<<"Le poids du patient B est : "<<patientB.poids<<endl;
        cout<<"L'age du patient B est : "<<patientB.age<<endl; 
     
     
     
        return 0;
     
    }

    J’ai commencé mon programme par la déclaration d’une structure, puis comme on me demande de saisir 5 patients au début, j’ai créé un tableau vecteur qui me permet de saisir ces 5 patients (A, B,C D,E). Le vecteur doit être «*ouvert*» pour permettre de rajouter au fur et à mesure des patients.
    Mais je me demandais si à la place d'utiliser des "cout" pour afficher chacune de mes données, je pouvais avoir une commande qui me donnait automatiquement toutes les lignes du vecteur. Autrement dit, y'a-t-il une commande pour afficher les données médicales de mes 2 patients en même temps (à la suite) et non pas par des dizaines de "cout" ?

    J’ai également tenté de faire une boucle qui me permet de saisir plusieurs patients à la suite. Tant que l’utilisateur n’aura pas saisi OK après la saisie des données, la boucle redemandera la saisie de données pour un nouvel patient.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    do {
     
        //saisie des données
     
        cout<<"Saisir OK si vous avez terminé ou PLUS si vous voulez rajouter des patients ";
        cin>>x;
     
    }while(x!= "OK");
    Je ne suis pas du tout sure que cette boucle soit juste puisqu’il faut qu’elle permette d’enregistrer les données saisies auparavant et non pas de les remplacer.

    Merci d'avance pour vos réponses.

  2. #2
    Membre averti Avatar de Seabirds
    Homme Profil pro
    Post-doctoral fellow
    Inscrit en
    Avril 2015
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Post-doctoral fellow
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2015
    Messages : 294
    Points : 341
    Points
    341
    Par défaut
    Hello

    Citation Envoyé par débutant09 Voir le message
    J’ai commencé mon programme par la déclaration d’une structure, puis comme on me demande de saisir 5 patients au début, j’ai créé un tableau vecteur qui me permet de saisir ces 5 patients (A, B,C D,E). Le vecteur doit être «*ouvert*» pour permettre de rajouter au fur et à mesure des patients.
    Mais je me demandais si à la place d'utiliser des "cout" pour afficher chacune de mes données, je pouvais avoir une commande qui me donnait automatiquement toutes les lignes du vecteur. Autrement dit, y'a-t-il une commande pour afficher les données médicales de mes 2 patients en même temps (à la suite) et non pas par des dizaines de "cout" ?
    Il me semble que tu devrais commencer par jeter un coup d'oeil ici. Cela te permettra de voir ce qu'il est possible de faire avec les flux.

    Jaurais tendance à d'abord définir un opérateur << qui puisse envoyer en console ta classe Patient, de telle sorte que tu puisses écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::cout << patientA << "\n" << patientB << std::endl;
    Tu pourras ensuite définir un operateur >> qui permette de saisir un patient, de telle sorte que tu puisses écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Patient p;
    std::cin >> p;
    Ensuite je ferais bien une classe Database qui représente ta base de données, et qui contient comme donnée membre la liste des patients:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    class Database{
    std::list<Patient> m_patients;
     
    };
    Tu pourrais du coup y définir une fonction qui permette d'écrire std::cout << database << "\n" << std::endl (en gros, cette fonction ferait une boucle for sur la liste des patients qui envoie chaque élément en console).

    Et enfin, tu pourrais écrire une fonction Database::add(Patient p) qui ajoute un patient à la liste contenue dans la base de données.

    Déjà il me semble qu'en faisant tout ça tu commenceras à y voir un peu plus clair
    Le débutant, lui, ignore qu'il ignore à ce point, il est fier de ses premiers succès, bien plus qu'il n'est conscient de l'étendue de ce qu'il ne sait pas, dès qu'il progresse en revanche, dès que s'accroît ce qu'il sait, il commence à saisir tout ce qui manque encore à son savoir. Qui sait peu ignore aussi très peu. [Roger Pol-Droit]
    Github
    Mon tout premier projet: une bibliothèque de simulation de génétique des populations

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #include <algorithm>
    #include <iostream>
    #include <iterator>
     
    std::copy(myVector.begin(), myVector.end(), std::ostream_iterator<char>(std::cout, " "));

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Saisie des données dans structure de tableau
    Par tresonance dans le forum Débuter
    Réponses: 1
    Dernier message: 20/07/2014, 21h00
  2. Script sql recupérant la structure ET les données.
    Par __fabrice dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 04/01/2006, 14h17
  3. saisie de données et génération automatique d'un classement
    Par kcizth dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 23/12/2005, 13h24
  4. saisie de données dans formulaire
    Par philpaul dans le forum Access
    Réponses: 4
    Dernier message: 15/09/2005, 13h13
  5. Saisie de données dans une procédure stockée
    Par Hastaroth dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/10/2004, 09h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo