Ajouter un patient

Fermé
jun2022 Messages postés 4 Date d'inscription jeudi 23 avril 2020 Statut Membre Dernière intervention 25 avril 2020 - 23 avril 2020 à 11:06
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 - 25 avril 2020 à 10:34
Bonjour, j'ai une classe listePatients à laquelle je dois ajouter des patients mais lors de l'ajout d'un patient il doit être associé au medecin ayant le plus petit nombre de patients déjà associés
voici mes classe listePatients , patients, medecins, listeMedecins pour être explicite et j'aimerai savoir comment ajouter un patient et lui attribuer son medecin pouvez-vous m'aider

j'ai mis aussi une image



 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace TPCsharp
{
    class ListePatients
    {
        public Patient ListePatient { get; private set; }

        public ListePatients()
        {
            _listePatient = new List<Patient>();

            string nomFichier = "Medecin.txt";
            try
            {


                using (StreamReader fichier = new StreamReader(nomFichier))
                {
                    string ligne = fichier.ReadLine();
                    while (ligne != null)
                    {
                        string[] valeurs2 = ligne.Split(';');

                        _listePatient.Add(new Patient(valeurs2[2], valeurs2[1], valeurs2[0]));
                        ligne = fichier.ReadLine();
                    }
                }
            }
            catch (Exception)
            {


            }


        }
       
        public void ajouterUnPatient()
        {
            string prenom;
            string nom;
            int numero;

            Console.WriteLine("Prenom");
            prenom = Console.ReadLine();
            Console.WriteLine("Nom");
            nom = Console.ReadLine();

            while (true)
            {
                int nombrePatientsAssocies = 0;
                
                Console.WriteLine("Numero");
                numero = Convert.ToInt32(Console.ReadLine());

                try
                {


                    while (numero < 1000 || numero > 9999)
                    {

                        throw new Exception("le numero doit être compris entre 1000 et 9999");
                    }

                    break;
                }

                catch (Exception e)
                {

                    Console.WriteLine(e.Message);
                }




            }
            try
            {
                foreach (var medecin in _listePatient)
                {
                    //On vérifie si le numero existe dejà
                    if (medecin.verifierNumero(numero))
                    {
                        throw new Exception("Erreur impossible d'ajouter le patient le numero d'assurance existe dejà");
                    }
                }
            }
            catch (Exception e)
            {

                Console.WriteLine(e.Message);
            }

            //ajout d'un patient
            _listePatient.Add((new Patient(prenom, nom, numero)));

            try
            {


                using (StreamWriter fichier = File.AppendText("patients.txt"))
                {


                    fichier.Write(numero);
                    fichier.Write(';');
                    fichier.Write(prenom);
                    fichier.Write(';');
                    fichier.Write(nom);
                    fichier.WriteLine();









                    fichier.Close();
                }

            }
            catch (Exception e)
            {

                Console.WriteLine(e.Message);
            }


        }

        public void afficherLesPatients()
        {
            foreach (var item in _listePatient)
            {
                Console.WriteLine("Medecin: {0},{1},{2}", item.Prenom, item.Nom, item.Numero);
            }

        }

        private List<Patient> _listePatient;

    }
       
}


 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TPCsharp
{
    class Patient:Personne
    {
        public Patient(string prenom, string nom, int numero)
        {
            _numero = numero;
            _prenom = prenom;
            _nom = nom;
        }

        public Patient(string prenom,string nom,string numero):base(prenom,nom)
        {
            _numero = Convert.ToInt32( numero);
        }
        public int Numero
        {
            get
            {
                return _numero;
            }
            set
            {
                _numero = value;
            }
        }
        public bool verifierNumero(int numero)
        {

            return _numero == numero;
        }
        private int _numero;
    }
}



 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TPCsharp
{
    class Medecin:Personne
    {
        public Medecin(int code)
        {
            _codeIdentification = code;
        }
        public Medecin(string prenom, string nom,string codeIdentification,string date):base(prenom,nom)
        {
            _codeIdentification = Convert.ToInt32(codeIdentification);
            _date = Convert.ToDateTime(date);
            _retraite = true;
            
        }
        public Medecin(string prenom, string nom, int codeIdentification)
        {
            _codeIdentification = codeIdentification;
            _prenom = prenom;
            _nom = nom;
        }
        public Medecin(string prenom, string nom,string codeIdentification):base(prenom,nom)
        {
            _codeIdentification = Convert.ToInt32(codeIdentification);

        }
        public DateTime Date
        {
            get
            {
                return _date;
            }
            set
            {
                _date = value;
            }
        }
        public bool Retraite
        {
            get
            {
                return _retraite;
            }
            set
            {
                _retraite = value;
            }
            
        }
        public int CodeIdentification
        {
            get
            {
                return _codeIdentification;
            }
            set
            {
                _codeIdentification = value;
            }
        }
        public bool verifier(int code)

        {
            
            return _codeIdentification==code;
        }
        private DateTime _date;
        private bool _retraite;
        private int _codeIdentification;
    }
}



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace TPCsharp
{
    class ListeMedecins
    {


        public Medecin ListeMedecin { get; private set; }


        public ListeMedecins()
        {
            _listeMedecin = new List<Medecin>();

            string nomFichier = "medecins.txt";
            try
            {


                using (StreamReader fichier = new StreamReader(nomFichier))
                {
                    string ligne = fichier.ReadLine();


                    while (ligne != null)
                    {
                        string[] valeurs2 = ligne.Split(';');

                        _listeMedecin.Add(new Medecin(valeurs2[2], valeurs2[1], valeurs2[0]));
                        ligne = fichier.ReadLine();
                    }
                }
            }
            catch (Exception)
            {


            }


        }

        public void ajouterUnmedecin()
        {
            string prenom;
            string nom;
            int code;

            Console.WriteLine("Prenom");
            prenom = Console.ReadLine();
            Console.WriteLine("Nom");
            nom = Console.ReadLine();

            while (true)
            {

                Console.WriteLine("Identificateur");
                code = Convert.ToInt32(Console.ReadLine());

                try
                {

                    //On lance une exception si le code n'est pas compris entre 100 et 999
                    while (code < 100 || code > 999)
                    {

                        throw new Exception("le code doit être compris entre 100 et 999");
                    }

                    break;
                }

                catch (Exception e)
                {

                    Console.WriteLine(e.Message);
                }




            }
            try
            {
                //verifie si le code existe dejà
                foreach (var medecin in _listeMedecin)
                {
                    if (medecin.verifier(code))
                    {
                        throw new Exception("Erreur");
                    }
                }
            }
            catch (Exception e)
            {

                Console.WriteLine(e.Message);
            }
            _listeMedecin.Add(new Medecin(prenom, nom, code));

            try
            {


                using (StreamWriter fichier = File.AppendText("medecins.txt"))
                {


                    fichier.Write(code);
                    fichier.Write(';');
                    fichier.Write(prenom);
                    fichier.Write(';');
                    fichier.Write(nom);
                    fichier.WriteLine();
                    
                   





                    fichier.Close();
                }

            }
            catch (Exception e)
            {

                Console.WriteLine(e.Message);
            }

            //ajout d'un médecin




        }
        public void afficherLesmedecins()
        {
            foreach (var item in _listeMedecin)
            {
                Console.WriteLine("Medecin: {0},{1},{2}", item.Prenom, item.Nom, item.CodeIdentification);
            }

        }

        public void ModifierUnMedecin()
        {
            int code;
            DateTime dateDepart;
            Console.WriteLine("Code identification");
            code = Convert.ToInt32(Console.ReadLine());
            foreach (Medecin medecin in _listeMedecin)
            {
                if (medecin.CodeIdentification == code)
                {
                    try
                    {
                        Console.WriteLine("Date de la retraite");
                        dateDepart = Convert.ToDateTime(Console.ReadLine());
                        medecin.Date = dateDepart;
                        medecin.Retraite = true;

                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);

                    }
                }
                else
                {
                    throw new Exception("code existe déjà");
                }

            }










        }
        public void afficherLesStatistiques()
        {
            Console.WriteLine("Le sytème contient");
            Console.WriteLine(_listeMedecin.Count + "médecins");
        }
        public void afficherUnmedecin()
        {
            int code;
            Console.WriteLine("Code d'identification:");
            code = Convert.ToInt32(Console.ReadLine());
            Medecin medecin= trouverMedecin(code);


            Console.WriteLine("Code d'identification " + code + "\n");
            Console.WriteLine("Nom "+ "{0} {1}" ,medecin.Nom, medecin.Prenom);



        }
        public Medecin trouverMedecin(int codeIdentification)
        {
            foreach (Medecin medecin in _listeMedecin)
            {

                if (medecin.CodeIdentification == codeIdentification)
                {
                    return medecin;
                }


            }
            throw new Exception("Le medecin n'existe pas");
            
        }
        public void MedecinActif()
        {
            int nombreMedecins = 0;
            foreach (Medecin medecin in _listeMedecin)
            {
                if (!medecin.Retraite)
                {
                    nombreMedecins ++;
                }
            }
            if (nombreMedecins==0)
            {
                throw new Exception("Aucun medecin n'est actif");
            }
            
            
        }
      /*  public void Sauvegarder(StreamWriter nomFichier)
        {
            nomFichier.WriteLine(_listeMedecin);

        }*/
        private List<Medecin> _listeMedecin;

    }
}

