Info - Gestion
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le deal à ne pas rater :
Pokémon EV06 : où acheter le Bundle Lot 6 Boosters Mascarade ...
Voir le deal

Le projet .

5 participants

Aller en bas

Le projet        . Empty Le projet .

Message  L'alchimiste Dim 31 Mai - 22:42

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
L'alchimiste
L'alchimiste

Messages : 65
Date d'inscription : 06/01/2009
Age : 35

Revenir en haut Aller en bas

Le projet        . Empty Re: Le projet .

Message  Kevin Dim 31 Mai - 23:08




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; i for(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 Smile, 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
Kevin

Messages : 51
Date d'inscription : 02/10/2008
Age : 35

Revenir en haut Aller en bas

Le projet        . Empty Re: Le projet .

Message  L'alchimiste Dim 31 Mai - 23:55

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 ><
L'alchimiste
L'alchimiste

Messages : 65
Date d'inscription : 06/01/2009
Age : 35

Revenir en haut Aller en bas

Le projet        . Empty Re: Le projet .

Message  rich Lun 1 Juin - 0:34

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.
rich
rich

Messages : 162
Date d'inscription : 23/09/2008
Age : 36
Localisation : Liège

Revenir en haut Aller en bas

Le projet        . Empty Re: Le projet .

Message  Admin Lun 1 Juin - 14:20

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 Very Happy
Admin
Admin
Admin

Messages : 428
Date d'inscription : 11/09/2008
Age : 35
Localisation : Mortroux

https://info-gestion.1fr1.net

Revenir en haut Aller en bas

Le projet        . Empty Re: Le projet .

Message  L'alchimiste Lun 1 Juin - 17:09

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é +-.
L'alchimiste
L'alchimiste

Messages : 65
Date d'inscription : 06/01/2009
Age : 35

Revenir en haut Aller en bas

Le projet        . Empty Re: Le projet .

Message  Geroc Lun 1 Juin - 23:40

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

Revenir en haut Aller en bas

Le projet        . Empty Re: Le projet .

Message  L'alchimiste Mar 2 Juin - 0:34

Bah cest la plus belle j'avoue XD
Je ne fais pas attention quand j'ecris parfois XD
L'alchimiste
L'alchimiste

Messages : 65
Date d'inscription : 06/01/2009
Age : 35

Revenir en haut Aller en bas

Le projet        . Empty Re: Le projet .

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser