Accueil > Forum > > > > Projet en C++
Projet en C++
jeudi 14 février 2008 à 17:07:48 |
Projet en C++

Hugo Dam
|
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"< > 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********************"<>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"<>nom_zoo;
//creation_zoo();
cout<<"En construction..."<>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
|
|
jeudi 14 février 2008 à 17:37:05 |
Re : Projet en C++
|
jeudi 14 février 2008 à 18:34:24 |
Re : Projet en C++
|
jeudi 14 février 2008 à 18:35:32 |
Re : Projet en C++

acx01b
|
salut
mettre #include <iostream> #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") { ... } ...
|
|
vendredi 15 février 2008 à 00:49:56 |
Re : Projet en C++

juju12
|
ou alors char cFirstLetter=*(x.c_str()); switch(cFirstLetter) ...
|
|
Cette discussion est classée dans : fichier, int, source, double, cpt
Répondre à ce message
Sujets en rapport avec ce message
Lecture d'un fichier quelconque [ par jb60 ]
Bonjour,J'aimerais savoir si il est possible de lire les données d'un fichier quelconque lorsqu'on ne connait pas le format du fichier d'origine... Je
Problème avec quick sort avec des chaines de caractères [ par bakka72 ]
Bonjour,Je dois réalisé un quick sort de chaines et jai u souci .1er. je parcourt kle fichier a trié pour compter le nombre délément 2eme je crée un t
problème d'ouverture et de lecture d'un fichier [ par Trinity_vv ]
J'ai fais un code d'ouverture et d'affichage d'un fichier, tout marchait très bien. Sans exagérer 10 minutes plus tard, je le régénére et il ne veut p
Lire des chiffres avec les virgules [ par Stiko ]
salut, j'ai fait un petit programme pour ouvrire un fichier texte qui contient seument des chifres séparées par des points virgules.ce programme lit l
comment recuperer la source d'un fichier html ? [ par gege1024 ]
a partir d'une adresse.(evidement, sans faire "afficher la source" dans le navigateur).gege
fast fourier transform [ par niketou ]
Salut a tous.J'ai du mal a trouver de la doc en francais.Je voudrais faire deux fonctions qui retourne un tableau de frequences. un fichier wave et l'
Pipe et write(...) [ par diablo31170 ]
Salut à tous, Comme son nom l'indique, je suis en train de faire de la communication entre 2 processus père et fils. Avant d'évoquer mon problème
ça marchait ce matin mais plus maintenant! [ par marieinthesky ]
Bonjour à tous,j'essaye d'écrire une fonction qui va faire la moyenne de plusieurs données lues dans des fichiers, ça marchait ce matin puis j'ai voul
lecture ecriture dans un fichier binaire [ par bbear ]
j'ai 2 tableaux : un de unsigned int et un de char "string"unsigned int tabint[]={ xxx,xxx,xxx...};char *tabnom[]={ "nom1","nom2","nom3"...};je voudra
splitter de fichier [ par 24Karas ]
salut à tousEn fait je fais un splitter de fichier mais j'ai un probleme. il me rajoute 1 octet sur la découpe et 1 octet par fichier pour la reconsti
Livres en rapport
|
Derniers Blogs
[SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|