8 réponses

yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
23 avril 2020 à 11:34
bonjour,
qu'as-tu essayé, que penses-tu que tu peux faire pour continuer cet exercice?
0
dana2019 Messages postés 21 Date d'inscription lundi 20 avril 2020 Statut Membre Dernière intervention 15 mai 2020
23 avril 2020 à 11:35
Je suis bloqué c’est pour ça que j’ai demandé de l’aide auprès de vous
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
23 avril 2020 à 11:50
Bonjour

Il semble que ce soit l’exercice à la mode dans la Belle Province!

Je n’ai pas encore regardé en details (mon ordinateur n’est pas libre pour l’instant pour tester)
Dans la classe liste patients, tu lis le fichier médecin mais tu écris le fichier patient. Dans la méthode afficherPatients, tu écris Médecin dans la console, bref y’a plein de copier collé non corrigés.

Une fois corrigé tout ça, peux-tu préciser ton problème, c’est d’associer un médecin ou trouver celui-ci qui a le moins de patients ?

0
dana2019 Messages postés 21 Date d'inscription lundi 20 avril 2020 Statut Membre Dernière intervention 15 mai 2020
23 avril 2020 à 19:13
Non c’est une erreur de copie je lis le fichier patient.txt dans ma classe patient mon problème est lorsque j’ajoute un patient je dois l’associer au médecin actif qui a moins des patient
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
23 avril 2020 à 12:08
Dans les contsructeurs de Patient.

