Partage
  • Partager sur Facebook
  • Partager sur Twitter

[JAVA] Mon premier programme

Qu'est ce que vous en pensez ?

Sujet résolu
7 janvier 2006 à 10:32:40

Bonjour à tous , j'étudie le JAVA avec l'aide d'un bouquin et je voudrais vous montrer mon premier programme et j'aimerai savoir ce que vous en pensez ?
Voici les codes sources
/* La Classe calculette */

public class calculette
{
        static int result;
       
        protected static int calcul(int a,int b,char operat)
        {
               
                if(operat == '+') result = (a + b);
                if(operat == '-') result = (a - b);
                if(operat == '*') result = (a * b);
                if(operat == '/') result = (a / b);
                return result;
        }
        protected static int demande()
        {
                int a = Clavier.lireInt("Votre premier chiffre ?");
                int b = Clavier.lireInt("Votre deuxieme chiffre ?");
                char operat = Clavier.lireChar("Votre operateur ?");
                int result = calcul(a,b,operat);
                return result;
        }

}

/* La Classe Plus Ou Moins */

public class plusoumoins
{
                double reponse;       
                int chiffre = 0;
                // contructeur
                public plusoumoins()
                {
                        Math.random();
                }
                // contructeur
                public plusoumoins(int a)
                {      
                        Math.random();
                }
                // methode
                public int demande()
                {
                        this.chiffre = Clavier.lireInt("Quel est le chiffre");
                        return chiffre;
                }
                // methode
                public int plus()
                {
                        System.out.println("Desole le chiffre est plus petit , veuillez reessayez .");
                        chiffre = this.demande();
                        return chiffre;
                }
                // methode
                public int moins()
                {
                        System.out.println("Desole le chiffre est plus grand , veuillez reessayez .");
                        chiffre = this.demande();
                        return chiffre;
                }
                // methode
                public void bravo()
                {
                        System.out.println("Bravo ! Vous avez trouve le bon chiffre "+chiffre);
                }
}

/*  La classe Theoreme */
public  class Theoreme
        {
                public double calcul_hypo(int cote1,int cote2)
                {
                        int carre1 = cote1*cote1;
                        int carre2 = cote2*cote2;
                        int carre = carre1 + carre2;
                        double hypo = Math.sqrt(carre);
                        return hypo;
                }
                public double calcul_cote(int cote,int hypo)
                {
                        int hypo_carre = hypo*hypo;
                        int cote_carre = cote*cote;
                        int carre = hypo_carre-cote_carre;
                        double cote2 = Math.sqrt(carre);
                        return cote2;
                }
        }

/* La Classe Reciproque */
public class Reciproque
        {
                public boolean calcul(int cote1,int hypo,int cote2)
                {
                        boolean vrai_ou_faux;
                        int cote_carre = cote1*cote1 + cote2*cote2;
                        int hypo_carre = hypo*hypo;
                        if(cote_carre == hypo_carre)
                        {
                                vrai_ou_faux = true;
                        }
                        else
                        {
                                vrai_ou_faux = false;
                        }
               
                        return vrai_ou_faux;
                }
        }

