JAVA

Résolu/Fermé
Tit.touna - 18 févr. 2009 à 20:11
neogenesis Messages postés 4748 Date d'inscription dimanche 19 octobre 2008 Statut Contributeur Dernière intervention 24 janvier 2010 - 24 avril 2009 à 00:10
Bonjour,
j'ai un TP à faire,et j'ai pas pu le résoudre,le voilà:
"créer un parc de véhicules motorisés(voitures et motos en location). observer que la classe MOTO est similaire à la classe VOITURE déja développée. l'entretien des véhicules motorisés dans le parc nécessite une action régulière qui consiste à faire tourner les moteurs et de faire la pleine si c'est nécessaire. modéliser ce problème par une classe ParcVoiture comportant un tableau de véhicules en attribut et ajouter une méthode tester faisant tourner le moteur de chaque véhicule, la valeur de l'attribut sera mise à jour par un constructeur. effectuer un teste avec un Parc comportant 3voitures et 3motos" Aidez moi svp, c'est urgent, et merci d'avance....
A voir également:

16 réponses

neogenesis Messages postés 4748 Date d'inscription dimanche 19 octobre 2008 Statut Contributeur Dernière intervention 24 janvier 2010 514
18 févr. 2009 à 20:14
Salut,

Dis-nous sur quels points tu bloques et on t'aidera à le résoudre.

@+
0
merci bcp pr attention....
je veux écrire un programme en java en utilisant les classes, vous trouverez cet exercice dans le livre "entrainez_vous et maîtrisez le langage:java5 "
0
neogenesis Messages postés 4748 Date d'inscription dimanche 19 octobre 2008 Statut Contributeur Dernière intervention 24 janvier 2010 514
18 févr. 2009 à 20:30
Re.

J'ai pas le livre, c'est pas ça ma question.

Personne ne va faire ton exercice à ta place, c'est logique ! Donc pose des questions, sur les problèmes que tu as rencontrés en essayant de coder, au mieux poste tes bouts de codes qu'on pourrait corriger.

Mais si c'est pour qu'on te fasse ton devoir à ta place, tu te trompes de site ;-)
0
re,
bein je sais que personne ne va faire l'exercice à ma place mais c'est parceque c'est urgent...
j'en ai vraiment besoin.....aidez_moi!
en tou les cas merci de m'avoir répondre,c'est genti de ta part
0
salut,

j'ai commencé à coder mon TP j'ai:

creer un package qui contient pour le moment 2 classes:
une classe vehicule:

package tp;

public class Vehicule {
public String model;
public int carburant;
Vehicule(String model,int carburant){
this.model=model;
this.carburant=carburant;}
}


une classe ParcVoiture qui contient comme attribut une Liste d'objet de la classe precedente le pbm qui se pose dans ce moment est:

1- j'ai crée une liste d'objet mais je ne sais pas comment mettre ses objets de type Vehicule?
2-j'ai fait une methode Tester() où je dois parcourir ma liste et pour chaque objet Vehicule;je veux lire ses attributs(model ,carburant) et je ne sais pas comment le faire

voici ce que j'ai pu faire pour le moment dans cette classe

