Projet en C++

Hugo Dam Messages postés 13 Date d'inscription jeudi 9 mars 2006 Statut Membre Dernière intervention 28 avril 2008 - 14 févr. 2008 à 17:07
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 - 15 févr. 2008 à 00:49
Bonjour,
Il se trouve que j'ai un projet en C++ et je suis complètement bloqué. Au moment de la compilation j'ai énormément d'erreur.
Voici le sujet ;
Objectif : création et gestion d'un zoo.
Le but de ce projet sera de créer un zoo. Dans ce zoo, Il sera possible de créer un certain nombre d'animaux. Les animaux seront gérés de la manière suivante : Nous allons considérer les animaux comme des vertébrés car dans la plupart des zoos, il n'y a que des vertébrés. Les vertébrés auront une taille, un poids, un genre (masculin ou féminin) et une date de naissance. Les vertébrés se décomposeront en plusieurs branches :
1. Les mammifères.
Les mammifères sont des vertébrés à sang chaud nourrissant leurs petits avec le lait de leurs mamelles et en général couverts de poils. Les mammifères seront caractérisés par la longueur de leurs poils. Les mammifères seront des girafes, antilopes, hippopotames, ours, lion et auront chacun des caractéristiques propres à leur espèce.
2. Les oiseaux.
Les oiseaux sont des vertébrés à plumes dont les membres antérieurs se sont transformés en ailes. Les oiseaux sont des animaux à sang chaud, qui partagent une même forme générale due à leur faculté de voler. Les oiseaux seront caractérisés par la taille de leurs ailes. Les oiseaux seront des canards, cygnes, autruches et auront chacun des caractéristiques propres à leur espèce.
3. Les poissons.
Les poissons sont des animaux vertébrés aquatiques possédant des nageoires et respirant par des branchies. Le vaste ensemble des poissons englobe les vertébrés sans mâchoires, ou agnathes, ainsi que les poissons cartilagineux et les poissons osseux, très nombreux et très variés, qui comprennent les formes les plus typiques de poissons. Les poissons seront caractérisés, eux, par la taille de leur nageoire. Les poissons seront des requins, des raies et auront chacun des caractéristiques propres à leur espèce.
6
Chacune de ces branches sera une classe à part entière.
Déroulement du programme à développer.
1. La création ou le chargement du zoo
A l'exécution, un premier menu demandera si vous voulez créer un nouveau zoo, en charger un à partir d'un fichier ou quitter le programme.
- 1. Création d'un nouveau zoo.
- 2. Chargement d'un zoo.
- 3. Quitter le programme.
Si le choix est d'en charger un à partir d'un fichier, le programme demandera le chemin du fichier à ouvrir. Bien entendu, le programme vérifiera dans un premier temps que le fichier est bien ouvert et dans un second temps que le fichier correspond bien à un fichier de zoo. Si le choix est de créer un nouveau zoo, le programme demandera le nom du zoo à créer.
2. L'utilisation du zoo
Une fois le nom saisi ou le chargement du fichier accompli, le programme affichera le menu principal indiquant au minimum les cinq choix suivants :
- 1. Création d'un nouvel animal.
Si l'utilisateur veut rajouter un nouvel animal, un nouveau menu lui sera proposé avec le choix de l'animal à créer. Une fois l'animal choisi, l'utilisateur lui donnera un nom et ses caractéristiques.
- 2. Suppression d'un animal existant.
7
Si l'utilisateur choisi la suppression d'un animal existant, le menu suivant proposera quel animal à supprimer. Une fois le type d'animal à supprimer choisi, le programme fera la liste de tous les animaux de cette espèce. L'utilisateur devra choisir l'animal à détruire.
- 3. Affichage du nombre d'animaux d'une espèce ou du zoo
Si l'utilisateur choisi d'afficher le nombre d'animaux du zoo, il aura un nouveau menu lui demandant le nombre d'animaux d'une espèce, d'une branche d'animaux ou du zoo tout entier.
- 3. Affichage des animaux du zoo
Si l'utilisateur choisi d'afficher les animaux du zoo, le programme lui demandera s'il veut afficher tous les animaux ou simplement les animaux d'une seule espèce ou d'une branche d'espèces. En fonction de cela, le programme affichera les différents animaux du zoo.
- 5. Sauvegarde du zoo dans un fichier.
Si l'utilisateur choisi de sauvegarder le zoo, le programme lui demandera le chemin vers le fichier à créer.
- 6. Quitter le zoo.
Si l'utilisateur choisi de quitter le zoo, le programme demandera s'il est bien sur de vouloir quitter le zoo et si c'est le cas, il reviendra au premier menu. Si ce n'est pas le cas, il devra bien entendu rester dans le menu principal. A la fin de chacune de ces actions, le programme retournera directement vers le menu principal.
Si dans le premier menu, l'utilisateur choisi de quitter le programme, le programme demandera confirmation et si c'est le cas, il quittera le programme.

Voici mes classes :

//Creation de la classe animaux

class animaux{
private:
int jour,mois,anne;
double poids,taille;
string genre;
public:
//Compteur d'animaux
static int cpt_animaux;
//Constructeur

animaux(int,int,int,double,double,string);

//Desturcteur

~animaux();

//Mutateur

void set_poids(double);
void set_taille(double);
void set_genre(string);
void set_date_naissance(int,int,int);

//Accesseur

double get_poids();
double get_taille();
string get_genre();
void get_date_naissance();


};
int animaux::cpt_animaux=0;




class mammifere:public animaux{
private:
static int cpt_mammifere;
double long_poil;
public:

//Constructeur

mammifere(int,int,int,double,double,string,double);

//destructeur

~mammifere();

//Accesseur

double get_long_poil();

//Mutateur

void set_long_poil();

//Affichage

//void affichage_espece()const=0;
};
int mammifere::cpt_mammifere=0;


class oiseau:public animaux{
private:
static int cpt_oiseau;
double taille_ailes;

public:

//Constructeur

oiseau(int,int,int,double,double,string,double);

//Destruteur

~oiseau();

//Mutateur

void set_tai_ail(double);

//Accesseur

double get_tai_ail();

//Affichage


};
int oiseau::cpt_oiseau=0;





class poisson:public animaux{
private:
static int cpt_poisson;
double taille_nageoires;
public:

//Constructeur

poisson(int,int,int,double,double,string,double);

//Destructeur

~poisson();

//Accesseur

double get_tai_nag();

//Mutateur

void set_tai_nag(double);

//Affichage


};
int poisson::cpt_poisson=0;



class girafe:public mammifere{
private:
static int cpt_girafe;
double long_cou;

public:

//Construteur

girafe(int,int,int,double,double,string,double,double);

//Destructeur

~girafe();

//Accesseur

double get_lon_cou();

//Mutateur

void set_lon_cou(double);

//Affichage


};
int girafe::cpt_girafe=0;



class antilope:public mammifere{
private:
static int cpt_antilope;
double vitesse;

public:

//Constructeur

antilope(int,int,int,double,double,string,double,double);

//Destructeur

~antilope();

//Accesseur

double get_vitesse();

//Mutateur

void set(double);
//Affichage

};
int antilope::cpt_antilope=0;




class hippopotame:public mammifere{
private:
static int cpt_hippopotame;
double taille_dents;

public:

//Constructeur

hippopotame(int,int,int,double,double,string,double,double);

//Destructeur

~hippopotame();

//Accesseur

double get_tai_den();

//Mutateur

void set_tai_den(double);

//Affichage


};
int hippopotame::cpt_hippopotame=0;





class ours:public mammifere{
private:
static int cpt_ours;
string couleur;

public:

//Constructeur

ours(int,int,int,double,double,string,double,string);

//Destructeur

~ours();

//Accesseur

string get_couleur();

//Mutateur

void set_couleur(string);

//Affichage

};
int ours::cpt_ours=0;





class lion:public mammifere{
private:
static int cpt_lion;
double long_criniere;

public:

//Constructeur

lion(int,int,int,double,double,string,double,double);

//Destructeur

~lion();

//Accesseur

double get_lon_cri();

//Mutateur

void set_lon_cri(double);

//Affichage

};
int lion::cpt_lion=0;






class canard:public oiseau{
private:
static int cpt_canard;
double taille_bec;

public:

//Constructeur

canard(int,int,int,double,double,string,double,double);

//Destructeur

~canard();

//Accesseur

double get_tai_bec();

//Mutateur

void set_tai_bec(double);

//Affichage

};
int canard::cpt_canard=0;






class cygne:public oiseau{
private:
static int cpt_cygne;
string couleur;

public:

//Constructeur

cygne(int,int,int,double,double,string,double,string);

//Destructeur

~cygne();

//Accesseur

string get_couleur();

//Mutateur

void set_couleur(string);

//Affichage

};
int cygne::cpt_cygne=0;





