Bien le bonsoir amis programmeur, je viens vers vous pour vous demandez vôtre aide. Je sèche sur un programme complexe (pour moi) d'animalerie avec plusieurs classe d'animaux.
Je dois ajouter a cela une animation de menu, faire une liste dans la classes animal (pour réunir les 3 classes des genres d'animaux).
Je dois aussi, dans la liste, pouvoir introduire avec la console le nom, race,... des animaux et aussi les afficher dans ce style :
Il y a 1 chiens, 2 chats et 1 oiseau.
(poids, âge, date de naissance, taux de décès,....).
Enfin, voilà l'énoncer du problème, si vous avez une idée de comment faire, ce serais sympa ^^
• Nous désirons effectuer la gestion d’une animalerie. Cette dernière s’occupe de plusieurs types d’animaux : chiens, chats, oiseaux… (laissez libre cours à votre imagination !)
Pour chaque animal, l’animalerie doit connaitre : son nom, son poids, sa taille, son sexe, son âge et sa date d’arrivée à l’animalerie. Tous les animaux possèdent le comportement crier().
Les chats doivent également être caractérisés par leur caractère (énergique, farouche, câlin, etc.), si leurs griffes ont été coupées et s’il s’agit d’un chat à poil long ou non. Pour les chats, la probabilité de décès est de 0,5%.
Les chiens doivent être caractérisés par la couleur de leur collier, s’il a été dressé et sa race. Pour les chiens, la probabilité de décès est de 1%.
Les oiseaux, quant à eux, sont caractérisés par leur couleur et s’ils doivent vivre dans une volière ou dans une petite cage. Pour ces derniers, la probabilité de décès est de 3%.
Le programme de gestion doit :
– Encoder des animaux (chiens, chats, oiseaux)
– Lister les caractéristiques de tous les animaux encodés.
– Afficher le nombre de chats, de chiens et d’oiseaux
– Vérifier si certains animaux ne sont pas décédés durant la nuit.

tags :
posted the 05/08/2016 at 07:06 PM by
wolftag2
Déjà la première chose à faire c'est une modélisation effective des classes, je partirai sur une classe abstraite Animal et ensuite des classes qui héritent de cette classe animal (chat, chien, oiseaux).
Ta classe animal contiendra tous les attributs et fonctions COMMUNES à tous les animaux.
Tes classes type oiseaux, chats etc, pourront redéfinir des méthodes de la classe mère animal comme crier et contenir des attributs/fonctions propres à eux.
Puis après, tu me fais un beau formulaire des familles avec les outils fournis par Microsoft Visual Studio et tu devrais t'en sortir
Et zut d'autres l'ont déjà suggéré avant moi alors que je rédigeais ce message... tant pis je poste quand même ^^
Je vais vous montrer ce que j'ai pour l'instant. J'ai 4 classes (chien, chat, oiseau et animal) et le main.
Ce que j'arrive pas a faire c'est d'ajouter les différents animaux dans leurs classe via la console et de les faire afficher ensuite. Je dois pas être loin, mais bon, comme ça fait a peine 2 semaines que je vois ça, je galère un peu ^^
Selon le choix que tu as fait, tu affiches ou non les parties du formulaire spécifiques à l'animal choisi (tu regardes les événements sur le net et tu trouveras ton bonheur
Puis après dans ton traitement, tu récupères les informations, un bon constructeur des familles pour chaque classe, une suite de setters et de getters pour faire tout propre et normalement ça devrait donner quelque chose de tout beau sur ta liste des animaux !
class Animal
{
private string Nom;
private string Sexe;
private double Age;
private double Poids;
private double Taille;
public Animal(string Nom, string Sexe, double Age, double Poids, double Taille)
{
this.Nom = Nom;
this.Sexe = Sexe;
this.Age = Age;
this.Poids = Poids;
this.Taille = Taille;
}
public string getNom()
{
return Nom;
}
public void SetNom(string Nom)
{
this.Nom = Nom;
}
public string getSex()
{
return Sexe;
}
public void setSexe(string Sexe)
{
this.Sexe = Sexe;
}
public double getAge()
{
return Age;
}
public void setAge(double Age)
{
this.Age = Age;
}
public double getPoids()
{
return Poids;
}
public void setPoids(double Poids)
{
this.Poids = Poids;
}
public double getTaille()
{
return Taille;
}
public void setTaille(double Taille)
{
this.Taille = Taille;
}
public virtual void crier()
{ }
class Chat : Animal
{
enum Caractère { Gentil, Farouche, Mignon, Doux, Affectueux };
private bool Griffe;
private bool Poils;
private int Deces;
public Chat() : base() { }
public Chat(string Nom, string Sexe, double Age, double Poids, double Taille) : base(Nom, Sexe, Age, Poids, Taille)
{
Deces = 5;
}
public bool getGriffe()
{
return Griffe;
}
public void setGriffe(bool Griffe)
{
this.Griffe = Griffe;
}
public bool getPoils()
{
return Poils;
}
public void SetPoil(bool Poils)
{
this.Poils = Poils;
}
public int getDeces()
{
return Deces;
}
public void setDeces(int Deces)
{
this.Deces = Deces;
}
public override void crier()
{
Console.WriteLine("Miaouuu");
}
public void CatAfficher()
{
bool Griffe = getGriffe();
if (Griffe == true)
{
Console.WriteLine("Les griffes on été coupé.");
}
bool Poils = getPoils();
if (Poils == true)
{
Console.WriteLine("Il a des poils long.");
}
}
class Chien : Animal
{
enum Collier { Rouge, Vert, Bleu, Rose, Orange };
private bool Dresse;
private string Race;
private int Deces;
public Chien() : base() { }
public Chien(string Nom, string Sex, double Age, double Poids, double Taille)
: base(Nom, Sex, Age, Poids, Taille)
{
Deces = 10;
}
public bool getDresse()
{
return Dresse;
}
public void setDresse(bool Dresse)
{
this.Dresse = Dresse;
}
public string getRace()
{
return Race;
}
public void setRace(string Race)
{
this.Race = Race;
}
public int getDeces()
{
return Deces;
}
public void setDeces(int Deces)
{
this.Deces = Deces;
}
public override void crier()
{
Console.WriteLine("Waouuufff");
}
public void DogAfficher()
{
Console.WriteLine("");
bool Dresse = getDresse();
if (Dresse == true)
{
Console.WriteLine("Le chien est dresser");
}
}
class Oiseau : Animal
{
enum CouleurPlume { Gris, Noir, Vert, Rouge, Orange };
private bool Cage;
private int Deces;
public Oiseau() : base() { }
public Oiseau(string Nom, string Sex, double Age, double Poids, double Taille) : base(Nom, Sex, Age, Poids, Taille)
{
Deces = 30;
}
public bool getCage()
{
return Cage;
}
public void setCage(bool Cage)
{
this.Cage=Cage;
}
public int getDeces()
{
return Deces;
}
public void setDeces(int Deces)
{
this.Deces = Deces;
}
public override void crier()
{
Console.WriteLine("Pioupiouuuu");
}
public void BirdAfficher()
{
bool Cage = getCage();
if (Cage == true)
{
Console.WriteLine("L'oiseaux doit être en cage");
}
}
Tes classes héritent déjà de Animal.
Mais je vois que tu as du mal à comprendre le concept. Il faut que tu regardes à tête reposé, le concept de classe abstraite et d'héritage
https://openclassrooms.com/courses/apprenez-a-programmer-en-java/les-classes-abstraites-et-les-interfaces
Microsoft reprendre ce cours avec un exemple d'animal, mais il y a beaucoup de blabla inutile
https://msdn.microsoft.com/fr-fr/library/ms173149.aspx
class Program
{
public static void Main(string[] args)
{
Animal Animal = new Animal();
Chat Cat = new Chat();
Chien Dog = new Chien("nom", "femelle", 10, 5, 14);
Oiseau Bird = new Oiseau();
List Animals = new List();
Console.WriteLine("Dans qu'elle liste voulez vous rentrer? Chat - Chien - Oiseau");
string reponse = Console.ReadLine();
#region Chat
if (reponse.Equals("chat"))
{
Animals.Add(new Chat());
Console.WriteLine("Entrer le nom du chat : ");
Console.ReadLine();
Console.WriteLine("Entrer le sexe du chat : ");
Console.ReadLine();
Console.WriteLine("Entrer l'âge du chat : ");
Console.ReadLine();
}
#endregion
#region Chien
else if (reponse.Equals("chien"))
{
Animals.Add(new Chien());
Console.WriteLine("Entrer le nom du chien : ");
Console.ReadLine();
Console.WriteLine("Entrer le sexe du chien : ");
Console.ReadLine();
Console.WriteLine("Entrer l'âge du chien : ");
Console.ReadLine();
}
#endregion
#region Oiseau
else if (reponse.Equals("oiseau"))
{
Animals.Add(new Oiseau());
Console.WriteLine("Entrer le nom de l'oiseau : ");
Console.ReadLine();
Console.WriteLine("Entrer le sexe de l'oiseau : ");
Console.ReadLine();
Console.WriteLine("Entrer l'âge de l'oiseau : ");
Console.ReadLine();
}
#endregion
#region Erreur
else
{
Console.WriteLine("Vous avez fait une erreur quelques part");
}
#endregion
Cat.crier();
Dog.crier();
Bird.crier();
Dog.DogAfficher();
Console.ReadKey();
}
Les classes c'est ce que j'ai vu seulement il y a 2 jours ^^ Je comprend pas trop,en effet, mais chez moi faut le temps que ça rentre et ensuite ça passe ^^ wickette
kurorolucifuru C'est gentil, mais c'est pour demain malheureusement. ais j'apprécie le geste
vous avez quand même vue classe abstraite et héritage en cours ?
Sinon écoute bien pour le polymorphisme, vu que comme son nom l'indique le but est de partir d'une classe (animal) et de créer des classes dérivées.^^
Qu'entends l'énoncé par encoder ? pour moi l'encoding c'est genre utf8.
Sinon pour le décès tu fais comme suit :
tu as une fonction qui va générer un nombre aléatoire entre 0 et 100
Si celui si se retrouve entre 0 et la proba de mortalité (5 par exemple
tu retourne décédé, ou tu retourne true si c'est une fonction bool isDecede.
public bool isDecede()
{
Random rnd = new Random();
int probaDeces = rnd.Next(0, 100);
if(probaDeces
https://dotnetfiddle.net/5hRbdR
Gamekyo déteste pas le code, c'est juste que c'est un site de jeu vidéo, pour le mec lamdba c'est un sujet trop technique.
Non non c'est juste que le code lorsque je l'écris dans un post ca bug ^^, regarde ma fonction elle est coupée, c'est le site qui déteste quand t'écris du code.
Les fans de jeux-vidéos en général aiment l'informatique je pense.
wickette Oui, mais une journée seulement, je trouve que c'est très court.
Pour l'encodage, c'est qu'en tu rentrer les donner dans la console qui dois ce retrouver dans la liste une fois le programme fini. En gros, je dois pouvoir afficher le contenu de la liste (qui est vide au départ).
Le site est codé avec le cul et tenu sous perfusion depuis 5 ans sans MAJ, heureusement des bonnes poires sont là pour fournir du contenu gratos et faire tourner le site.
J'aimerais croire que tous les gens qui utilisent des applications mobiles s'intéressent à la programmation. J'en doute.
un lien qui expliquera mieux que moi et plus en détail
Je viens de voir que c'est pas tous a fait la même chose, ça me servira, je ne connaissais pas cette méthode, j'en parlerais demain au prof
Tu rigoles mais c'est un vrai problème en France ^^, un gars en info à moins de passer par une école d'ingénieur bac +5 se retrouve injustement à pisser du code pendant 10, 20 ans alors que normalement avec l'expérience on passe plus sur de la gestion de projet et de l'encadrement. Bonjour après le burn-out et la crise d'orientation, je connais trop de gens qui ont un peu pété les plombs et passé sur autres choses.
http://uml.free.fr/
http://www.ukonline.be/programmation/java/tutoriel/principal.php ( chapitre 9 )
Bon courage pour ta formation. ça prend toujours du temps avec l'informatique
Chien caniche = new Chien();
string s_age;
Console.WriteLine("Entrez l'age du chien") ;
Console.ReadLine();
caniche.age = Int32.Parse(s_age);
Console.WriteLine("Votre chien a ");
Console.WriteLine(caniche.age);
et je rajoute que Int32.Parse(s_age); te permets de convertir un string en un entier 32 bits, donc pas besoin de le faire pour les attributs string ou tu peux directement faire çà par exemple caniche.Nom = s_Nom;
Voili voilou, j'espère que je t'ais aidé
Oui voila un dév senior qui en même temps que de participer aux développemnt passe aussi du temps à gérer le projet et former les développeurs, ca c'est cool...et très bien payé et recherché on est d'accord.
private string Nom { get; set; }
Surtout pour répeter 30 fois la même chose