package tp;
import java.util.*;
public class ParcVoiture {
List vehiculeList=new ArrayList();

//methode tester
public boolean tester(){ //rend True si carburant>0 False sinon

for(int i=0;i<vehiculeList.size();i++){
if(vehiculeList[i].carburant==0){....}
0
neogenesis Messages postés 4748 Date d'inscription dimanche 19 octobre 2008 Statut Contributeur Dernière intervention 24 janvier 2010 514
20 févr. 2009 à 09:40
Re,

J'ai pas testé mais ça ma l'air pas mal du tout !

A part que tous tes attributs sont "Public" et qu'il vaudrait mieux les mettre en "Private" (mais si c'est pas demander, laisse en public ça demande moins de travail avec les getters/setters)

Pour "construire" une voiture tu fais dans ton main par exemple :

Voiture nom_de_la_voiture = new Voiture(données de la voitures)

Le mieux étant de créer un tableau de voitures.

Comme les attributs sont publics tu peux lire les attributs d'une voiture en faisant simplement :

nom_de_la_voiture.attribut


0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
slt,
j'ai déja essayé ce ke tu ma envoyé mais ça na pas marché(je lé compilé sur eclipse mais ça marche pas!!)
lorsque j'utilise un tableau ki contient des véhicules,comment puisse_je faire le type (véhicule contient comme attribut le model et carburant) est ce que je mis STRING ou INT ou koi??!!!
0
neogenesis Messages postés 4748 Date d'inscription dimanche 19 octobre 2008 Statut Contributeur Dernière intervention 24 janvier 2010 514
20 févr. 2009 à 20:44
Tu met Vehicule :-)

Tu fais un tableau de véhicule (à voir comme un garage, ou un parking à voiture) ainsi se sera plus simple de récupérer tel ou tel voiture en parcourant le tableau !

Donc

Voiture[] garage = new Voiture[taille_que_tu_veux]


Ensuite pour récupérer le modèle de la première voiture de ton parking tu fais :

System.out.println(garage[0].model);


Bien sûr si les attributs modèle et carburant de tes voitures sont déclarés en Private (comme je te l'ai conseillé) il faudra utiliser un getModel et un getCarburant dans ta classe Vehicule, et ainsi pour extraire un attribut dans ton main, tu dois faire ceci :

System.out.println(garage[0].getModel();


Tu vois un peu le système ?
0
Tit.touna > neogenesis Messages postés 4748 Date d'inscription dimanche 19 octobre 2008 Statut Contributeur Dernière intervention 24 janvier 2010
21 févr. 2009 à 19:16
mercii bcp pr toi NEOGENESIS.........:-)
0
neogenesis Messages postés 4748 Date d'inscription dimanche 19 octobre 2008 Statut Contributeur Dernière intervention 24 janvier 2010 514 > Tit.touna
21 févr. 2009 à 19:24
Re.

De rien !

Je peux noter ton problème en "Résolu" ?
Ou tu as encore des questions ?
0
Tit.touna > neogenesis Messages postés 4748 Date d'inscription dimanche 19 octobre 2008 Statut Contributeur Dernière intervention 24 janvier 2010
21 févr. 2009 à 21:38
pr le moment j'ai pas de probleme,ça marche...
mais si je trouve une difficulté(je voulé dire une question pas un exercice)jte le demanderai lol...
merci encore
0
bzkr7 Messages postés 22 Date d'inscription vendredi 7 décembre 2007 Statut Membre Dernière intervention 1 mars 2012 2
21 févr. 2009 à 08:55
salut ,

TP2 POOJ // UNIVERSITY DE CONSTANTINE ||

Tu dois cree un tableau de type Voiture "par exemple"

bien sur lorsque on cree une class "comme voiture"par exemple ,elle devient elle meme un type qu'on peut utiliser pour declarer des <> variables ,ansi que declarer des tableaux de ce type "qui contient des objets de ce type " ou on peut facilement acceder au <> methode de cette class "Type"

Pour les classes/ Voiture== Moto "prsk la mm classe" \; voire ton cahier de cour pooj /la solution de td voiture\

bonne chance camarade...................
0
bonjour;
bein merci pr ton msg,je sais pas ki es tu mais surement un(e) de mes camarade de GL,mtn je sais ske je dois faire à propos de ce tp
en tous les cas merci,et bon courage :-).........
0
Tit.touna > Tit.touna
26 févr. 2009 à 19:12
re salut j'ai fait mon programme mais il me reste un ptit problem quand je l'exécute
il s'exécute normal le 1er message apparait "entrez le modele du véhicule" et quand je le fais j'ail'erreur suivante (Exception in thread "main" java.lang.NullPointerException
at tp.ParcVoiture.methode(ParcVoiture.java:19)
at tp.ParcVoiture.main(ParcVoiture.java:50)

la ligne 19 c'est l'instruction: v[i].model=clavier;
la ligne 50 c'est l'instruction: p.methode();

et voici le programme complet:

package tp;
import java.io.*;

public class ParcVoiture {


static InputStreamReader lecteur = new InputStreamReader (System.in) ;
static BufferedReader entree = new BufferedReader (lecteur) ;
public static String clavier="";
Vehicule[] v=new Vehicule[6];//tableau de voiture

//methode remplir le tableau
public void methode(){
int j=0;
for(int i=0;i<v.length;i++){
try{
System.out.println("entrez le modele du véhicule");
clavier=entree.readLine();
v[i].model=clavier;
System.out.println("entrez le niveau de carburant");
clavier=entree.readLine();
j=Integer.parseInt(clavier);
v[i].carburant=j;}catch (IOException erreur){}}}
public void fairePlain(Vehicule vehicule[]){
int i=0;
vehicule[i].carburant++;

}


//methode tester
public boolean tester(){
int i;
for(i=0;i<v.length;i++)
if(v[i].carburant==0) {
fairePlain(v[i]);
return false;
}
v[i].carburant--;
System.out.println("le moteur de"+v[i].model+"demarre avec "+v[i].carburant+"litres");return true;}



private void fairePlain(Vehicule vehicule) {
// TODO Auto-generated method stub

}
public static void main (String[]args){
ParcVoiture p=new ParcVoiture();
p.methode();
p.tester();



}}
0
salut camarade;
je te demande stp de me guidé ou je peux trouvé les differents supports de transmission pour les réseaux informatique et les comparer selon differents critères qu'il faut determiner à l'avance "c notre TP reseau...."
et merci d'avance aussi
0
neogenesis Messages postés 4748 Date d'inscription dimanche 19 octobre 2008 Statut Contributeur Dernière intervention 24 janvier 2010 514
26 févr. 2009 à 19:48
Re !

Le problème c'est tes boucles ! En effet tu fais des for de 0 à longueur du tableau hors par exemple si tu as un tableau de longueur 4 tu auras v[0], v[1], v[2], v[3] et v[4] n'existe pas (d'ou l'exception NullPointer)

Donc modifie toutes boucles en mettant comme borne supérieure la longueur du tableau - 1 !
0
bah j'ai fait ce que tu m'as dit mais j'ai tjr la meme erreur eu quand j'ai cherché sur le net la signification de cette exception j'ai trouvé ça "l'erreur qui est remontée signifie que quelque part dans le programme il ya appel à un objet qui n'a pas été instancié. "!!! cmt resoudre ça!!??
0
neogenesis Messages postés 4748 Date d'inscription dimanche 19 octobre 2008 Statut Contributeur Dernière intervention 24 janvier 2010 514 > Tit.touna
26 févr. 2009 à 20:13
Tu m'as posté tout ton code là ?

Je ne vois pas le constructeur Vehicule ?!
0
Tit.touna > neogenesis Messages postés 4748 Date d'inscription dimanche 19 octobre 2008 Statut Contributeur Dernière intervention 24 janvier 2010
26 févr. 2009 à 20:16
dans mon package j'ai 2 classes ParcVoiture dont j'ai deja posté le code et la 2eme Vehicule voici son code:

package tp;

public class Vehicule {
public String model;
public int carburant;
Vehicule(String model,int carburant){
this.model="";
this.carburant=0;}

}
0
neogenesis Messages postés 4748 Date d'inscription dimanche 19 octobre 2008 Statut Contributeur Dernière intervention 24 janvier 2010 514
26 févr. 2009 à 20:19
Ok j'ai compris le problème !

Enfait quand tu demande à l'utilisateur d'entrer le modèle, tu l'insère ensuite dans un Vehicule or ce Vehicule n'a pas été créer !

Le mieux c'est de demander toutes les informations à l'utilisateur en une fois, puis d'instancier un nouvel objet véhicule.
0
dsl j'ai pas bien compris ce que tu veux dire est-ce possible que tu m'explique via un exemple.merci
0
neogenesis Messages postés 4748 Date d'inscription dimanche 19 octobre 2008 Statut Contributeur Dernière intervention 24 janvier 2010 514
26 févr. 2009 à 21:13
Ok.

Au lieu de :

System.out.println("entrez le modele du véhicule");
clavier=entree.readLine();
v[i].model=clavier;
System.out.println("entrez le niveau de carburant");
clavier=entree.readLine();
j=Integer.parseInt(clavier);
v[i].carburant=j;}catch (IOException erreur){}}} 


