Partage
  • Partager sur Facebook
  • Partager sur Twitter

java

encore une calculatrice

    3 mars 2006 à 19:30:13

    Voici, je sais, encore une calculatrice, peuh :colere:
    Mais vous savez, tous les débutants aiment passés par là et surtout, pour pouvoir m'améliorer, j'aimerais que vous fassiez des remarques où même que vous me proposiez quelques astuces... ;);)
    import java.io.*;
    import java.lang.String;
    public class Calculatrice{
            public static void main(String arg[]) throws IOException{
                    String rep;
                    boolean isdecl;
                    isdecl=false;
                    Calculatrice kalk;
                    InputStreamReader isr;
                    BufferedReader bfr;
                    isr=new InputStreamReader(System.in);
                    bfr=new BufferedReader(isr);
                    do{
                    System.out.println("   MENU DE LA CALCULATRICE");
                    System.out.println("   1. Entrer les donnees");
                    System.out.println("   2. Addition");
                    System.out.println("   3. Soustraction");
                    System.out.println("   4. Division");
                    System.out.println("   5. Multiplication");
                    System.out.println("   Q/q. Quitter l'application");
                    System.out.print("   Entrer votre choix ");
                    String ch = bfr.readLine();
                    char choix=ch.charAt(0);
                    if( choix == 'q'||choix == 'Q'){ // QUITTER L'APPLI
                                    System.out.println("\n\t\t    \3 Merci et abientot \3");
                                    System.exit(1);
                    }
                    if( (choix != '1' && (isdecl == false))) System.out.println("\n\n\1 SAISSEZ LES DONNEES AVANT  DE FAIRE VOTRE CHOIX \1\n");
                    else{
                    switch(choix){
                            case '1':System.out.print("Entrer le premier nombre ");
                            String a=bfr.readLine();
                            float s1=Float.parseFloat(a);
                            System.out.print("Entrer le deuxieme nombre ");
                            String b=bfr.readLine();
                            float s2=Float.parseFloat(b);
                            kalk = new Calculatrice(s1,s2);
                            isdecl = true;
                            break;
                            case '2':System.out.println("resultat de l'addition "+addition());
                            break;
                            case '3':System.out.println("resultat de la soustraction "+soustraction());
                            break;
                            case '4':division();
                            break;
                            case '5':System.out.println("resultat de la multiplication "+multiplication());
                            break;
                            case 'q':System.exit(-1);
                            break;
                            }
                    }
                                    System.out.println("Voulez vous continuer?(o/n)");
                                    rep = bfr.readLine();
            }
            while(rep.equalsIgnoreCase("o")) ;
    }
            static private float a,b;
            public Calculatrice(float a, float b){
                    this.a=a;
                    this.b=b;
            }
            static private float addition(){
                    return a+b;
            }
            static private float soustraction(){
                    return a-b;
            }
            static private void division(){
                    if (b==0) System.out.println(" Attention on ne divise pas par zero ");
                    else System.out.println(a/b);
                    }
            static private float multiplication(){
                    return a*b;
            }
    }
    • Partager sur Facebook
    • Partager sur Twitter
      3 mars 2006 à 22:12:00

      Des améliorations ?
      Faudrait que l'utilisateur n'ai à rentrer que ses opérations, par exemple "5*(2-3) + 10" et que ça donne le résultat :-°
      • Partager sur Facebook
      • Partager sur Twitter
        3 mars 2006 à 22:15:17

        déjà pour les entrée aux clavier je passerais par la classe scanner (dans le package util) qui simplifiera beaucoup les entrée et sortie. Ensuite l'idéal serais d'avoir une logique je rentre un nombre puis un opérateur puis le second nombre et limite penser à pouvoir récupérer le résultat et le réutiliser
        • Partager sur Facebook
        • Partager sur Twitter
          4 mars 2006 à 14:26:43

          Merci pour les remarques, je vais essayer d'améliorer ma calco, mais n'oubliez surtout pas que je suis novice en java...
          • Partager sur Facebook
          • Partager sur Twitter
            4 mars 2006 à 20:52:29

            on oublie pas ;) , d'ailleurs si tu as des questions on sera ravi d'y répondre (sauf si ca se trouve dans la javadoc en toute lettre :p )
            • Partager sur Facebook
            • Partager sur Twitter
              4 mars 2006 à 23:58:56

              pour le fun, je ferais j'enleverais les static. Bref faire un bonne objet de base dans les formes.
              je genererais une exception avec la division par zero.
              je passerais les methode en publique et je ne mettrais pas le main dans la classe calculatrice mais dans une classe de test

              un exemple de calculatrice de base realiser pour un cours java
              (note: je n'ai pas generé d'exception pour la division je devrais le faire)

              /*
               * Created on 26 nov. 2005
               */

              package sdz.calculatrice;

              /**
               * @author pierrot
               *
               * Cette classe permet de simuler les bases d'une calculatrice
               * Cette classe pourtant simple est un concentré de petite babiole que l'on peut retrouver dans une classe en Java
               */

              public class Calculatrice {
                     
                      /**
                       * Cette attribut est le resultat du calcul courant
                       * Nous allons essentiellement travailler avec des nombres flottant‚ d'ou le float
                       * Cette variable est declare en "protected". Ceci indicte qu'elle n'est visible
                       * que part la classe Calculatrice et ses classes héritiére
                       * (voir chapitre sur la notion d'héritage)
                       */

                      protected float resultat;
                     
                      /*
                       * Cette attribut est le nombre avec lequel commence tout calcul.
                       * C'est un nombre floattant‚
                       * donc pouvant avoir des chiffres apres la virgule
                       * Cette variable est déclarée en "private" car il n'est accessible
                       * qu'au sein de la classe Calculette
                       */

                      private float nombreDeDepart;
                     

                     
                      /**
                       * Ceci est Un Constructeur de la classe Calculatrice.
                       * Calculatrice cal = new Calculatrice(0);
                       * Alors ce sera ce constructeur qui sera appelé
                       * et son code qui sera éxécuté
                       * Le constructeur est public. donc il peut etre utiliser en dehors de la classe.
                       * Est ce qu'un constructeur nom visible par l'exterieur à un sens?
                       * Oui cela peu en avoir. Mais nous verrons ça plus tard.
                       * Ainsi si on fait un:
                       */

                      public Calculatrice(float nombreDepart){
                              // on asigne au attribut de la classe Calculatrice
                              this.nombreDeDepart = nombreDepart;
                              // on initialise le resultat
                              this.resultat = this.nombreDeDepart;
                      }
                     
                      /**
                       * Ceci est encore un autre constructeur de la classe Calculatrice
                       * On reconnait le consctructeur car il ne retourne aucune valeur
                       * et possede le meme nom que la classe‚ les majuscule sont importantes
                       * Une classe peut avoir plusieur consctructeur.
                       * La seule contrainte est que les différents constructeurs est un type ou un nombre de paramètres diffèrents
                       * Ainsi on peut avoir:
                       *      public Calculatrice(float nombreDepart)
                       *      public Calculatrice(int nombreDepart)
                       * Mais on ne peut avoir:
                       *           public Calculatrice(float nombreDepart)
                       *           public Calculatrice(float nombreDepart)
                       */

                      public Calculatrice(){
                              //Cette drole de notation permet d'appelé un autre constructeur de la Classe
                              // ce qui permet de ne pas repeter du code deja existant
                              // ici nous initialisons a 0 la variable "nombreDepart"
                              // "this" designe l'objet courant.
                              this(0);
                      }
                     
                      public void reset(){
                              this.resultat = this.nombreDeDepart;
                      }
                     
                      public void additionner(float a){
                              this.resultat += a;
                      }
                     
                      public void soustraire(float a){
                              this.resultat –= a;
                      }
                     
                      public void multiplier(float a){
                              this.resultat *= a;
                      }
                     
                      public void diviser (float a){
                              this.resultat = this.resultat/a;
                      }
                     
                      public float getResultat(){
                              return this.resultat;
                      }

              }

              • Partager sur Facebook
              • Partager sur Twitter
                6 mars 2006 à 13:07:52

                J'intègre les différentes remarques dans le programme et je le réaffiche. Seuleument, c'est pas forcément évident pour moi, mais soyez rassurés, j'aime ça...
                • Partager sur Facebook
                • Partager sur Twitter

                java

                × 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