Читать книгу Java Code - Алексей Алексеевич Крючков - Страница 5

Логика для калькулятора ИМТ(Индекса Массы Тела)

Оглавление

Практически готовый калькулятор ИМТ. Может определять границы нормального веса, а также тип телосложения.


private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {

     float rost,ves,i,index;

     String s,st,str;

     try{

     rost=Float.parseFloat(jTextField1.getText());

     ves=Float.parseFloat(jTextField2.getText());

     i=Float.parseFloat(jTextField3.getText());

     }catch(Exception e){

         JOptionPane.showMessageDialog(null,"Введите допустимые значения во все поля","ОШИБКА!",JOptionPane.ERROR_MESSAGE);

         return;

     }

     rost=rost/100;

     index=ves/(rost*rost);

     index=index*(pol/i);

     st=discriminator(n,i);

     str=normalMass(i, rost, pol);

     if(index<16)s="Дефицит массы";

     else if(index>=16&&index<20)s="Недостаточный вес";

     else if(index>=20&&index<25)s="Норма";

     else if(index>=25&&index<30)s="Предожирение";

     else if(index>=30&&index<35)s="Первая степень ожирения";

     else if(index>=35&&index<40)s="Вторая степень ожирения";

     else s="Морбидное ожирение";

     jTextArea1.setText(st+"\nBMI="+String.valueOf(index)+"("+s+")\n"+str);

    }

    String discriminator(int a,float b){

        String s="";

        switch(a){

            case 0:

                if(b<18)s="Пол: мужской.\nТип телосложения: астенический.";

                else if(b>=18&&b<=20)s="Пол: мужской.\nТип телосложения: нормостенический.";

                else s="Пол: мужской.\nТип телосложения: гиперстенический.";

                break;

            case 1:

                if(b<15)s="Пол: женский.\nТип телосложения: астенический.";

                else if(b>=15&&b<=17)s="Пол: женский.\nТип телосложения: нормостенический.";

                else s="Пол: женский.\nТип телосложения: гиперстенический.";

                break;

                default:

                break;

        }

        return s;

    }

    String normalMass(float x,float y,float z){

        float im=x*(y*y)/z;

        return "Нижняя граница нормального веса: "+20*im+" кг\nВерхняя граница нормального веса: "+25*im+" кг";

    }

    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {

      jTextField1.setText("");

      jTextField2.setText("");

      jTextField3.setText("");

      jTextArea1.setText("");

    }


    private void buttonActionPerformed(java.awt.event.ActionEvent evt) {

     System.exit(0);

    }


    private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {

      n++;

      switch(n){

          case 1:

              jButton4.setText("женский");

              pol=16;

              break;

          case 2:

              jButton4.setText("мужской");

              pol=19;

              n=0;

              break;

      }

    }


Java Code

Подняться наверх