Fais ça :

String clavierModel = "";
int clavierCarburant = 0;

System.out.println("entrez le modele du véhicule");
clavierModel = entree.readLine();
System.out.println("entrez le niveau de carburant");
clavierCarburant=entree.readLine();

Voiture v = new Voiture(clavierModel, clavierCarburant);

Pas le courage de tester mais normalement ça devrait marcher ;-)
0
Bjr,
j'ai fait ce que tu m'as dis et ça marche, dans la console jpeu entrer les modeles et niveau de carburant normal mais apres ça devrait exécuté la 2eme methode tester(), MAIS!! ça ne marche pas la console ne me donne plus la main apres que l'insertion du dernier Objet!!

d'ou peut bien etre le pbm ??

merci encoRrr
0
neogenesis Messages postés 4748 Date d'inscription dimanche 19 octobre 2008 Statut Contributeur Dernière intervention 24 janvier 2010 514
27 févr. 2009 à 11:19
Re.

Ta procédure n'est pas correcte. Ce que tu as :
if(v[i].carburant==0) {
   fairePlain(v[i]);
   return false;
}

v[i].carburant--;
System.out.println("le moteur de"+v[i].model+"demarre avec "+v[i].carburant+"litres");
return true;
} 


Tu renverras à chaque fois TRUE car la seconde partie n'est pas dans un If.

En gros tu test si le carburant est vide, donc tu fais le plein, et sinon, tu enlève 1 unité de carburant c'est bien ça ? Alors il te faut mettre un "else".

Tu programmes avec Eclipse ? Normalement Eclipse détecte ce genre d'erreur en te disant que la méthode n'est pas sûr de renvoyer un boolean.
0
le pbm C'est que quand je met un else Eclipse me detecte une erreur"que la methode ne retourne pas de boulean!!!
0
pawlomib > Tit.touna
28 févr. 2009 à 00:10
bonne chance et bon courage :)
0
neogenesis Messages postés 4748 Date d'inscription dimanche 19 octobre 2008 Statut Contributeur Dernière intervention 24 janvier 2010 514 > Tit.touna
28 févr. 2009 à 21:54
Re.

Pas possible, si tu met bien un "else" et bien sûr pas un "else if" il renverra forcément un boolean.
Tu es sûr de ton coup ?
0
Tit.touna > neogenesis Messages postés 4748 Date d'inscription dimanche 19 octobre 2008 Statut Contributeur Dernière intervention 24 janvier 2010
28 févr. 2009 à 22:05
si si si voilà ske j'ai mit:

public boolean tester(){
int i;
for(i=0;i<v.length;i++){
if(v[i].carburant==0) {
fairePlain(v[i]);
return false;}


else{
v[i].carburant--;
System.out.println("le moteur de"+v[i].model+"demarre avec "+v[i].carburant+"litres");
return true;}}}

Bonne soirée
0
bzkr7 Messages postés 22 Date d'inscription vendredi 7 décembre 2007 Statut Membre Dernière intervention 1 mars 2012 2
27 févr. 2009 à 13:05
ana liya nahi les exception khlasse ............
0
neogenesis Messages postés 4748 Date d'inscription dimanche 19 octobre 2008 Statut Contributeur Dernière intervention 24 janvier 2010 514
28 févr. 2009 à 23:04
RE

Désolé ça fait un moment que j'ai plus touché au Java !
Enfait je sais d'ou provient l'erreur, en effet Eclipse te signale que la méthode ne renvoie pas forcément un boolean, c'est le cas, car en vérifiant ton code il va exécuter chaque ligne les unes après les autres, et donc il arrivera sur une condition et ça ne peut pas marcher.

Alors la solution c'est de créer une variable boolean du style :

boolean Check = false;

Puis dans ton code modifie comme cela :

public boolean tester(){
int i;
for(i=0;i<v.length;i++){
if(v[i].carburant==0) {
fairePlain(v[i]);
check = false;}


else{
v[i].carburant--;
System.out.println("le moteur de"+v[i].model+"demarre avec "+v[i].carburant+"litres");
check = true;

}

return check;

}


} 


En fait tu peux inialiser ta variable Check avec True ou False, ça n'importe pas, puisque de toute façon, TOI, tu es sûr que la condition enverra soit l'un, soit l'autre ! En fait on fait comprendre au compilateur qu'il n'y a pas de problème.

