Gros probleme de programmation
vinc'03
-
vinc'03 -
vinc'03 -
Bonjour,
alors voila, la j'ai un probleme que je ne sais pas resoudre, mais alors pas du tout (bon en meme temps jsuis débutant..)
Je fais un programme pour décomposer un fichier, et utiliser ses données.
Donc en fait j'ai un fichier de terrains, avec formes, dimensions, lieu ou ils se trouvent avec des references de proprietaires;
Ensuite j'ai un fichier avec les tarifs du metre carré selon le lieu.
Le but est d'afficher les biens de chaque proprietaire sachant que un mm proprietaire peut avoir plusieurs terrains dan sdifferents lieux.
Bref tout va bien, le proramme s'execute sans probleme,mais quand je demande de l'afficher, il m'affiche deux fois le meme proprietaire et m'en oublie un...(avec la premiere fois la bonne surface et la seconde, la surface de celui qui manque )
donc je ne sais pas comment faire.
J'ai essayé de localiser le probleme, on dirait qu'il ne lit pas le proprietaire manquant...
donc concernant les proprio ca donne:
reference forme, dimension1 dimension 2 Lieu
P231 C 12.75 0 Colmar
S304 R 15 20 1Obernai
P231 C 20 0 Barr
S104 R 57.5 52.35 Strasbourg
S442 T 23 32.60 Mulhouse
P231 C 21 0 Nancy
S442 R 73.25 37.10 Paris
P211 T 69.50 55.40 Laval
P231 C 61 0 Poitiers
et le programme:
import fr.insa.goepp.Lire;
import java.io.* ;
import java.util.* ; // pour StringTokenizer
public class Decompose_Chaine
{ public static void main (String args[]) throws IOException
{ String forme, lieu, lieu2,reference ;
int i,j,initialisation=0,c=0,posmini=0;float Dim1, Dim2, Prix;
double S=0,patri=0,P=0;
boolean ajouter, permute;
Proprietaire[]p=new Proprietaire[100];
BufferedReader entree1 = new BufferedReader (new FileReader ("terrains.txt")) ;
while (true)
{ String ligneLue = entree1.readLine() ;
if (ligneLue == null) break ;
StringTokenizer k = new StringTokenizer (ligneLue, " ") ;
reference=k.nextToken();
ajouter=true;
if(initialisation==0){
p[0]=new Proprietaire(reference,0);
initialisation=1;
c=++c;
}
else{
for(i=0;i<c;++i){
if(reference.equals(p[i].reference)){
ajouter=false;
}
}
if(ajouter=true){
p[c]=new Proprietaire(reference,0);
++c;
}
}
}
entree1.close(); //APPAREMENT CA BUGGE ENTRE LE DEBUT ET ICI.
initialisation=0;
BufferedReader entree2 = new BufferedReader (new FileReader ("terrains.txt")) ;
while (true)
{ String ligneLue = entree2.readLine() ;
if (ligneLue == null) break ;
StringTokenizer l = new StringTokenizer (ligneLue, " ") ;
reference= l.nextToken();
forme= l.nextToken();
Dim1 = Float.parseFloat (l.nextToken()) ;
Dim2 = Float.parseFloat (l.nextToken()) ;
if (forme.equals("C")){
S=3.14*(Dim1*Dim1);
}
if (forme.equals("R")){
S=(Dim1*Dim2);
}
if (forme.equals("T")){
S=((Dim1*Dim2)/2);
}
lieu= l.nextToken();
BufferedReader entree3 = new BufferedReader (new FileReader ("Tarifs.txt")) ;
while (true)
{ String ligneLue2 = entree3.readLine() ;
if (ligneLue2 == null) break ;
StringTokenizer m = new StringTokenizer (ligneLue2, " ") ;
lieu2= m.nextToken();
Prix = Float.parseFloat (m.nextToken()) ;
if(lieu.equals(lieu2)){
P=Prix*(S/100);
}
}
if(initialisation==0){
p[0]=new Proprietaire(reference,P);
initialisation=1;
}
else{
for (i=0; i<5; i++){
if(reference.equals(p[i].reference)){
p[i].patri=p[i].patri+(P);
}
}
}
entree3.close () ;
}
entree2.close () ;
permute=true;
while(permute){
permute=false;
for(i=0; i<4; i++){
if(p[i].patri<p[i+1].patri){
Proprietaire temp=p[i];
p[i]=p[i+1];
p[i+1]=temp;
permute=true;
}
}
}
System.out.println("proprietaires classés dans l'ordre décroissant de patrimoine");
for(i=0; i<5; i++){
System.out.println(p[i].reference+"\t");
}
System.out.println("patrimoines correspondants");
for(i=0; i<5; i++){
System.out.println(p[i].patri);
}
}// Fin main()
} //Fin classe
Merci d'avance pour vos reponses parce que la c'est limite la crise!lool
alors voila, la j'ai un probleme que je ne sais pas resoudre, mais alors pas du tout (bon en meme temps jsuis débutant..)
Je fais un programme pour décomposer un fichier, et utiliser ses données.
Donc en fait j'ai un fichier de terrains, avec formes, dimensions, lieu ou ils se trouvent avec des references de proprietaires;
Ensuite j'ai un fichier avec les tarifs du metre carré selon le lieu.
Le but est d'afficher les biens de chaque proprietaire sachant que un mm proprietaire peut avoir plusieurs terrains dan sdifferents lieux.
Bref tout va bien, le proramme s'execute sans probleme,mais quand je demande de l'afficher, il m'affiche deux fois le meme proprietaire et m'en oublie un...(avec la premiere fois la bonne surface et la seconde, la surface de celui qui manque )
donc je ne sais pas comment faire.
J'ai essayé de localiser le probleme, on dirait qu'il ne lit pas le proprietaire manquant...
donc concernant les proprio ca donne:
reference forme, dimension1 dimension 2 Lieu
P231 C 12.75 0 Colmar
S304 R 15 20 1Obernai
P231 C 20 0 Barr
S104 R 57.5 52.35 Strasbourg
S442 T 23 32.60 Mulhouse
P231 C 21 0 Nancy
S442 R 73.25 37.10 Paris
P211 T 69.50 55.40 Laval
P231 C 61 0 Poitiers
et le programme:
import fr.insa.goepp.Lire;
import java.io.* ;
import java.util.* ; // pour StringTokenizer
public class Decompose_Chaine
{ public static void main (String args[]) throws IOException
{ String forme, lieu, lieu2,reference ;
int i,j,initialisation=0,c=0,posmini=0;float Dim1, Dim2, Prix;
double S=0,patri=0,P=0;
boolean ajouter, permute;
Proprietaire[]p=new Proprietaire[100];
BufferedReader entree1 = new BufferedReader (new FileReader ("terrains.txt")) ;
while (true)
{ String ligneLue = entree1.readLine() ;
if (ligneLue == null) break ;
StringTokenizer k = new StringTokenizer (ligneLue, " ") ;
reference=k.nextToken();
ajouter=true;
if(initialisation==0){
p[0]=new Proprietaire(reference,0);
initialisation=1;
c=++c;
}
else{
for(i=0;i<c;++i){
if(reference.equals(p[i].reference)){
ajouter=false;
}
}
if(ajouter=true){
p[c]=new Proprietaire(reference,0);
++c;
}
}
}
entree1.close(); //APPAREMENT CA BUGGE ENTRE LE DEBUT ET ICI.
initialisation=0;
BufferedReader entree2 = new BufferedReader (new FileReader ("terrains.txt")) ;
while (true)
{ String ligneLue = entree2.readLine() ;
if (ligneLue == null) break ;
StringTokenizer l = new StringTokenizer (ligneLue, " ") ;
reference= l.nextToken();
forme= l.nextToken();
Dim1 = Float.parseFloat (l.nextToken()) ;
Dim2 = Float.parseFloat (l.nextToken()) ;
if (forme.equals("C")){
S=3.14*(Dim1*Dim1);
}
if (forme.equals("R")){
S=(Dim1*Dim2);
}
if (forme.equals("T")){
S=((Dim1*Dim2)/2);
}
lieu= l.nextToken();
BufferedReader entree3 = new BufferedReader (new FileReader ("Tarifs.txt")) ;
while (true)
{ String ligneLue2 = entree3.readLine() ;
if (ligneLue2 == null) break ;
StringTokenizer m = new StringTokenizer (ligneLue2, " ") ;
lieu2= m.nextToken();
Prix = Float.parseFloat (m.nextToken()) ;
if(lieu.equals(lieu2)){
P=Prix*(S/100);
}
}
if(initialisation==0){
p[0]=new Proprietaire(reference,P);
initialisation=1;
}
else{
for (i=0; i<5; i++){
if(reference.equals(p[i].reference)){
p[i].patri=p[i].patri+(P);
}
}
}
entree3.close () ;
}
entree2.close () ;
permute=true;
while(permute){
permute=false;
for(i=0; i<4; i++){
if(p[i].patri<p[i+1].patri){
Proprietaire temp=p[i];
p[i]=p[i+1];
p[i+1]=temp;
permute=true;
}
}
}
System.out.println("proprietaires classés dans l'ordre décroissant de patrimoine");
for(i=0; i<5; i++){
System.out.println(p[i].reference+"\t");
}
System.out.println("patrimoines correspondants");
for(i=0; i<5; i++){
System.out.println(p[i].patri);
}
}// Fin main()
} //Fin classe
Merci d'avance pour vos reponses parce que la c'est limite la crise!lool
A voir également:
- Gros probleme de programmation
- Application de programmation - Guide
- Télécharger le programme de pmu - Télécharger - Médias et Actualité
- Fermer un programme de force - Guide
- Programmation envoi sms - Guide
- Impossible de programmer télécommande came ✓ - Forum Téléviseurs
4 réponses
Sans probleme!lool
alors ca donne:
public class Proprietaire {
String reference;
double patri;
/** Creates a new instance of Proprietaire */
public Proprietaire(String Reference, double Patrimoine) {
reference=Reference;
patri=Patrimoine;
}
}
une idée?
alors ca donne:
public class Proprietaire {
String reference;
double patri;
/** Creates a new instance of Proprietaire */
public Proprietaire(String Reference, double Patrimoine) {
reference=Reference;
patri=Patrimoine;
}
}
une idée?