Création de class Etudiant

Signaler
Messages postés
5
Date d'inscription
dimanche 11 juin 2006
Statut
Membre
Dernière intervention
15 juin 2007
-
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
-
Bonjour, qui peut m'aider à faire cette Class Etudiant qui possede un nom, un prénom et une matricule et qui possede les fonctions suivantes : "afficher"  le prénom , le nom et le marticule ET les fonctions SetPrenom et SetMatricule.

MERCI

// Ajoutez ce qui manque ici :


 


// 
main()
{
 Etudiant x("zalika","abdou",97010111);
 x.affiche(); // Doit afficher "Prénom : zalika ; Nom : abdou ; Matricule : 97010111"
 x.setPrenom("Thomas");
 x.setMatricule(25010111);
 x.affiche(); // Doit afficher "Prénom : soumana ; Nom : abdou ; Matricule : 25010111"
 return 0;
}

9 réponses

Messages postés
286
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
27 décembre 2009
2
mieux encore :

private:
    char * m_sNom;
    char * m_sPrenom;
    char * m_iMatricule;


Loki
Messages postés
286
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
27 décembre 2009
2
salut,

tu veux pas qu'on envoie directement le programme fini à ton prof par email ?

quel est ton problème, pose ta question, montre nous ce que tu as déjà fait.

ps. une fonction qui inscrit soumana, quand on lui passe comme paramètre Thomas, c'est assez bizarre. c'est du cryptage ?

Loki
Messages postés
5
Date d'inscription
dimanche 11 juin 2006
Statut
Membre
Dernière intervention
15 juin 2007

 Qui peut m'aider à créer la class Etudiant

main()
{
 Etudiant x("zalika","abdou",97010111);
 x.affiche(); // Doit afficher "Prénom : zalika ; Nom : abdou ; Matricule : 97010111"
 x.setPrenom("soumana");
 x.setMatricule(25010111);
 x.affiche(); // Doit afficher "Prénom : soumana ; Nom : abdou ; Matricule : 25010111"
 return 0;
}
Messages postés
286
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
27 décembre 2009
2
class Etudiant
{
   private:
       char *   Nom;
        char *   Prenom;
       int         Matricule;

   public:
        Etudiant();
        Etudiant(char *,char*,int);
        ~Etudiant();

        void    SetNom(char*);
        void    SetPrenom(char*);
        void    SetMatricule(int);

/*     char * GetNom();
        char * GetPrenom();
        int         GetMatricule();    */
        

       void    Affiche();

};


La classe est créée. A toi de jouer maintenant.........

Loki
Messages postés
5
Date d'inscription
dimanche 11 juin 2006
Statut
Membre
Dernière intervention
15 juin 2007

class Etudiant
{
   private:
       char *   Nom;
       char *   Prenom;
       int         Matricule;

   public:
       Etudiant();
       Etudiant(char *,char*,int);
       ~Etudiant();

       void    SetNom(char*);
       void    SetPrenom(char*);
       void    SetMatricule(int);

/*    char * GetNom();
       char * GetPrenom();
       int       GetMatricule();   */
       
       void    Affiche();
};


Que dites vous avec la classe suivante car je ne retouve pas tres bien avec les chars et pointeurs. je vous demande de donner votre appréciation  sur ce qui suit

class Etudiant
{
   private:
       string m_Nom;
       string m_Prenom;
       int      m_Matricule;

   public:
       Etudiant();
       Etudiant(string& nom, string& prenom, int matricule);
       ~Etudiant();

       void    SetNom(string& nom);
       void    SetPrenom(string& prenom);
       void    SetMatricule(int maricule);

/*    string GetNom();
       string GetPrenom();
       int       GetMatricule();   */
       
       void    Affiche();
};

Voila comment j'ai developpé mes fonctions (methodes)

Etudiant::Etudiant(Const string& nom, Const string& prenom, Const int matricule)

  :m_Nom(nom), m_Prenom(prenom), m_matricule(maticule)

