C++
bolo
-
bolo -
bolo -
J'ai un exo a rendre
les consignes sont les suivantes
1. Concevoir et coder (C++ standard) une classe personne ayant pour attributs
char * nom;
char * prenom;
date dateDeNaissance
2. Ajouter les méthodes nécessaires pour trier des personnes par ordre alpabétique sur le nom, puis par date de naissance croissante.
3. Tester le tri (fonction main) sur un nombre significatif de personnes (au moins 5)
bon j'ai essayer de faire ca , si qqn pourrait m'aider merci
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
// classe date
class date
{
public:
date(void);
date(int,int,int);
~date(void){}
void saisir();
void afficher();
int extrairea();
int extrairem();
int extrairej();
private:
unsigned int j,m,a;
} ;
//------------------------------------------
class personne
{
char * nom;
char * prenom;
date dateDeNaissance;
//
public:
personne(void);
personne(char,char,date);
~personne(void){}
void saisir();
void trie_nom();
void trie_date ;
} ;
date::date(void) //création d'une date
{
}
date::date(int,int,int) // initialisation des variable d
{}
// saise des variable
void date::saisir()
{
cout<<"jour :";
cin>>j;
cout<<"mois :";
cin>>m;
cout<<"annee :" ;
cin>>a;
}
void date::afficher() // affiche la date
{
cout<<j<<"/"<<m<<"/"<<a;
}
int date::extrairea()
{return (a);}
int date::extrairem()
{return (m);}
int date::extrairej()
{return (j);}
// fct de la classe personne--------------------
void personne::saisir()
{
char tab[i]
cout<<"combien de personne";
cin>>nbr;
for (inti=0, i>nbr,i++){
date madatei
cout<<"entrez le nom";
cin>>nom;
cout<<"entres le prénom";
cin>>prenom;
cout<<"entrez la date de naissance";
madatei.saisir();
tab[i]=madate
}
void personne::trie_date() // on
{
void main()
{
//on saisie les nom
personne nom
nom.sasir
// on fait un trie selon le nom
// on fait une trie selon la date de naissance
system("PAUSE");
}
les consignes sont les suivantes
1. Concevoir et coder (C++ standard) une classe personne ayant pour attributs
char * nom;
char * prenom;
date dateDeNaissance
2. Ajouter les méthodes nécessaires pour trier des personnes par ordre alpabétique sur le nom, puis par date de naissance croissante.
3. Tester le tri (fonction main) sur un nombre significatif de personnes (au moins 5)
bon j'ai essayer de faire ca , si qqn pourrait m'aider merci
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
// classe date
class date
{
public:
date(void);
date(int,int,int);
~date(void){}
void saisir();
void afficher();
int extrairea();
int extrairem();
int extrairej();
private:
unsigned int j,m,a;
} ;
//------------------------------------------
class personne
{
char * nom;
char * prenom;
date dateDeNaissance;
//
public:
personne(void);
personne(char,char,date);
~personne(void){}
void saisir();
void trie_nom();
void trie_date ;
} ;
date::date(void) //création d'une date
{
}
date::date(int,int,int) // initialisation des variable d
{}
// saise des variable
void date::saisir()
{
cout<<"jour :";
cin>>j;
cout<<"mois :";
cin>>m;
cout<<"annee :" ;
cin>>a;
}
void date::afficher() // affiche la date
{
cout<<j<<"/"<<m<<"/"<<a;
}
int date::extrairea()
{return (a);}
int date::extrairem()
{return (m);}
int date::extrairej()
{return (j);}
// fct de la classe personne--------------------
void personne::saisir()
{
char tab[i]
cout<<"combien de personne";
cin>>nbr;
for (inti=0, i>nbr,i++){
date madatei
cout<<"entrez le nom";
cin>>nom;
cout<<"entres le prénom";
cin>>prenom;
cout<<"entrez la date de naissance";
madatei.saisir();
tab[i]=madate
}
void personne::trie_date() // on
{
void main()
{
//on saisie les nom
personne nom
nom.sasir
// on fait un trie selon le nom
// on fait une trie selon la date de naissance
system("PAUSE");
}
4 réponses
en fait
je sais pas deja si mon code est bon par rapport a l'enonce
comment faire pour faire le trie selon les noms
comment faire pour faire trie selon la date de naissance
je sais pas deja si mon code est bon par rapport a l'enonce
comment faire pour faire le trie selon les noms
comment faire pour faire trie selon la date de naissance
tu n'as jamais fait d'algo de tri??? utilises en un et pour les comparaisons entre les noms, utilises strcmp de la libraiaie string.h, pour les date, tu compares a puis m puis j, mais attention, le tri par datedenaissance ne se fait q si par exemple 2 personnes ont meme nom de famille, donc ce n'est pas a tous les couts q l'on trie par date, tu devrais avoir une methode tri public et les methodes tri_date et tri_nom tu les mets prive car je pense d'appres le sujet, le user n'a pas besoin de savoir comment st tries les personnes, il verra resultat trie qu'il p analyer coe il v.
tafiscobar
tafiscobar
non
mais j'ai refais mon code il ne marche pas mais je pense qu'il est + clair
#include <iostream.h>
// class date
class date
{
public:
date(void);
date(int,int,int);
~date(void){}
void saisir();
void afficher();
private:
unsigned int j,m,a;
} ;
date::date(void)
{}
date::date(int,int,int)
{} // initialisation des variable d
// saise des variable
void date::saisir()
{
cout<<"jour :";
cin>>j;
cout<<"mois :";
cin>>m;
cout<<"annee :" ;
cin>>a;
}
void date::afficher()// affiche la date
{
cout<<j<<"/"<<m<<"/"<<a;
}
class personne
{
public:
personne(void);
personne(char,char,date);
~personne(void){}
void saisir();
bool EstPlusGrandQue(personne &obj);
private:
char * nom;
char * prenom;
date daten; // utilisation de l'objet date
};
personne::personne(void)
{}
personne::personne(char,char,date)
{}
void personne::saisir()
{
cout<<"entrez le nom";
cin>>nom;
cout<<"entrez le prénom";
cout<<"entrez la date naissance";
daten.saisir();
}
// trier selon puis apres selon la date
bool personne::EstPlusGrandQue(personne &obj)
{
if( nom > obj.nom ){
return true;
else if( (nom == obj.nom) && (date > obj.date)
return true;
else
return false;
}
}
void main()
{
int nbr;
personne tab;
// nombre de personne a entre qui ne doit pas etre inférieur a 5
while ( nbr < 5 ){
cout<<"combien de personne voulez vous entrez ?";
cin>> nbr;
}
//on saisie les nom à l'aide d'un tableau
for ( int i = 0, i < nbr ; i++ )
{
tab=new int [nbr];
i.saisir;
cin>>tab[i];
};
// trie le tableau selon le nom puis les personnes
void tri(personne& tab[], int nbr)
{
*char nouveau;
int i, j;
for (i = 0; i < nbr; i++)
for (j = 0; j < nbr; j++)
if (( tab[i].EstPlusGrandQue(tbleau[j]) )
{
nouveau = tab[i].nom;
tab[i].nom = tab[j].nom;
tab[j].nom = nouveau;
}
}
delete tab;
return 0;
}
mais j'ai refais mon code il ne marche pas mais je pense qu'il est + clair
#include <iostream.h>
// class date
class date
{
public:
date(void);
date(int,int,int);
~date(void){}
void saisir();
void afficher();
private:
unsigned int j,m,a;
} ;
date::date(void)
{}
date::date(int,int,int)
{} // initialisation des variable d
// saise des variable
void date::saisir()
{
cout<<"jour :";
cin>>j;
cout<<"mois :";
cin>>m;
cout<<"annee :" ;
cin>>a;
}
void date::afficher()// affiche la date
{
cout<<j<<"/"<<m<<"/"<<a;
}
class personne
{
public:
personne(void);
personne(char,char,date);
~personne(void){}
void saisir();
bool EstPlusGrandQue(personne &obj);
private:
char * nom;
char * prenom;
date daten; // utilisation de l'objet date
};
personne::personne(void)
{}
personne::personne(char,char,date)
{}
void personne::saisir()
{
cout<<"entrez le nom";
cin>>nom;
cout<<"entrez le prénom";
cout<<"entrez la date naissance";
daten.saisir();
}
// trier selon puis apres selon la date
bool personne::EstPlusGrandQue(personne &obj)
{
if( nom > obj.nom ){
return true;
else if( (nom == obj.nom) && (date > obj.date)
return true;
else
return false;
}
}
void main()
{
int nbr;
personne tab;
// nombre de personne a entre qui ne doit pas etre inférieur a 5
while ( nbr < 5 ){
cout<<"combien de personne voulez vous entrez ?";
cin>> nbr;
}
//on saisie les nom à l'aide d'un tableau
for ( int i = 0, i < nbr ; i++ )
{
tab=new int [nbr];
i.saisir;
cin>>tab[i];
};
// trie le tableau selon le nom puis les personnes
void tri(personne& tab[], int nbr)
{
*char nouveau;
int i, j;
for (i = 0; i < nbr; i++)
for (j = 0; j < nbr; j++)
if (( tab[i].EstPlusGrandQue(tbleau[j]) )
{
nouveau = tab[i].nom;
tab[i].nom = tab[j].nom;
tab[j].nom = nouveau;
}
}
delete tab;
return 0;
}