pourquoi te servir du constructeur de Personne dans l'un et pas dans l'autre?
        public Patient(string prenom, string nom, int numero)//pas là
        {
            _numero = numero;
            _prenom = prenom;
            _nom = nom;
        }

        public Patient(string prenom, string nom, string numero) : base(prenom, nom)//mais là oui
        {
            _numero = Convert.ToInt32(numero);
        }


Idem avec les constructeurs de Medecin
0
dana2019 Messages postés 21 Date d'inscription lundi 20 avril 2020 Statut Membre Dernière intervention 15 mai 2020
Modifié le 23 avril 2020 à 19:16
Non c’est une erreur de copie je lis le fichier patient.txt dans ma classe patient mon problème est lorsque j’ajoute un patient je dois l’associer au médecin actif qui a moins des patient
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
23 avril 2020 à 19:25
peux-tu alors clôturer la discussion précédente, inutile d'en avoir deux sur le même sujet.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
23 avril 2020 à 19:32
A quoi cela te sers d’utiliser 2 pseudo....

problème est lorsque j’ajoute un patient je dois l’associer au médecin actif qui a moins des patient
Oui ton « double » l’a déjà écrit d’ou ma demande de précision
peux-tu préciser ton problème, c’est d’associer un médecin ou trouver celui-ci qui a le moins de patients ?