Et bien sur mon script final , utilisant toutes ces classes
class programme
{
        public static void main(String[] args)
        {
                System.out.println("BONJOUR A TOUS !! ET BIENVENUE DANS MON PROGRAMME !");
                System.out.println("Je vous propose plusieurs choix : ");
                System.out.println("1- Calculette : ");
                System.out.println("2- Jeu Plus ou Moins : ");
                System.out.println("3- Math pythagore : ");
                System.out.println("4- Math reciproque : ");
                int repons = Clavier.lireInt("Entrez le numero de votre choix");
                System.out.println("Bien ! \n____________________________________________");
                switch(repons)
                {
                        case 1 : System.out.println("Vous avez choisi d'utiliser la calculette");break;
                        case 2 : System.out.println("Vous avez choisi de jouer ");break;
                        case 3 : System.out.println("Vous avez choisi le theoreme de pythagore ");break;
                        case 4 : System.out.println("Vous avez choisi la reciproque de pythagore ");break;
                        default : System.out.println("Vous n'avez pas entrer un numero correct");break;
                }
/*  --------------------------------------------------------------------------------------------------
 *   Jeu PLusOuMoins
 * -------------------------------------------------------------------------------------------------- */

                if(repons == 2)
                {
                        char choix;
                        jeu : do
                        {
                                plusoumoins a = new plusoumoins();
                                a.reponse = 12;
                                int rep = (int)a.reponse;
                                int chiffre = a.demande();
                                int fois = 5;
                                System.out.println("Vous avez 5 chances");
                                do
                                {
                                        if(chiffre < rep)
                                        {
                                                a.moins();     
                                                fois--;  
                                        }
                                        else if(chiffre > rep)
                                        {
                                                a.plus();
                                                fois--;
                                        }
                                        else if(chiffre == rep)
                                        {
                                                a.bravo();
                                                break;
                                        }
                                        System.out.println("Il vous reste "+ fois +" chance");
                                }while(fois > 0 );
                               
                                choix = Clavier.lireChar("Voulez vous continuer de jouer ? (o/n)");
                        }while (choix == 'o');
                }
/*  --------------------------------------------------------------------------------------------------
 *   Calculette
 * -------------------------------------------------------------------------------------------------- */
       
               if(repons == 1)
               {
                      calculette a = new calculette();
                      char y_n;
                      do
                      {
                              int result = a.demande();
                              System.out.println("Le resultat est  "+result);
                              y_n = Clavier.lireChar("Voulez vous continuez ? (o/n)");
                       }while(y_n == 'o');
               }     
 /*  --------------------------------------------------------------------------------------------------
 *   Theoreme de Pythagore
 * -------------------------------------------------------------------------------------------------- */

               if(repons == 3)
               {
                      char choix;
                      theo : do
                      {
                              char calcul = Clavier.lireChar("Que voulez vous calculez ? (c pour 'cote'/ h pour 'hypothenuse')");
                              if(calcul == 'h')
                              {
                                     int cote = Clavier.lireInt("Entrez la mesure d'un cote de votre triangle rectangle ");
                                     int cote2 = Clavier.lireInt("Puis celle de l'autre ");
                                     Theoreme reme = new Theoreme();
                                     double rem = reme.calcul_hypo(cote,cote2);
                                     System.out.println("L'hypothenuse de votre rectangle mesure "+(float)rem+" cm");
                                     
                              }
                              else if(calcul == 'c')
                              {
                                     int cote = Clavier.lireInt("Entrez la mesure d'un cote de votre triangle rectangle ");
                                     int hypo = Clavier.lireInt("Puis celle de l'hypothenuse ");
                                     Theoreme reme = new Theoreme();
                                     double rem = reme.calcul_cote(cote,hypo);
                                     System.out.println("L'autre cote de votre rectangle mesure "+(float)rem+" cm");
                              }
                              else
                              {
                                     System.out.println("Nous ne pouvons pas calculer cette chose");
                              }
                              choix = Clavier.lireChar("Avez vous un autre calcule a faire ? (o/n)");
                       }while(choix == 'o');
               }     
 /*  --------------------------------------------------------------------------------------------------
 *   Reciproque du Theoreme de Pythagore
 * -------------------------------------------------------------------------------------------------- */

               if(repons == 4)
               {
                      char choix;
                      reci : do
                      {
                              int cote = Clavier.lireInt("Entrez la mesure d'un cote de votre triangle ");
                              int cote2 = Clavier.lireInt("Puis celle de l'autre ");
                              int hypo = Clavier.lireInt("Puis celle de l'hypothenuse ");
                              boolean v_ou_f;
                              Reciproque proque = new Reciproque();
                              v_ou_f = proque.calcul(cote,hypo,cote2);
                              if(v_ou_f == true)
                              {
                                     System.out.println("Ce triangle est bien rectangle");
                              }
                              else
                              {
                                     System.out.println("NON ! Ce triangle n'est pas rectangle");
                              }
                              choix = Clavier.lireChar("Avez vous une autre demande à faire ? (o/n)");
                       }while(choix == 'o');
               }     
        }       
}

Alors ?

  • Partager sur Facebook
  • Partager sur Twitter
7 janvier 2006 à 11:34:36

Coucou

alors d'abord pas mal du tout pour commencer avec un bouquin, c'est bien, et c'est presenté c'est agreable, bon ensuite qques petits trucs qui me derange un peu :) (parole de chieur)

Je pense que tu as le droit mais pourquoi tu mets, dans la classe calculette, des tas de if, disons que ce serait peut etre plus adapté de mettre un switch, mais bon ca c'est toi qui voit.

