C++

Fermé
bolo - 10 déc. 2002 à 23:55
 bolo - 12 déc. 2002 à 14:43
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");
}

4 réponses

teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 1 793
11 déc. 2002 à 10:03
Quel est ton probleme?

ö,ö  "Il est plus facile de donner des conseils
\_/    que de les appliquer"
0
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
0
tafiscobar Messages postés 1277 Date d'inscription jeudi 7 décembre 2000 Statut Contributeur Dernière intervention 26 février 2009 177
12 déc. 2002 à 14:21
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
0
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;
}
0