fpat
Messages postés11Date d'inscriptionmercredi 8 octobre 2008StatutMembreDernière intervention20 décembre 2008
-
8 oct. 2008 à 18:43
fpat
Messages postés11Date d'inscriptionmercredi 8 octobre 2008StatutMembreDernière intervention20 décembre 2008
-
16 oct. 2008 à 16:52
Bonjour, je n'ai aucun affichage à l'exécution et je ne comprends pas
En rouge la consigne et en bleu mon programme
- Écrire la classe Personne:
- attributs: nom, prénom, age, genre, état (vivant ou mort) et éventuellement un conjoint (qu'on a épousé) et des enfants
- constructeur prenant en paramètres un nom, un prénom et un genre ('m' ou 'f'). L'objet créé correspond à un enfant qui vient de naître
- void meurs() ...
- boolean vieillis(): augmente l'âge de la personne d'un si elle est vivante; et la fait mourrir si elle dépasse les 120 ans. Retourne false si la personne était déjà morte.
- boolean epouse (Personne p): l'instance de Personne sur laquelle on appelle cette méthode ainsi que p vont devenir conjoint (s'ls ont plus de 18, si aucun des deux n'est marié, si c'est un couple hétérosexuel et s'ils sont vivants). Retourne true si le mariage a été effectué.
- Personne engendre(String prenom, char genre): La personne ainsi que son conjoint ont un enfant dont e prénom et le genre sont donnés en paramètres et dont le nom est celui du père. La méthode retourne null si la personne n'était pas mariée.
- void affiche_enfants(): affiche le nom et prénom de chacun des enfants de cette personne
- void affiche_descendance(): affiche le nom et prénom de chacune des personnes qui descendent de cete personne.
class Personne
{
String nom, prenom;
char genre;
int age;
boolean vivant;
Personne enfant[]=new Personne[10];
Personne conjoint;
int nec; /*nombres d'enfants crees*/
fpat
Messages postés11Date d'inscriptionmercredi 8 octobre 2008StatutMembreDernière intervention20 décembre 2008 16 oct. 2008 à 16:52
Ca y est j'ai donc trouvé la réponse mes problèmes (grâce à Chatbour), d'ailleurs je voudrais remercier sincèrement Chatbour pour sa patience tout d'abord puis vous montrer le programme répondant au premier message:
class Personne
{
String nom, prenom;
char genre;
int age;
boolean vivant;
Personne enfant[]=new Personne[10];
Personne conjoint;
int nec; /*nombres d'enfants crees*/
tu as oublié aussi de mettre avant this.conjoint = p; avant return true;
- la méthode engendre() doit tester si le tableau d'enfant est rempli ou non..
- dans la méthode affiche_enfants() tu peut boucler jusqu'à nec et non pas jusqu'à 9 et tester à chaque fois si enfant[i] == null..
- dans la méthode main() il n'est pas très beau d'écrire p1.enfant[0]=p1.engendre("Sophie",'f');
p1.enfant[1]=p1.engendre("Jean",'m');
à remplacer par :
p1.engendre("Sophie",'f');
p1.engendre("Jean",'m');
Voici un essai de ma part :
class Personne {
String nom, prenom;
char genre;
int age;
boolean vivant;
Personne enfant[]=new Personne[10];
Personne conjoint;
int nec; /*nombres d'enfants crees*/
fpat
Messages postés11Date d'inscriptionmercredi 8 octobre 2008StatutMembreDernière intervention20 décembre 2008 9 oct. 2008 à 19:25
j'ai procédé à des modifications en m'inspirant de ta réponse. J'ai une erreur à la ligne 71 (dont la méthode est):
void affiche_descendance()
{
int i;
System.out.println("Voici la descendance");
for (i= 0; i<=9; i=i+1)
{
if (enfant[i] != null) System.out.println( this.enfant[i].affiche_enfants() ); /* ligne 71 */
}
}
l'erreur est: 'void' not type allowed here.
Pour ce qui est de la méthode void affiche_descendance() j'ai tenté ça (sans conviction) :
void affiche_descendance()
{
int i;
System.out.println("Voici la descendance");
for (i =0; i<=9; i=i+1)
{
if (enfant[i] != null) System.out.println( this.enfant[i].affiche_enfants() );
}
}
Si quelqu'un pourrait répondre à mes questions:
- Quelles sont les lignes de codes pour affiche_descendance()
- Pourquoi le programme cette fois ci affiche une erreur ?
En vous remerciant très sincèrement :)
FARRUGIA Patrick
Vous n’avez pas trouvé la réponse que vous recherchez ?
fpat
Messages postés11Date d'inscriptionmercredi 8 octobre 2008StatutMembreDernière intervention20 décembre 2008 9 oct. 2008 à 20:44
Re re bonsoir lol,
J'ai corrigé mon erreur donc la fonction affiche_enfant() marche bien mais la fonction affiche_descendance() n'affiche rien (ce qui me paraît logique lol), je crois que j'ai aucune idée de code pour affiche_descendance donc si vous pouvez m'aider à trouver.
En vous remerciant encore une fois :p, et surtout en remerciant Chatbour qui me supporte :)