Projet informatique pret automobile JAVA

lodo001 Messages postés 1 Date d'inscription mercredi 11 avril 2012 Statut Membre Dernière intervention 11 avril 2012 - 11 avril 2012 à 16:33
cormandyr Messages postés 600 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 8 juillet 2016 - 12 avril 2012 à 09:21
Bonjour, je dois réaliser un projet en JAVA.
CE projet consiste à créer une fenetre simulant un pret auto afin de calculer les mensualités et d'afficher les résultats suivant différentes conditions.
Je suis bloqué (je crois) au niveau de la recupération des données de la liste Choice c3.

J'ai isolé par // la partie qui me pose problème. Le reste semble être correcte je pense.
Si vous pouvez me sortir de là...
voici ce que j'ai fait:



import java.awt.* ;
import java.awt.event.* ;


class Fenetre extends Frame {
protected Panel p1, p2, p3, p31;
protected TextArea txt ;
protected Button bouton1 ;
protected TextField montant, revenu ;
protected Choice c1, c2, c3;
protected Adaptateur adapt;
protected Delegue delegue;


Fenetre() {
setLayout(new GridLayout(3,2));
p1= new Panel();
p1.setLayout(new FlowLayout()) ;
p1.add(new Label("Montant a emprunter"));
montant = new TextField(10);
p1.add(montant);
p1.add(new Label("Revenu mensuel"));
revenu=new TextField(10);
p1.add(revenu);
this.add(p1);

p2= new Panel();
p2.setLayout(new FlowLayout());
p2.add(new Label("Nombre de chevaux fiscaux"));
c1=new Choice();
c1.add("5");
c1.add("6");
c1.add("7");
c1.add("8");
c1.add("9");
c1.add("10");
c1.add("11");
c1.add("12");
c1.add("13");
c1.add("14");
c1.add("15");
p2.add(c1);
p2.add(new Label("Nombre de mois de remboursement"));
c2=new Choice();
c2.add("12");
c2.add("24");
c2.add("36");
c2.add("48");
c2.add("60");
c2.add("72");
p2.add(c2);
p2.add(new Label("Energie"));
c3=new Choice();
c3.add("Essence");
c3.add("Diesel");
c3.add("Hybride");
c3.add("Electrique");
p2.add(c3);
this.add(p2);

p3=new Panel();
p3.setLayout(new BorderLayout());
p31=new Panel();
bouton1=new Button("Valider");
p31.add(bouton1);
p3.add("North", p31);
txt= new TextArea(5,30);
p3.add("South", txt);
this.add(p3);

delegue = new Delegue(this) ;
adapt = new Adaptateur(delegue) ;

this.addWindowListener(adapt) ;
bouton1.addActionListener(adapt);
}
}

public class Emprunt {
public static void main(String args[]) {
Fenetre f = new Fenetre() ;
f.pack() ;
f.show() ;
}
}