class autruche:public oiseau{
private:
static int cpt_autruche;
double long_cou;

public:

//Constructeur

autruche(int,int,int,double,double,string,double,double);

//Destructeur

~autruche();

//Accesseur

double get_lon_cou();

//Mutateur

void set_lon_cou(double);

//Affichage

};
int autruche::cpt_autruche=0;



class requin:public poisson{
private:
long nbr_dents;

public:
static int cpt_requin;
//Constructeur

requin(int,int,int,double,double,string,double,long);

//Destructeur

~requin();

//Accesseur

long get_nbr_den();

//Mutateur

void set_nbr_den(long);

//Affichage

};
int requin::cpt_requin=0;




class raie:public poisson{
private:
double surface;

public:
static int cpt_raie;
//Construteur

raie(int,int,int,double,double,string,double,double);

//Destructeur

~raie();

//Accesseur

double get_surface();

//Mutateur

void set_surface(double);

//Affichage

};
int raie::cpt_raie=0;






class zoo{
private:
string nom;
animaux a;

public:

//Construteur

zoo(string);

//Destructeur

~zoo();

//Accesseur nom

string get_nom();

//Mutateur

void set_nom(string);

};


Et mon programme principal :

//Chargement du zoo a partir d'un fichier :

int chargement_zoo(string add){
ifstream source_fichier;
source_fichier.open(add.c_str());
string mot_fichier;
source_fichier>>mot_fichier;
if(mot_fichier=="/*!zoo!*/"){
cout<<"Il ne s'agit pas d'un fichier de type zoo"<<endl;
return 0;
}else{
string nom_zoo;
string test_fin;
source_fichier >> nom_zoo;
test_fin=nom_zoo;
zoo Z1(nom_zoo);

long cpt_ani;
long cpt_mammi,cpt_pois,cpt_ois;
long cpt_gir,cpt_anti,cpt_hippo,cpt_our,cpt_lio;
long cpt_can,cpt_cy,cpt_aut;
long cpt_req,cpt_rai;
//Race permet de savoir s'il s'agit d'un lion girafe etc...
string race;
long jour,mois,annee;
double poids,taille;
string genre;
//Longueur de poils ou taille nageoire ou taille ailes
double poid_aile;
//longueur cou ou vitesse ou taille dents ou longueur criniere ou taille bec ou surface
double cou_vit_etc;
//Couleur
string coul;
//nbr dent
long dent;
source_fichier >> cpt_ani;
source_fichier >> cpt_mammi;
source_fichier >> cpt_pois;
source_fichier >> cpt_ois;
source_fichier >> cpt_gir;
source_fichier >> cpt_anti;
source_fichier >> cpt_hippo;
source_fichier >> cpt_our;
source_fichier >> cpt_lio;
source_fichier >> cpt_can;
source_fichier >> cpt_cy;
source_fichier >> cpt_aut;
source_fichier >> cpt_req;
source_fichier >> cpt_rai;
source_fichier >> race;
while(test_fin!="/*!ooz!*/" || race!="/*!ooz!*/"){

switch(race){

//Girafe
case "G":
source_fichier >> jour;
source_fichier >> mois;
source_fichier >> annee;
source_fichier >> poids;
source_fichier >> taille;
source_fichier >> genre;
source_fichier >> poid_aile;
source_fichier >> cou_vit_etc;
girafe gi(jour,mois,anne,poids,taille,genre,poid_aile,cou_vit_etc);
break;

//Antilope
case "A":
source_fichier >> jour;
source_fichier >> mois;
source_fichier >> annee;
source_fichier >> poids;
source_fichier >> taille;
source_fichier >> genre;
source_fichier >> poid_aile;
source_fichier >> cou_vit_etc;
antilope an(jour,mois,annee,poids,taille,genre,poid_aile,cou_vit_etc);
break;

//Hippopotame
case "H":
source_fichier>>jour;
source_fichier>>mois;
source_fichier>>annee;
source_fichier>>poids;
source_fichier>>taille;
source_fichier>>genre;
source_fichier>>poid_aile;
source_fichier>>cou_vit_etc;
hippopotame hi(jour,mois,annee,poids,taille,genre,poid_aile,cou_vit_etc);
break;

//Ours
case "O":
source_fichier>>jour;
source_fichier>>mois;
source_fichier>>annee;
source_fichier>>poids;
source_fichier>>taille;
source_fichier>>genre;
source_fichier>>poid_aile;
source_fichier>>coul;
ours ou(jour,mois,annee,poids,taille,genre,poid_aile,coul);
break;

//Lion
case "L":
source_fichier>>jour;
source_fichier>>mois;
source_fichier>>annee;
source_fichier>>poids;
source_fichier>>taille;
source_fichier>>genre;
source_fichier>>poid_aile;
source_fichier>>cou_vit_etc;
lion li(jour,mois,annee,poids,taille,genre,poid_aile,cou_vit_etc);
break;

//Canard
case "C":
source_fichier>>jour;
source_fichier>>mois;
source_fichier>>annee;
source_fichier>>poids;
source_fichier>>taille;
source_fichier>>genre;
source_fichier>>poid_aile;
source_fichier>>cou_vit_etc;
canard ca(jour,mois,annee,poids,taille,genre,poid_aile,cou_vit_etc);
break;

//Cygne
case "Cy":
source_fichier>>jour;
source_fichier>>mois;
source_fichier>>annee;
source_fichier>>poids;
source_fichier>>taille;
source_fichier>>genre;
source_fichier>>poid_aile;
source_fichier>>coul;
cygne cy(jour,mois,annee,poids,taille,genre,poid_aile,coul);
break;

//Autruche
case "Au":
source_fichier>>jour;
source_fichier>>mois;
source_fichier>>annee;
source_fichier>>poids;
source_fichier>>taille;
source_fichier>>genre;
source_fichier>>poid_aile;
source_fichier>>cou_vit_etc;
autruche au(jour,mois,annee,poids,taille,genre,poid_aile,cou_vit_etc);
break;

//Requin
case "R":
source_fichier>>jour;
source_fichier>>mois;
source_fichier>>annee;
source_fichier>>poids;
source_fichier>>taille;
source_fichier>>genre;
source_fichier>>poid_aile;
source_fichier>>dent;
requin re(jour,mois,annee,poids,taille,genre,poid_aile,dent);
break;

//Raie
case "Ra":
source_fichier>>jour;
source_fichier>>mois;
source_fichier>>annee;
source_fichier>>poids;
source_fichier>>taille;
source_fichier>>genre;
source_fichier>>poid_aile;
source_fichier>>cou_vit_etc;
raie ra(jour,mois,annee,poids,taille,genre,poid_aile,cou_vit_etc);
break;

}
source_fichier>>race;

}
}
return 1;
}