Si jamais pour tes problèmes futures, lorsque tu postes ton code ici et pour garder sa mise en forme (indentation etc...) utilise les balises "Codes" (quand tu postes un message, le bouton Code est placé à droite des boutons Gras Italique et Souligné, le logo c'est des "<>" bleu sur une page blanche ;-)

Comme ça c'est plus facile pour la lisibilité du code.
0
Re!!

bein j'ai déjà essayé cette solution mais j'ai le même pbm je C pas PRKKKK??!!!pourtant ça parait juste!
0
neogenesis Messages postés 4748 Date d'inscription dimanche 19 octobre 2008 Statut Contributeur Dernière intervention 24 janvier 2010 514 > Tit.touna
1 mars 2009 à 21:36
Re.

Poste moi ton code actuel en utilisant les balises "codes" comme je t'ai expliqué ce sera plus simple pour moi pour débugger ;-)
0
OK mister voici le code en entier


package tp;
import java.io.*;

public class ParcVoiture {
	
	
	static InputStreamReader lecteur = new InputStreamReader (System.in) ;
	static BufferedReader entree = new BufferedReader (lecteur) ;
	 public static String clavierModel="";
	 public static String clavierCarburant="";
	 Vehicule[] v=new Vehicule[2];//tableau de voiture
	 Vehicule vv=new Vehicule("l",5);
	
	 //methode remplir le tableau
	 public  void methode(){
		 int j=0;
		 for(int i=0;i<v.length;i++){
			try{
				System.out.println("entrez le modele du véhicule");
				clavierModel=entree.readLine();
				System.out.println("entrez le niveau de carburant");
				clavierCarburant=entree.readLine();
				j=Integer.parseInt(clavierCarburant);
				Vehicule v1 = new Vehicule(clavierModel,j);
				v[i]=v1;
				}catch (IOException erreur){}}}
	
//methode tester
public boolean tester(){
	int i;
	boolean res=true;
		for(i=0;i<v.length;i++){
		if(v[i].carburant==0) {
			fairePlain(v[i]);
			res=false;}
			
		
		else{
		v[i].carburant--;
		System.out.println("le moteur de"+v[i].model+"demarre avec "+v[i].carburant+"litres");
		res=true;}} return res;}
	
			
public void fairePlain(Vehicule vehicule[]){
	 int i=0;
	 vehicule[i].carburant++;
	 
}
		
	private void fairePlain(Vehicule vehicule) {
	
}
	public static void main (String[]args){
		ParcVoiture p=new ParcVoiture();
		p.methode();
		p.tester();
	


}}


Merci encore
0
neogenesis Messages postés 4748 Date d'inscription dimanche 19 octobre 2008 Statut Contributeur Dernière intervention 24 janvier 2010 514
1 mars 2009 à 22:02
Et peux-tu me poster également le reste ?

0
Il ne reste que la classe Vehicule :

package tp;

public class Vehicule {
	public String model;
	public int carburant;
	Vehicule(String model,int carburant){
		this.model="";
		this.carburant=0;}
	
	}
0
neogenesis Messages postés 4748 Date d'inscription dimanche 19 octobre 2008 Statut Contributeur Dernière intervention 24 janvier 2010 514
1 mars 2009 à 23:20
Re.

Désolé je suis un peu occupé ces jours.

Enfait ton programme est mal encapsulé, ta procédure tester devrait être dans ta classe Vehicule ! Tu verras ensuite le code sera beaucoup plus simple.

Donc incorpore la procédure "tester" dans ta classe Vehicule puis modifie le reste du code et si tu as encore des problèmes je suis là :-)
0
webccho Messages postés 5 Date d'inscription lundi 20 avril 2009 Statut Membre Dernière intervention 21 avril 2009
21 avril 2009 à 19:53
Bonjour,

Bonjour,

Je voudrai saisir du texte aprés un double clic et l'enregistrer dans mon tableau généré grace a SQL
comment fait on pour que aprés un double clic sur une case du tableau il affiche dans cette case une zone de texte que je peux mmodifier et enregistrer???? voici un bout de mon code

ce que je mets arès ondblclick ne fonction pas