class Delegue {
protected Fenetre fen;
Delegue (Fenetre f) {
fen = f;
}
public void quitter(){
System.exit(0);
}



void afficheres(){ // debut de la methode calcul affichage du resultat

fen.txt.setText("");
String resultat="Erreur";
float mont = new Float(fen.montant.getText()).floatValue();
float rev = new Float(fen.revenu.getText()).floatValue();
float ncf = new Float(fen.c1.getSelectedItem()).floatValue();
float ndr = new Float(fen.c2.getSelectedItem()).floatValue();
boolean typ=new Boolean(fen.c3.getSelectedItem()).booleanValue();



String taux;
String autorise=" LE PRET EST A PRIORI AUTORISE";
float r;
float m = (float) 1/12;

if (ncf < 10){
r = (float) Math.pow(1.049,m)-1; //taux annuel de 4,9% rammene au taux mensuel
taux= "Le taux appliqué est de 4,9% annuel\n"; }
else {
r= (float) Math.pow(1.063,m)-1; // taux annuel de 6,3% rammene au taux mensuel
taux = "Le taux appliqué est de 6,3% annuel\n";
}

float annuit= (float) ((mont*r)*Math.pow(1-Math.pow(1+r,-ndr),-1));
String an = " Le montant de la mensualité est : "+annuit+" euros.\n";

//boolean condition1 = (typ=="Essence" && ndr>36);
//boolean condition11 = (typ="Essence" && ndr<=36);
String raison1= "Pour une voiture Essence, la duree de pret ne peut exceder 36mois.\n";
//boolean condition2 = (typ="Diesel" && ndr>48);
//boolean condition21 = (typ="Diesel" && ndr<=48);
String raison2= "Pour une voiture Diesel, la duree de pret ne peut exceder 48mois.\n";
//boolean condition3 = (typ="Hybride" && ndr>60);
//boolean condition31 = (typ="Hybride" && ndr<=60);
String raison3= "Pour une voiture Hybride, la duree de pret ne peut exceder 60 mois.\n";
//boolean condition4 = (typ="Electrique" && ndr>24);
//boolean condition41 = (typ="Electrique" && ndr<=24);
String raison4= "Pour une voiture Èlectrique, la duree de pret ne peut exceder 24mois.\n";

float test = rev*12/mont;
float revaccept = rev*12;
boolean condition5 = ( test<1);
boolean condition51 = (test>=1);
String raison5 = " Le montant emprunte "+mont+" ne peut exceder 12 fois le revenu mensuel, soit "+revaccept+"\n";

boolean condition6= (ncf>12 && revaccept<=100000);
boolean condition61= (ncf>12 && revaccept>100000);
String raison6 = " Si le nombre de chevaux fiscaux du vehicule est superieur a 12, le revenu annuel doit etre superieur a 100 000 euros." ;
boolean condition7= (9 < ncf && ncf<=12 && revaccept<=60000);
boolean condition71= (9< ncf&& ncf<=12 && revaccept>60000);
String raison7 = " Si le nombre de chevaux fiscaux du vehicule est compris entre 9 et 12, le revenu annuel doit etre superieur a 60 000 euros.";
boolean condition8= (6>=ncf && ncf<=9 && revaccept<=36000);
boolean condition81= (6>=ncf && ncf<=9 && revaccept>36000);
String raison8 = " Si le nombre de chevaux fiscaux du vehicule est compris entre 6 et 9, le revenu annuel doit etre superieur a 36 000 euros.";

//if( condition11==true || condition21==true || condition31==true || condition41==true){
// if ( condition51==true){
// if ( condition61==true || condition71==true || condition81==true){
// resultat = taux + an + autorise;}}}
//else {
//if( condition1==true){
// resultat = raison1;}
//if( condition2==true){
// resultat = raison2;}
//if( condition3==true){
// resultat = raison3;}
//if( condition4==true){
// resultat = raison4;}
if( condition5==true){
resultat = raison5;}
if( condition6==true){
resultat = raison6;}
if( condition7==true){
resultat = raison7;}
if( condition8==true){
resultat = raison8;}

fen.txt.setText(resultat);

}

}

class Adaptateur implements WindowListener, ActionListener {
protected Delegue delegue ;

Adaptateur (Delegue d) {
delegue = d;
}
public void actionPerformed(ActionEvent e){
delegue.afficheres();
}

public void windowClosing(WindowEvent e){
delegue.quitter() ;
}

public void windowClosed(WindowEvent e){}
public void windowOpened(WindowEvent e){}
public void windowIconified(WindowEvent e){}
public void windowDeiconified(WindowEvent e){}
public void windowActivated(WindowEvent e){}
public void windowDeactivated(WindowEvent e){}
}

1 réponse

cormandyr Messages postés 600 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 8 juillet 2016 11
12 avril 2012 à 09:21
En fait, tu essaies de convertir une String qui contient le type de carburant en boolean...
Comme tu n'as aucun carburant qui s'appelle true ou yes, le boolean créé aura toujours la valeur false...

je n'ai pas regarder ce que tu voulais faire avec cette valeur (typ), mais comme ça, tu devrais plutot faire:
String type = c3.getSelectedItem().toString()


et lorsque tu veux tester sa valeur, évite les == et fais par exemple:
type.equals("Essence")


P.S. pour la lisibilité du code, pense à utiliser les balises de code (java ici) pour nous faciliter la tache ^^
0
Rejoignez-nous