Ensuite, pour la demande du calculs dans la meme classe... d'habitude, quand tu fais un calcul, tu fais plutot le premier chiffre, le signe, et le second. moi je le ferait dans ce sens plutot

protected static int demande()
        {
                int a = Clavier.lireInt("Votre premier chiffre ?");
 char operat = Clavier.lireChar("Votre operateur ?");
                int b = Clavier.lireInt("Votre deuxieme chiffre ?");
               
                int result = calcul(a,b,operat);
                return result;
       

ensuite, dans la classe plus ou moins, tu fais une surcharge de constructeur, truc plutot joli, mais elle ne sert a rien car tu fais exactement la meme chose dans les deux constructeurs et tu n'utilise jamais a, donc enleve ce constructeur, non?

public plusoumoins()
                {
                        Math.random();
                }
                // contructeur
                public plusoumoins(int a)//je supprimerais celle la
                {     
                        Math.random();
                }

Ensuite, j'aurais pas fait deux methodes grand et peti mais une methode ecart, dans lequel il y aurait eu un if, comme ca tu aurais juste eu a prendre le chiffre entré, le comparé, et ca aurait renvoyé la reponse en une seule methode, plutot que de faire la comparaison dans ta methode main, et ensuite de choisir la classe entre grand et petit (je dois etre clair...)
un truc comme ca :)

public int plus()
                {
                        System.out.println("Desole le chiffre est plus petit , veuillez reessayez .");
                        chiffre = this.demande();
                        return chiffre;
                }
                // methode
                public int moins()
                {
                        System.out.println("Desole le chiffre est plus grand , veuillez reessayez .");
                        chiffre = this.demande();
                        return chiffre;
                }
                // methode
                public void bravo()
                {
                        System.out.println("Bravo ! Vous avez trouve le bon chiffre "+chiffre);
                }

//moi je fais :
//dans le constructeur, je donne a valeur de la reponse
public int ecart(int choix_joueur)
{
if(choix_joueur>reponse)
     System.out.printlnn("la reponse est plus petite");
else if (choix_joueur<reponse)
     System.out.printlnn("la reponse est plus grande");
else
     System.out.println("bravo !!!");
return choix_joueur;
}


Bon ensuite pour pythagore...les carres je mettrais des double, car tu pourrais avoir un coté faisant 2,5 cm de coté...

pour la reciproque tu peux faire plus joli

public boolean calcul(int cote1,int hypo,int cote2)
                {
                       
                        int cote_carre = cote1*cote1 + cote2*cote2;
                        int hypo_carre = hypo*hypo;
                        return (cote_carre == hypo_carre)
                       
                }

Ca c'est correct, tu vas renvoyé le boolean de ta condition, et c'est bcp plus rapide non?

Enfin, dans la methode main , pas grand chose a redire, sauf si tu change pythagore et ca reciproque pour mettre des doubles, faut que tu le fasses aussi dans la main.

et que dans la partie reciproquen, plutot que ecrire : if(vrai_ou_faux == true), tu peux ecrire if(vrai_ou_faux)

C'est implicite.

j'espere avoir pu aider
  • Partager sur Facebook
  • Partager sur Twitter
7 janvier 2006 à 14:06:17

Oui merci à toi , de toute facon , ce sont de petits problemes qui n'alterent pas le résultat !! Mais , je prefere alléger mon code source
@+
  • Partager sur Facebook
  • Partager sur Twitter
7 janvier 2006 à 17:12:37

Le programme est bien présenté mais y'a quelquechose qui me chagrine. Ce programme est de niveau débutant et tu utilise déjà la notion de POO, je voulais juste savoir si tu avais compris la différence entre static et non static (pour tes fonctions).. Car on ne peut pas se lancer dans la POO sans en comprendre les bases
  • Partager sur Facebook
  • Partager sur Twitter
7 janvier 2006 à 17:20:22

oui pourquoi , je l'utilise mal ?
  • Partager sur Facebook
  • Partager sur Twitter
7 janvier 2006 à 18:42:53

Nonon tu l'utilise bien pour le moment mais c'était pour m'assurer que tu ne recopiait pas un programme les yeux fermés sans comprendre la signification de certaines choses. Mais puisque u me dis que oui je te souhaite bonne continuation
  • Partager sur Facebook
  • Partager sur Twitter
7 janvier 2006 à 19:26:42

ok merci , mais je t'assure que ce code source vient purement de mon imagination lol
@+
  • Partager sur Facebook
  • Partager sur Twitter