// un autre constructeur
Etudiant::Etudiant(Const Etudiant& unEtudiant)
{
  m_Nom=unEtudiant.m_Nom;


 m_Prenom=unEtudiant.m_Prenom;
 m_matricule=unEtudiant.m_matricule;
}

void Etudiant:: SetNom (string& nom)
{
  m_Nom=nom;
}
void Etudiant:: SetPrenom (string& prenom)
{
 m_Prenom=prenom;
}
void SetMaticule(int matricule)
{
m_matricule=matricule;
}


// Pour le destucteur
Etudiant::~Etudiant()
{
 delete m_Nom;
delete m_Prenom;
delete m_matricule;
}
// ou  
Etudiant::~Etudiant()
{
delete(Etudaint);
}
Messages postés
5
Date d'inscription
dimanche 11 juin 2006
Statut
Membre
Dernière intervention
15 juin 2007

c
lass Etudiant
{
   private:
       char *   Nom;
       char *   Prenom;
       int         Matricule;


   public:
       Etudiant();
       Etudiant(char *,char*,int);
       ~Etudiant();


       void    SetNom(char*);
       void    SetPrenom(char*);
       void    SetMatricule(int);


/*    char * GetNom();
       char * GetPrenom();
       int       GetMatricule();   */
       
       void    Affiche();
};


 c'est cette version qu'il faut considerer la version precedente porte des erreurs .
Que dites vous avec la classe suivante car je ne retouve pas tres bien avec les chars et pointeurs. je vous demande de donner votre appréciation  sur ce qui suit


class Etudiant
{
   private:
       string m_Nom;
       string m_Prenom;
       int      m_Matricule;


   public:
       Etudiant();
       Etudiant(const string& nom, const string& prenom, int matricule);
       ~Etudiant();


       void    SetNom(const string& nom);
       void    SetPrenom(const string& prenom);
       void    SetMatricule(int maricule);


/*    string GetNom();
       string GetPrenom();
       int       GetMatricule();   */
       
       void    Affiche();
};



Voila comment j'ai developpé mes fonctions (methodes)


Etudiant::Etudiant(const string& nom, const string& prenom, Const int matricule)


  :m_Nom(nom), m_Prenom(prenom), m_matricule(maticule)


// un autre constructeur
Etudiant::Etudiant(const Etudiant& unEtudiant)
{
  m_Nom=unEtudiant.m_Nom;


 m_Prenom=unEtudiant.m_Prenom;
 m_matricule=unEtudiant.m_matricule;
}


void Etudiant:: SetNom (const string& nom)
{
  m_Nom=nom;
}
void Etudiant:: SetPrenom (const string& prenom)
{
 m_Prenom=prenom;
}
void SetMaticule(int matricule)
{
m_matricule=matricule;
}


// Pour le destucteur
Etudiant::~Etudiant()
{
 delete m_Nom;
delete m_Prenom;
delete m_matricule;
}
// ou  
Etudiant::~Etudiant()
{
delete(Etudaint);
}
Messages postés
286
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
27 décembre 2009
2
je ne connais pas la classe string.

je suppose que l'opérateur = est surchargé pour copié le contenu d'un string dans un autre et pas seulement son adresse.

sinon je ne comprends pas pourquoi tu mets des &. on s'en fout de les avoir par référence puisqu'on les modifie pas.

Loki
Messages postés
14
Date d'inscription
samedi 11 septembre 2004
Statut
Membre
Dernière intervention
20 juillet 2007

Rapide remarque en passant : comment pouvez-vous utiliser "delete" dans votre destructeur sur des types qui ne sont pas des pointeurs ?
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
En effet, il n'y a rien a faire dans le destructeur (les destructeurs des chaines sont appelés automatiquement).
Les delete se font seulement sur les objets alloués avec new

_____________________________________