Le projet .
5 participants
Page 1 sur 1
Le projet .
Alors avec plusieurs apparemment pas moyen de faire marcher le programme :p
Enfin cest l'importation de Tache qui es impossible XD
Si jai bien suivi on a envoyé un email a swinen; mais bon sil ne repond pas XD
Enfin cest l'importation de Tache qui es impossible XD
Si jai bien suivi on a envoyé un email a swinen; mais bon sil ne repond pas XD
L'alchimiste- Messages : 65
Date d'inscription : 06/01/2009
Age : 35
Re: Le projet .
package pert;
import java.io.*;
import java.nio.charset.Charset;
import SLPack.SLForm;
import pert.Tache;
public class Main extends SLForm
{
public static final int MAX_TACHE=50;
private Tache[] taches = new Tache[MAX_TACHE];
private String[][] table;
private int nbre_taches = 0;
public Main(String _fileName) {
chargerFichier(_fileName);
/* Construction de la fenêtre */
setDimension(6,6,80);
setTitle("PPM: PERT");
addArray("tbDonnee", table, 0,0,6,4);
addButton("btCalculer", "Calculer", 5,4);
addButton("btQuitter", "Quitter", 5,5);
setVisible(true);
}
// Chargement du fichier dans l'interface graphique
public void chargerFichier(String _fileName)
{
int titre = -2;
table = new String[MAX_TACHE][Tache.NOMBRE_CHAMPS];
try {
String ligne;
BufferedReader in = new BufferedReader(new FileReader("Programmation.csv"));
ligne = in.readLine();
while(ligne != null) {
if(titre > 0) { //quand il sera a 0 on aura passe les 3lignes de titre
table[nbre_taches++] = ligne.split(";", Tache.NOMBRE_CHAMPS);
}
ligne = in.readLine();
titre++;
}
System.out.println("[chargerListe] nbre_taches = " + nbre_taches);
} catch(IOException ex) {
ex.printStackTrace();
}
}
// donnee -> tache
public Tache[] chargerListe(String[][] donnee) {
Tache[] result = new Tache[1+nbre_taches];
for(int i=1; i< 1+nbre_taches; ++i) {
result[i] = new Tache(donnee[i-1]);
}
return result;
}
// Place dans la diagonale supérieure des valeurs -1
public void initialiserMatrice(int[][] matrice) {
for(int i=1; ifor(int j=i+1; j matrice[i][j] = -1;
}
// tache -> matrice (tableau -> matrice)
public int chargerMatrice(Tache[] liste, int[][] matrice) {
int nbreEtape = 0;
for(int i=1; i<=nbre_taches; ++i) {
matrice[liste[i].obtEtapeInitiale()][liste[i].obtEtapeFinale()] = liste[i].obtDuree();
nbreEtape = (liste[i].obtEtapeFinale()>nbreEtape?liste[i].obtEtapeFinale():nbreEtape);
}
return nbreEtape;
}
// matrice -> tache (matrice -> tableau)
public void dechargerMatrice(Tache[] liste, int[][] matrice) {
for(int i = 1; i<=nbre_taches; ++i)
calculerLigne(matrice, liste[i]);
}
public void calculerLigne(int[][] matrice, Tache tache) {
tache.metDebut(Tache.PLUS_TOT, matrice[tache.obtEtapeInitiale()][0]);
tache.metFin(Tache.PLUS_TARD, matrice[0][tache.obtEtapeFinale()]);
tache.metDebut(Tache.PLUS_TARD, tache.obtFin(Tache.PLUS_TARD) - tache.obtDuree());
tache.metFin(Tache.PLUS_TOT, tache.obtDebut(Tache.PLUS_TOT) + tache.obtDuree());
tache.metCritique(tache.obtFin(Tache.PLUS_TARD) - tache.obtDebut(Tache.PLUS_TOT) - tache.obtDuree()==0);
}
// tableau -> affichage
String[][] produireListe(Tache[] liste) {
String[][] donnee = new String[liste.length-1][Tache.NOMBRE_CHAMPS];
for(int i=1; i<=nbre_taches; ++i) {
donnee[i-1] = liste[i].versTableau(); //methode renvoi un tableau de String
}
return donnee;
}
public void calculer_debuts(int matrice[][], int nbreEtapes) {
matrice[1][0] = 0;
for(int j=2; j<=nbreEtapes; ++j)
{
matrice[j][0] = 0;
for(int i=1; i<=j-1; i++)
if(matrice[i][j] != -1)
matrice[j][0] = matrice[i][0]+matrice[i][j]>matrice[j][0]?matrice[i][0]+matrice[i][j]:matrice[j][0];
}
}
public void calculer_fins(int matrice[][], int nbreEtapes) {
matrice[0][nbreEtapes] = matrice[nbreEtapes][0];
for(int i=nbreEtapes-1; i>=1; i--) {
matrice[0][i] = matrice[nbreEtapes][0];
for(int j=nbreEtapes;j>=i+1;j--)
if(matrice[i][j] != -1)
matrice[0][i] = matrice[0][j]-matrice[i][j]}
}
public void afficherMatrice(int matrice[][], int nbreEtapes) {
for(int i=0; i<=nbreEtapes;++i)
{
for(int j=0;j<=nbreEtapes;++j)
System.out.printf("%4d ",matrice[i][j]);
System.out.println(" ");
}
}
public String[][] calculePERT(String[][] donnee) {
// Démarre le calcul de PERT en fonction des données dans le tableau.
int nbreEtapes;
int[][] matrice = new int[MAX_TACHE][MAX_TACHE];
Tache[] liste_tache = new Tache[1+nbre_taches];
liste_tache = chargerListe(donnee);
initialiserMatrice(matrice);
nbreEtapes = chargerMatrice(liste_tache, matrice);
calculer_debuts(matrice, nbreEtapes);
calculer_fins(matrice, nbreEtapes);
afficherMatrice(matrice, nbreEtapes);
dechargerMatrice(liste_tache, matrice);
return(produireListe(liste_tache));
}
public void action(String _ev) {
if(_ev.equals("btQuitter"))
quit();
else if(_ev.equals("btCalculer")) {
String[][] donnee = getStringTable("tbDonnee");
donnee = calculePERT(donnee);
setStringTable("tbDonnee", donnee);
}
}
public static void main(String[] args) {
new Main("c:\\temp\\petrole.csv");
}
}
Moi j'y suis arrive en modifiant quelques lignes.
Un C/C devrai fonctionner , par contre tu dois changer au niveau de cette ligne le nom du fichier csv qui se trouve dans ton projet
BufferedReader in = new BufferedReader(new FileReader("Programmation.csv"));
Kevin- Messages : 51
Date d'inscription : 02/10/2008
Age : 35
Re: Le projet .
Oui cest bon.
Mais jetais arriver à ce quil prenne le pack Tache mais pas moins de rouver ou etait la fonction appelait une fenetre (fichier entree et fichier de sortie)
XD
Tu sais me dire les lignes Vu qu on risque davoir celui la mardi ><
Mais jetais arriver à ce quil prenne le pack Tache mais pas moins de rouver ou etait la fonction appelait une fenetre (fichier entree et fichier de sortie)
XD
Tu sais me dire les lignes Vu qu on risque davoir celui la mardi ><
L'alchimiste- Messages : 65
Date d'inscription : 06/01/2009
Age : 35
Re: Le projet .
Eh les gars c'est bien gentil, mais c'est pas en étudiant du code par coeur que ça marchera, essayez de le faire et postez vos solutions, sinon vous allez vous faire niquer à l'examen pour peu qu'il change un peu la forme du code (du moins si j'ai bien compris le dernier message).
Et en bonus track, celui qui sait décoder la phrase exacte du message précédent gagne une bouteille de mousseux et un jambon d'Ardenne.
Et en bonus track, celui qui sait décoder la phrase exacte du message précédent gagne une bouteille de mousseux et un jambon d'Ardenne.
rich- Messages : 162
Date d'inscription : 23/09/2008
Age : 36
Localisation : Liège
Re: Le projet .
LOL
En effet, vaut mieux savoir ce que le code fait... autrement dit, le lire ligne par ligne et savoir ce qui se passe à chaque ligne..
Ayant un peu regarder le programme, il n'est pas vraiment des plus complexes, suffit vraiment de lire
En effet, vaut mieux savoir ce que le code fait... autrement dit, le lire ligne par ligne et savoir ce qui se passe à chaque ligne..
Ayant un peu regarder le programme, il n'est pas vraiment des plus complexes, suffit vraiment de lire
Re: Le projet .
Oui excusez moi pour mon bon Français XD
Sinon en fêtes, ben le programme on l'a tous fait. Mais d'une manière différente. Et le jour de l'examen, on récupère le code de monsieur swinen qu'on devra modifier:/. Et à quelques liges prêt. c'est celui que Kevin à poster au-dessus.
E j'aimerai bien savoir les lignes qu'il a changé +-.
Sinon en fêtes, ben le programme on l'a tous fait. Mais d'une manière différente. Et le jour de l'examen, on récupère le code de monsieur swinen qu'on devra modifier:/. Et à quelques liges prêt. c'est celui que Kevin à poster au-dessus.
E j'aimerai bien savoir les lignes qu'il a changé +-.
L'alchimiste- Messages : 65
Date d'inscription : 06/01/2009
Age : 35
Re: Le projet .
En "fêtes"? Je me demande quand même ou tu as trouvé ça. C'est la nouvelle orthographe?
Geroc- Messages : 29
Date d'inscription : 02/10/2008
Age : 37
Localisation : Liers
Re: Le projet .
Bah cest la plus belle j'avoue XD
Je ne fais pas attention quand j'ecris parfois XD
Je ne fais pas attention quand j'ecris parfois XD
L'alchimiste- Messages : 65
Date d'inscription : 06/01/2009
Age : 35
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|