coulva
Messages postés1Date d'inscriptionlundi 15 novembre 2010StatutMembreDernière intervention26 novembre 2010
-
26 nov. 2010 à 12:08
cs_laurent1024
Messages postés987Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention30 août 2012
-
26 nov. 2010 à 19:09
Bonjour,
J'ai un programme a réaliser qui calcul le temps d'utilisation d'une salle.
J'ai mis à peu près tout ce qu'il fallait mais je ne trouve pas mon erreur.
import java.io.* ;
import java.util.* ;
public class Main {
public static void main(String[] args) throws IOException
{
long date;
String enseignement;
int hd;
int hf;
String matiere;
String salle;
String classe;
String professeur;
String nomfich ;
int var=0;
String demande;
Activite [] tab = new Activite [100];
nomfich=Lire_chaine.readString("donner le nom du fichier à lire (exemple: Activite.txt):");
BufferedReader entree = new BufferedReader (new FileReader (nomfich));
System.out.println("Analyse du fichier texte en cours...");
while(true)
{String ligneLue = entree.readLine() ;
StringTokenizer tok = new StringTokenizer(ligneLue, " ");
if(ligneLue == null) break;
date=Long.parseLong(tok.nextToken());
enseignement=tok.nextToken();
hd=Integer.parseInt(tok.nextToken());
hf=Integer.parseInt(tok.nextToken());
matiere=tok.nextToken();
salle=tok.nextToken();
classe=tok.nextToken();
professeur=tok.nextToken();
tab[var]= new Activite(date, enseignement, hd ,hf ,matiere ,salle, classe, professeur);
var=var+1;
int i;
int tu=0;
System.out.println("Entrez le nom d'une salle");
demande = Lire.S() ;
for(i=0 ; i<=var ; i++)
{
if(tab[i].salle.equals(demande))
// demande le numero de la salle pour connaitre le temps d'utilisation
{
tu= tu + (tab[i].hf - tab[i].hd);
// ajoute des durées
}
System.out.println("la salle" + tab[i].salle + "a été utilisé pendant"+tu);
// affiche le résultat
}
int w;
int ttype=0;
int taux=0;
String demande2 ;
System.out.println("Entrer le type d'enseignement pour calculer son pourcentage dans la salle precedente (Ex : TD)");
demande2 = Lire.S() ;
for(w=0 ; w<=var ; w++)
{
if((tab[w].enseignement.equals(demande2))&&(tab[w].salle.equals(demande)))
{
ttype= ttype + (tab[w].hf - tab[w].hd);
}
taux = ttype/tu ;
System.out.println("Dans la salle" + tab[w].salle + ", il y a eu" + taux + "% de" + tab[w].enseignement);
}
entree.close();
}
}
}
Avec ma classe activité qui est :
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package tp3;
/**
*
* @author 4trumjor
*/
public class Activite
{
long date;
String enseignement;
int hd;
int hf;
String matiere;
String salle;
String classe;
String professeur;
Activite(long a, String b, int c, int d, String e, String f, String g, String h)
{
date=a;
enseignement=b;
hd=c;
hf=d;
matiere=e;
salle=f;
classe=g;
professeur=h;
}
}
Et bien sur la classe Lire.java ouverte.
L'erreur viendrait apparemment de "demande = Lire.S();" mais je ne comprends pas pourquoi ...
Pourriez vous m'aider ?