Ajouter un patient

Signaler
Messages postés
4
Date d'inscription
jeudi 23 avril 2020
Statut
Membre
Dernière intervention
25 avril 2020
-
Messages postés
14478
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
12 juillet 2020
-
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

Messages postés
11532
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
13 juillet 2020
659
bonjour,
qu'as-tu essayé, que penses-tu que tu peux faire pour continuer cet exercice?
Messages postés
21
Date d'inscription
lundi 20 avril 2020
Statut
Membre
Dernière intervention
15 mai 2020

Je suis bloqué c’est pour ça que j’ai demandé de l’aide auprès de vous
Messages postés
14478
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
12 juillet 2020
554
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 ?

Messages postés
21
Date d'inscription
lundi 20 avril 2020
Statut
Membre
Dernière intervention
15 mai 2020

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
Messages postés
14478
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
12 juillet 2020
554
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
Messages postés
21
Date d'inscription
lundi 20 avril 2020
Statut
Membre
Dernière intervention
15 mai 2020

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
Messages postés
11532
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
13 juillet 2020
659
peux-tu alors clôturer la discussion précédente, inutile d'en avoir deux sur le même sujet.
Messages postés
14478
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
12 juillet 2020
554
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
Messages postés
21
Date d'inscription
lundi 20 avril 2020
Statut
Membre
Dernière intervention
15 mai 2020

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
Messages postés
11532
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
13 juillet 2020
659 >
Messages postés
21
Date d'inscription
lundi 20 avril 2020
Statut
Membre
Dernière intervention
15 mai 2020

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.
Messages postés
14478
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
12 juillet 2020
554 >
Messages postés
11532
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
13 juillet 2020

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.
Messages postés
4
Date d'inscription
jeudi 23 avril 2020
Statut
Membre
Dernière intervention
25 avril 2020
>
Messages postés
11532
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
13 juillet 2020

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
Messages postés
4
Date d'inscription
jeudi 23 avril 2020
Statut
Membre
Dernière intervention
25 avril 2020
>
Messages postés
11532
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
13 juillet 2020

okay merci de m'eclaircir sur celà
Messages postés
14478
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
12 juillet 2020
554
Ça ne répond toujours pas à ma question
Messages postés
14478
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
12 juillet 2020
554
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
Messages postés
14478
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
12 juillet 2020
554
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?
Messages postés
4
Date d'inscription
jeudi 23 avril 2020
Statut
Membre
Dernière intervention
25 avril 2020

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
Messages postés
14478
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
12 juillet 2020
554 >
Messages postés
4
Date d'inscription
jeudi 23 avril 2020
Statut
Membre
Dernière intervention
25 avril 2020

mouais.
Mais ça détermine juste si le médecin existe.
Ça ne l'associe pas à chaque patient.