A laquelle tu n’as pas répondu
0
dana2019 Messages postés 21 Date d'inscription lundi 20 avril 2020 Statut Membre Dernière intervention 15 mai 2020
23 avril 2020 à 19:58
C’est parce que j’avais oublié mon mot de passe
0
dana2019 Messages postés 21 Date d'inscription lundi 20 avril 2020 Statut Membre Dernière intervention 15 mai 2020
23 avril 2020 à 20:36
Mon problème c’est d’ajouter un élément dans ma liste patient en l’associant au médecin actif ayant le plus petit nombre de patients déjà associés j’ai même en envoyé une image de ma question
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476 > dana2019 Messages postés 21 Date d'inscription lundi 20 avril 2020 Statut Membre Dernière intervention 15 mai 2020
23 avril 2020 à 21:00
tu partages, une fois de plus, l'énoncé de ton exercice.
que vas-tu apprendre si nous faisons l'exercice à ta place.
je pense qu'avant d'aller plus loin, tu dois réfléchir à ce que tu as déjà fait. je vois plusieurs grosses erreurs dans cela. je t'en ai déjà mentionné certaines.
d'autres sont plus fondamentales.
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931 > yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024
Modifié le 23 avril 2020 à 21:47
Salut yg_be.

Dana, répéter 3 fois la même chose quand on te demande de préciser, ne précise rien, ça agace.
SI tu veux de l'aide, réponds aux questions que l'on te pose.
0
jun2022 Messages postés 4 Date d'inscription jeudi 23 avril 2020 Statut Membre Dernière intervention 25 avril 2020 > yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024
25 avril 2020 à 03:30
je n'ai pas que vous fassiez pour moi tous les exercices j'ai envoyé l'image pour que vous puissiez juste comprendre la question c'est tout ce n'est pas pour que vous fassiez le travail à ma place
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
23 avril 2020 à 20:12
Ça ne répond toujours pas à ma question
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
24 avril 2020 à 19:31
Bonsoir

ce que j'ai écrit là https://forums.commentcamarche.net/forum/affich-36604269-triage-en-programmation-orienter-objet-python#15 est valable, en partie, pour toi aussi
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
25 avril 2020 à 10:09
Bon puisque tu n'es pas décidée à répondre à une question simple.
Je vais t'en poser une encore plus simple.
Si tu y réponds dès le premier message, je tacherai de continuer à t'aider, sinon tu n'auras qu'à espérer que d'autres membres s'intéressent à ton problème. (PS on n'est pas nombreux à répondre en C#).
Je te le rappelle, nous sommes bénévoles, et en ce qui me concerne j'ai pas envie de me prendre la tête pour obtenir l'information dont j'ai besoin, c'est pas moi qui ait besoin d'aide.

Ma question est, supposons qu'il n'y ait qu'un seul médecin, as tu une idée de comment associé les patients avec ce médecin?
0
jun2022 Messages postés 4 Date d'inscription jeudi 23 avril 2020 Statut Membre Dernière intervention 25 avril 2020
25 avril 2020 à 10:14
je pourrai créer une methode qui vérifie un medecin qui est actif et ensuite j'appelle cette methode dans ma méthode liste patient
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931 > jun2022 Messages postés 4 Date d'inscription jeudi 23 avril 2020 Statut Membre Dernière intervention 25 avril 2020
25 avril 2020 à 10:34
mouais.
Mais ça détermine juste si le médecin existe.
Ça ne l'associe pas à chaque patient.
0