int main(){

//La variable choix permet de definir le choix de l'utilisateur dans le menu
//La variable test permet de sortir de la boucle do while en cas de chargement de fichier ou creation de zoo reussi
long choix,test;

//Ces deux variables stockeront soit l'adresse du fichier soit le nom du zoo a creer
string adresse_fichier,nom_zoo;

do{
system("clear");

cout<<"*********************Menu********************"<<endl<<endl;
cout<<"1.Creation d'un nouveau zoo\n\n2.Chargement d'un zoo\n\n3.Quitter le programme\n\n"<<endl;

do{
cout<<"Votre choix :";
cin>>choix;
}while(choix<1 || choix>3);

//selon le choix de l'utilisateur, le switch permet de renvoyer vers la bonne fonction
switch(choix){

//Creation du zoo
case 1:
system("clear");
cout<<"Entrez le nom du zoo a creer"<<endl;
cin>>nom_zoo;
//creation_zoo();
cout<<"En construction..."<<endl;
break;

//Chargement du zoo
case 2:
system("clear");
cout<<"Entrez l'adresse du fichier charger"<<endl;
cin>>adresse_fichier;
test=chargement_zoo(adresse_fichier);
break;

///Quitter
case 3:return 0;
break;


default:return 0;
break;
}
}while(test==0);
return 0;
}

Serait-il possible de m'aider svp.

Merci beaucoup
Au revoir

4 réponses

cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
14 févr. 2008 à 17:37
Elle est ou la question ?
0
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
14 févr. 2008 à 18:34
Voir quelle est la source des erreurs à la compilation sûrement.

 Pourapprendretoujoursplus!
0
acx01b Messages postés 280 Date d'inscription dimanche 7 septembre 2003 Statut Membre Dernière intervention 8 juillet 2014 6
14 févr. 2008 à 18:35
salut

mettre
#include
#include <fstream>
using namespace std;

ensuite:
le switch(x)
x doit être un entier (pas un string)
pour faire la même chose avec x qui est un string:
if (x == "a") {
 ...
}
else if (x == "b") {
  ...
}
...
0
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
15 févr. 2008 à 00:49
ou alors char cFirstLetter=*(x.c_str());
switch(cFirstLetter) ...
0
Rejoignez-nous