if($val=='projet') {// $ls = $rdfReporting->getAbout('urn:steria:reporting:plateforme:'.$item['plateforme_id'].':projet');
// $ls = $rdfReporting->getAbout('urn:steria:reporting:plateforme:'.$item['plateforme_id'].':projet');
$ls=array();

// $dbsql = "select * from PROJET,PLATEFORME WHERE PROJET.ACTIF=1 AND PROJET.ID_PLATEFORME=PLATEFORME.ID_PLATEFORME order by PLATEFORME.ID_PLATEFORME asc";

$sql="select * from PLATEFORME WHERE ID_PLATEFORME=2";
$query = @sqlite_query(Steria::$database, $sql,SQLITE_ASSOC ,$error);

?>

<div >
<fieldset>

<table>
<tr><th>Nom du projet</th><th>PER réel</th><th>FV Réel</th><th>MEP</th><th>VSR</th><th>Commentaires</th></tr>
<?php
while ($fetcha = sqlite_fetch_array($query,SQLITE_ASSOC )){


$variable=$item['plateforme_id'];
$dbsql = "select * from PROJET,PLATEFORME WHERE PROJET.ACTIF=1 AND PROJET.ID_PLATEFORME=PLATEFORME.ID_PLATEFORME AND PROJET.ID_PLATEFORME='$variable'";
$dbquery = @sqlite_query(Steria::$database, $dbsql,SQLITE_ASSOC ,$error);
while ($fetch = sqlite_fetch_array($dbquery,SQLITE_ASSOC )){// $list[$fetch['ID_PROJET']] = $fetch['NOM_PROJET'];


//$list[$fetch['NOM_PROJET']] = $fetch['CATEGORIE'];
$list=array();
$class = ($class=='rowcol1') ? 'rowcol2' : 'rowcol1' ;

// echo "<tr class=\"$class\">";

PAR CONTRE CETTE LIGNE FONCTIONNE KAN G METS UNE ALERTE MAIS JE VEUX APRES UN DBLCLIC UNE ZONE DE TEXTE
//echo "<tr class=\"$class\" onDblClick=\"window.alert('FORBIDDEN !!')\" onMouseOut=\"this.style.backgroundColor=''\">";
//echo "<tr class=\"$class\" onDblClick=\"<input type=\"text\" size=\"10\" name=\"$class\" >";

<ital><ital>AVEC CETTE LIGNE GVOUDRE METTRE DU TEXTE UNE FOI QUE JE DBLCLICK MAIS CA NE FONCTIONNE PA</ital></ital>

echo "<tr class=\"$class\" onDblClick=\"<input type=\"text\" size=\"10\" name=\"$class\" >" ;

echo "<td>".@$fetch['PROJET.NOM_PROJET']."</td>";
// echo "<td>"."<input type=\"text\" size=\"10\" name=\"$class\" >"."</td>";
echo "<td>".$fetch['PROJET.PER_REEL']."</td>";
// $moda=$fetch['PROJET.PER_REEL'];
echo "<td>".$fetch['PROJET.FV_REEL']."</td>";
// echo "<th><a href='$moda'>$moda</a></th>";
//$modb=$fetch['PROJET.FV_REEL'];
// echo "<th><a href='$modb'>$modb</a></th>";
echo "<td>".$fetch['PROJET.MEP']."</td>";
// $modc=$fetch['PROJET.MEP'];
// echo "<th><a href='$modc'>$modc</a></th>";
echo "<td>".$fetch['PROJET.VSR']."</td>";
// $modD=$fetch['PROJET.VSR'];
// echo "<th><a href='$modD'>$modD</a></th>";
echo "<td>".$fetch['PROJET.COMMENTAIRE']."</td>";
//$modE=$fetch['PROJET.COMMENTAIRE'];
// echo "<th><a href='$modE'>$modE</a></th>";

echo "</tr>";

}
}

?>
</table>
</fieldset>
</div>


<?php

$dbsql=array(array("","submit","","ENREGISTRER SAISIE"));

echo"<FORM ACTION=\"doc_planification.php\"METHOD=\"POST\">\n";
//$test=array($dbsql);
foreach($dbsql as $zone){

echo "$zone[0]<INPUT TYPE=\"$zone[1]\"
NAME=\"$zone[2]\" VALUE=\"$zone[3]\"><BR>\n";

}
echo"</FORM>";
}
0
neogenesis Messages postés 4748 Date d'inscription dimanche 19 octobre 2008 Statut Contributeur Dernière intervention 24 janvier 2010 514
24 avril 2009 à 00:10
Cool....
0