Gestion d'un atelier de fabrication e JAVA

Fermé
dancer - Modifié le 1 juin 2020 à 08:59
KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 31 mai 2020 à 23:27
Bonjour,
je suis debutante en programmation POO en JAVA de ce fait je rencontre un problème au niveau de mon code pour mon projet de gestion d'un atelier de fabrication, plus precisemment dans la classe de calcul de fiabilité des machines.
je vous mets en dessous ce que j'ai pu écrire meme si il y a toujours quelques erreurs la dedans et surtout que je ne sais pas si ce que j'ai fait est juste.
svp veuillez m'aider la dessus j'en ai vrmnt besoin en urgence
merci.
Ps : c'est sous forme d'une interface graphique
le fichier est une liste de machine avec leur reference et la date et lheure de panne
import java.io.IOException;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.HashSet;
import static jdk.nashorn.internal.objects.NativeMath.min;

public class fiabilite extends javax.swing.JFrame {

    private Object afficher_machines_dispo;

    /**
     * Creates new form fiabilite
     */
    public fiabilite() {
        initComponents();
    }

    private void initComponents() {
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jTextField2 = new javax.swing.JTextField();
        jLabel3 = new javax.swing.JLabel();
        jTextField3 = new javax.swing.JTextField();
        jButton1 = new javax.swing.JButton();
        jLabel4 = new javax.swing.JLabel();
        jTextField4 = new javax.swing.JTextField();
        jButton2 = new javax.swing.JButton();
        jButton3 = new javax.swing.JButton();
        jLabel5 = new javax.swing.JLabel();
        jButton4 = new javax.swing.JButton();
        jLabel6 = new javax.swing.JLabel();
        texte = new javax.swing.JScrollPane();
        text = new javax.swing.JTextArea();
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        jLabel1.setText("La fiabilité peut etre calculée pour les machines dont la réfèrence est la suivante : ");
        jLabel2.setText("La fiabilité de la machine de réfèrence ");
        jTextField2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                reference_machine(evt);
            }
        });
        jLabel3.setText("est de :");
        jTextField3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                Valeur_fiabilite(evt);
            }
        });
        jButton1.setText("Calculer");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                Calculer_Fiabilite(evt);
            }
        });
        jLabel4.setText("Clasement des machines par ordre décroissant de fiabilité : ");
        jTextField4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                zone_classement(evt);
            }
        });
        jButton2.setText("Classer");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                classer(evt);
            }
        });
        jButton3.setText("Quitter");
        jButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                Quitter_fiabilité(evt);
            }
        });
        jLabel5.setText("(%)");
        jButton4.setText("Afficher");
        jButton4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                afficher_machines_dispo(evt);
            }
        });
        jLabel6.setText("nombre total des machines : 10 machines");
        text.setColumns(20);
        text.setRows(5);
        text.addAncestorListener(new javax.swing.event.AncestorListener() {
            public void ancestorMoved(javax.swing.event.AncestorEvent evt) {
            }

            public void ancestorAdded(javax.swing.event.AncestorEvent evt) {
                text(evt);
            }

            public void ancestorRemoved(javax.swing.event.AncestorEvent evt) {
            }
        });
        texte.setViewportView(text);
        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(
                                layout.createSequentialGroup().addContainerGap()
                                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup().addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                                        .addGroup(layout.createSequentialGroup().addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 408, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addComponent(jButton4))
                                                        .addGroup(layout.createSequentialGroup().addComponent(jLabel4).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addComponent(jButton2))
                                                        .addGroup(layout.createSequentialGroup().addComponent(jTextField4, javax.swing.GroupLayout.PREFERRED_SIZE, 196, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addComponent(jButton3))
                                                        .addGroup(layout.createSequentialGroup().addComponent(jLabel2).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, 63, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, 96, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(jLabel5).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 82, Short.MAX_VALUE).addComponent(jButton1)))
                                                        .addGap(22, 22, 22))
                                                .addGroup(layout.createSequentialGroup()
                                                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jLabel6).addComponent(texte, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                                                        .addGap(0, 0, Short.MAX_VALUE)))));
        layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup().addGap(14, 14, 14).addComponent(jLabel6).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(jButton4))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(texte, javax.swing.GroupLayout.PREFERRED_SIZE, 109, javax.swing.GroupLayout.PREFERRED_SIZE).addGap(11, 11, 11)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
                                        layout.createSequentialGroup()
                                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                        .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(jLabel3)
                                                        .addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(jButton1).addComponent(jLabel5))
                                                .addGap(18, 18, 18).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel4).addComponent(jButton2)).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                                .addComponent(jTextField4, javax.swing.GroupLayout.PREFERRED_SIZE, 134, javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addComponent(jButton3, javax.swing.GroupLayout.Alignment.TRAILING))
                        .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
        pack();
    }

    private void reference_machine(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
    }

    private void zone_classement(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
    }

    // afficher les machines a partir de mon fichier texte
    private void afficher_machines_dispo(java.awt.event.ActionEvent evt) {
    }

    // methode de calcul de fiabilité
    private void Calculer_Fiabilite(java.awt.event.ActionEvent evt) {
        Valeur_fiabilite.setText("");
        String a = reference_machine.getText();
        System.out.println(a);
        String Fichier = "fichier_fiabilité.txt";
        float Val = fiabilite_machine(Fichier, a);
        System.out.println(Val);
        Valeur_fiabilite.setText(String.valueOf(Val));
    }

    private void Quitter_fiabilité(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
        dispose();
    }

    // afficher les machines disponible dans le fichier
    private void text(javax.swing.event.AncestorEvent evt) {
        ArrayList<String> tab_dispo = new ArrayList<String>();
        String Fichier = "C://Users/NAZHA/Desktop/fichier_fiabilité.txt";
        tab_dispo = Machinedispo(Fichier);
        int i;
        for (i = 0; i < tab_dispo.size(); i++) {
            text.setText(text.getText() + "/n" + tab_dispo.get(i));
        }
    }

    // classement des machines par fiabilité
    private void classer(java.awt.event.ActionEvent evt) {
        zone_classement.setText("");
        String Fichier = "C://Users/NAZHA/Desktop/fichier_fiabilité.txt";
        ArrayList<Float> fiabilite = new ArrayList<Float>();
        ArrayList<String> machine_dispo = new ArrayList<String>();
        machine_dispo = Machinedispo(Fichier);
        for (String j : machine_dispo) {
            fiabilite.add(fiabilite_machine(Fichier, j));
        }
        String[] Tableau_nom = new String[machine_dispo.size()];
        float[] Tableau_fiabilite = new float[machine_dispo.size()];
        for (int i = 0; i < machine_dispo.size(); i++) {
            Tableau_nom[i] = machine_dispo.get(i);
            Tableau_fiabilite[i] = (fiabilite.get(i));
        }
        for (int i = 0; i < machine_dispo.size(); i++) {
            System.out.println(Tableau_nom[i]);
            System.out.println(Tableau_fiabilite[i]);
        }
        int debut = 0;
        int pos_min;
        while (debut < machine_dispo.size()) { // tri
            pos_min = min(Tableau_fiabilite, debut, machine_dispo.size());
            permute(Tableau_fiabilite, Tableau_nom, debut, pos_min);
            debut++;
        }
        System.out.println();
        for (int i = 0; i < machine_dispo.size(); i++) {
            System.out.println(Tableau_nom[i] + " " + Tableau_fiabilite[i]);
            zone_classement.setText(zone_classement.getText(+"\n" + Tableau_nom[i] + " " + Tableau_fiabilite[i]));
        }
    }

    private void Valeur_fiabilite(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
    }

    public static void main(String args[]) {
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(fiabilite.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(fiabilite.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(fiabilite.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(fiabilite.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        java.awt.EventQueue.invokeLater(() -> {
            new fiabilite().setVisible(true);
        });
        System.out.println("-------------fiabilité------------------");
    }

    // calcul de fiabilite de machine en fonction des evenement dans le fichier
    static float fiabilite_machine(String fichier, String machine) {
        float heures_annee = (366 * 14);
        String[] attributs;
        ArrayList<String> evenement = new ArrayList<>();
        ArrayList<String> date = new ArrayList<>();
        try (BufferedReader machines = new BufferedReader(new FileReader(fichier))) {
            String lignelue = null; // relevé des evenement et dates dune machine specifique
            while ((lignelue = machines.readLine()) != null) {
                attributs = lignelue.split(" ");
                String a = attributs[3];
                if (a.equals(machine)) {
                    evenement.add(attributs[4]);
                    date.add(attributs[0] + " " + attributs[1] + " " + attributs[2]);
                }
            }
        } catch (FileNotFoundException err) {
            System.out.println("Erreur : le fichier n'existe pas!\n" + err);
        } catch (IOException err) {
            System.out.println(err);
        }
        int y = 0;
        float duree_actif1 = 0;
        float duree_actif1a = 0; // a pour des journees de 14h car duree de fab 6-20h
        float duree_actif2 = 0;
        float duree_actif2a = 0;
        float duree_actif3 = 0;
        float duree_actif3a = 0;
        for (String j : evenement) {
            // calcul du debut de fonct jusquau 1er arret
            if (y == 0) {
                duree_actif1 = (DiffHeures(date.get(y), "00012021 00:00"));
                duree_actif1a = duree_actif1 - (int) (duree_actif2 / 24) * 10 - 6;
                System.out.println("duree actif 1 : " + duree_actif1a);
            }
            // calcul du nombre dheure entre un depart et un arret
            if (j.equals("D")) {
                String temps1 = (date.get(y));
                System.out.println(temps1);
                int z = y + 1;
                if (z < evenement.size()) {
                    String temps2 = (date.get(z));
                    System.out.println(temps2);
                    duree_actif2 = duree_actif2 + DiffHeures(temps2, temps1);
                    duree_actif2a = duree_actif2 - (int) (duree_actif2 / 24) * 10;
                    System.out.println("duree actif 2 : " + DiffHeures(temps2, temps1);
                    // caclcul de nbre dheure sil y a depart jusqu'a fin dannee
                    if ((y == evenement.size() - 1 && (evenement.get(evenement.size() - 1)).equals("D"))) {
                        duree_actif3 = DiffHeures("00012021 00:00", date.get(evenement.size() - 1));
                        duree_actif3a = duree_actif3 - (int) (duree_actif2 / 24) * 10;
                        System.out.println("duree actif 3 : " + duree_actif3a);
                    }
                    y++;
                }
                // duree total de fonctionnment pendant un an
                float duree_actif_totale = duree_actif1a + duree_actif2a + duree_actif3a;
                float heure_annee = 0;
                return (duree_actif_totale / heure_annee) * 100;
            }
        }
        return 0;
    }

    // renvoie tableau des machines dispo
    static ArrayList Machinedispo(String fichier) {
        String[] attributs;
        ArrayList<String> machinedispo = new ArrayList<>();
        try {
            BufferedReader machine = new BufferedReader(new FileReader(fichier));
            String lignelue;
            // remplissage du tableau machinedispo
            while ((lignelue = machine.readLine()) != null) {
                attributs = lignelue.split(" ");
                machinedispo.add(attributs[3]);
            }
            // suppression des doublons
            HashSet h = new HashSet(machinedispo);
            machinedispo.clear();
            machinedispo.addAll(h);
        } catch (IOException ex) {
            Logger.getLogger(fiabilite.class.getName()).log(Level.SEVERE, null, ex);
        }
        return null;
    }

    // Variables declaration - do not modify
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton3;
    private javax.swing.JButton jButton4;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JTextField jTextField2;
    private javax.swing.JTextField jTextField3;
    private javax.swing.JTextField jTextField4;
    private javax.swing.JTextArea text;
    private javax.swing.JScrollPane texte;
    // End of variables declaration
}
Configuration: Windows / Chrome 83.0.4103.61
A voir également:

1 réponse

KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
31 mai 2020 à 23:27
Bonjour,

"je rencontre un problème au niveau de mon code", "veuillez m'aider la dessus"

Pour espérer une réponse il faudrait qu'il y ait une question... Quel est ton problème, sur quoi veux tu que l'on t'aide ?
0