Partage
  • Partager sur Facebook
  • Partager sur Twitter

projet programmation

    9 décembre 2010 à 20:44:26

    bonjour et merci de vous intersser a mon probleme, qui est le suivant:
    je suis étudiant à l'iut de nancy et j'ai un projet a réaliser qui consiste a gérer le matériel informatique d'une entreprise.

    j'ai réalisé les classes de départ ainsi qu'une autre, qui est une classe 'inventaire' qui doit me permettre d'ajouter du matériel ainsi que d'en retirer, afficher le contenu du tableau, et le statu de garantie.

    la voici donc :

    import java.util.Date;
    import java.util.Calendar;
    import java.util.GregorianCalendar;
    import java.text.SimpleDateFormat;

    public class Inventaire{
    private Materiel [] listeMateriel;
    private int nbMateriel ;
    public static int i=0;

    /*Creation de l'inventaire*/

    Inventaire (int t){
    nbMateriel = t ;
    listeMateriel=new Materiel [nbMateriel];
    }

    public int getNbMateriel(){
    return nbMateriel;
    }

    /*Méthode d'ajout dans l'inventaire*/

    public void ajout (Materiel m ){
    listeMateriel[i]=m;
    i++;
    }

    /*Méthode de suppression dans l'inventaire*/

    public void suppression (Materiel m){
    boolean trouve=false;
    while (!trouve && i<=nbMateriel-1)
    if (m==listeMateriel[i]){
    trouve=true;
    listeMateriel[i]=null;
    i--;
    for (int j=i;j<nbMateriel-1;j++)
    listeMateriel[j]=listeMateriel[j+1] ;
    }else{
    i++;
    }
    }
    public void afficheGarantie(){
    Calendar cal = new GregorianCalendar();
    for(int i=0;i<nbMateriel;i++){
    long date_jour=new Date().getTime() ;
    cal.setTime(listeMateriel[i].getDate());
    int gar= this.listeMateriel[i].getGarantie();
    cal.add(Calendar.MONTH, gar);
    Date date_fin = cal.getTime();
    date_jour = date_fin.getTime() - date_jour ;
    if (date_jour/1000/86400>0){
    System.out.println("Il reste au materiel numero "+listeMateriel[i].getIdentifiant()+" une garantie de "+(date_jour/1000/86400)+" jours");
    }else{
    if(date_jour/1000/86400==0){
    System.out.println("La garantie du materiel numero "+listeMateriel[i].getIdentifiant()+" expire aujourd'hui");
    }else{
    System.out.println("La garantie du materiel numero "+listeMateriel[i].getIdentifiant()+" a expire depuis " +(date_jour/1000/86400 )+" jours");
    }
    }
    }
    }


    /*Méthode d'affichage de l'ensemble de l'inventaire*/

    public void affiche ()
    {
    for (int i=1;i<=nbMateriel-1;i++)
    {
    System.out.println (listeMateriel[i]);
    }
    }



    public String toString ()
    {
    String s="L'inventaire est constitue d'un tableau contenant "+nbMateriel+" elements";
    return s;
    }
    }

    cependant je doit faire marcher un fichier 'Test2' qui est le suivant :

    public class Test2 {

    public static void main(String[] args) {
    /* Création d'un ordinateur portable
    * - acheté le 15/09/2008
    * - au prix de 1200 EUR
    */
    OrdiPortable op1 = new OrdiPortable("15/09/2008", 1200);

    // Affichage de l'identifiant attribué (un entier)
    System.out.println(op1.getIdentifiant());

    /* Stockage d'autres informations sur l'ordinateur portable.
    * Ces informations peuvent changer au cours de la vie du matériel,
    * elles sont donc renseignées séparément.
    */
    // une garantie de 36 mois
    op1.setGarantie(36);

    // installé sous Windows XP Pro
    op1.setOS("Windows XP Pro");

    // attribué à l'utiliseur "Olivier Durand"
    op1.setUtilisateur("Olivier Durand");

    // affichage de l'ensemble des informations sur l'ordinateur portable
    System.out.println(op1);

    /* Création d'un poste fixe */
    PosteFixe pf1 = new PosteFixe("09/12/2008", 800);
    pf1.setGarantie(48);
    pf1.setBureau("B120");
    pf1.setOS("Ubuntu Linux 10.04");
    System.out.println(pf1);

    /* Ajout d'un écran */
    Ecran e1 = new Ecran("10/12/2008", 100);
    e1.setGarantie(48);
    e1.setPosteFixe(pf1);
    System.out.println(e1);

    /* Creation d'une imprimante */
    Imprimante i1 = new Imprimante("15/02/2010", 200, "HP LaserJet 420");
    i1.setGarantie(24);
    System.out.println(i1);

    /* Creation d'un scanner. La classe Scanner existe déjà,
    * donc on utilise le nom PeriphScanner. */
    PeriphScanner s1 = new PeriphScanner("15/04/2006", 75, "Canon ColorScan II");
    s1.setGarantie(36);
    System.out.println(s1);


    /******** Fin test 1 *********/

    // Création d'un inventaire. Au plus, il pourra stocker 100 matériels.
    Inventaire inv = new Inventaire(100);

    /* Ajout de matériels */
    inv.ajout(op1);
    inv.ajout(pf1);
    inv.ajout(e1);
    inv.ajout(i1);
    inv.ajout(s1);

    /* Suppression d'un matériel */
    inv.suppression(i1);

    /* Affichage de l'ensemble de l'inventaire */
    inv.affiche();

    /* Affichage l'ensemble de l'inventaire avec leur statut de garantie */
    inv.afficheGarantie();
    }
    }

    cependant quand j'execute 'Test2' j'ai une grande liste de 'null' qui saffiche et rien ne s'ajoute ni se supprime... pouvez vous m'aider ? merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
      9 décembre 2010 à 20:44:26

      Le message qui suit est une réponse automatique activée par un modérateur.
      Les réponses automatiques permettent d'éviter aux modérateurs d'avoir à répéter de nombreuses fois la même chose, et donc de leur faire gagner beaucoup de temps.
      Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter le modérateur en question par MP.


      Merci d'utiliser les balises de code


      Bonjour,

      Les forums du Site du Zér0 disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source.
      Vous avez posté un code source sans utiliser cette fonctionnalité. Pourriez-vous éditer votre message en entourant votre code des balises <code > et </code > ?

      Cela aura pour effet de "colorer" votre code et donc d'en faciliter grandement la lecture. Vous aurez ainsi beaucoup plus de chances d'avoir des réponses.

      Voici un exemple de code non coloré avec la balise "citation" (mauvais exemple) :

      Citation

      int main(int argc, char *argv[])
      {
      long choixOperation;

      printf("Choisissez l'operation a effectuer");
      /* etc. */
      }



      Voici maintenant le même code coloré, si vous aviez utilisé la balise "code" (bon exemple) :

      int main(int argc, char *argv[])
      {
          long choixOperation;
      
          printf("Choisissez l'operation a effectuer");
          /* etc. */
      }
      


      C'est plus clair n'est-ce pas ? :)
      N'hésitez pas à éditer votre message pour changer la balise afin de colorer votre code.

      Plus d'informations à ce sujet


      Merci de votre compréhension :)
      Les modérateurs.
      • Partager sur Facebook
      • Partager sur Twitter
      Pwaite.net > Transfert de crédit téléphonique et monétisation de site web                                                                                        « I am awesome »

      projet programmation

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown