menu

ساخت برنامه شاخص توده بدنی (BMI)

نحوه ساخت یک برنامه محاسبه شاخص توده بدنی را به صورت گام به گام فرا بگیرید


پس از مطالعه و یادگیری مباحث مقدماتی آکادمی مجازی ذره بین، اکنون می توانید پروژه های ساده همانند برنامه محاسبه شاخص توده بدنی را طراحی و پیاده سازی کنید. برای به کارگیری مباحث گفته شده و همچنین آشنایی با دستورات بیشتر در اندروید، قصد داریم تا یک پروژه ساده دیگر را به صورت گام به گام آموزش دهیم.

این برنامه وزن و قد شخص را گرفته و برای آن شاخص توده بدنی را محاسبه می کند. همچنین وضعیت نرمال بودن، چاق بودن و یا لاغر بودن شخص را نمایش می دهد.

bmi

1 - ابتدا یک پروژه جدید همانند آموزش ساخت اولین پروژه اندرویدی بسازید و نام آن را "BMICalculator" قرار دهید.

2 - یک لایه با نام "bmi" ایجاد کرده و درون آن سه "TextView"، دو "EditText" و یک "Button" قرار می دهیم.

bmi.xml:

          
  <?xml version="1.0" encoding="utf-8"?>
  <LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="16dp">

    <TextView
        android:text="BMI Calculator"
        android:layout_width="fill_parent"
        android:layout_height="100dp"
        android:gravity="center"
        android:id="@+id/txttitle"
        android:textColor="#000"
        android:textSize="24dp"
        android:textStyle="bold"
        android:background="#e7e7e7" />

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="50dp"
        android:text="Your Weight:"
        android:id="@+id/textView"
        android:gravity="center"
        android:textColor="#000"
        android:textSize="18dp" />

    <EditText
        android:layout_width="fill_parent"
        android:layout_height="50dp"
        android:id="@+id/edtweight"
        android:background="#e7e7e7" />

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="50dp"
        android:text="Your Height:"
        android:id="@+id/textView2"
        android:gravity="center"
        android:textColor="#000"
        android:textSize="18dp" />

   <EditText
        android:layout_width="fill_parent"
        android:layout_height="50dp"
        android:id="@+id/edtheight"
        android:background="#e7e7e7" />

    <Button
        android:layout_width="fill_parent"
        android:layout_height="70dp"
        android:text="Calculate"
        android:id="@+id/btncalculate"
        android:layout_marginTop="20dp"
        android:textColor="#000"
        android:textSize="18dp"
        android:textStyle="bold" />

  </LinearLayout>

       
          

3 - سپس کدهای مربوط به محاسبه شاخص توده بدنی را می نویسیم. توضیحات لازم برای هرقسمت به صورت کامنت نوشته شده است.

BmiActivity.java:

          
  package com.izarebin.bmicalculator;

 import android.support.v7.app.AppCompatActivity;
 import android.os.Bundle;
 import android.text.TextUtils;
 import android.view.View;
 import android.widget.Button;
 import android.widget.EditText;
 import android.widget.TextView;
 import android.widget.Toast;

 public class BmiActivity extends AppCompatActivity {
     // تعریف متغیرهای موردنیاز
    String str1;
    String str2;
    TextView txttitle;
    double weight;
    double height;
    double bmiresult;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.bmi);
        // معرفی عناصر به اشاره گر جاوا
        txttitle = (TextView) findViewById(R.id.txttitle);
        final EditText edtweight = (EditText) findViewById(R.id.edtweight);
        final EditText edtheight = (EditText) findViewById(R.id.edtheight);
        Button btncalculate = (Button) findViewById(R.id.btncalculate);

        // ایجاد یک رویداد برای دکمه محاسبه
        btncalculate.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                 // گرفتن مقادیر ادیت تکست ها
                str1 = edtweight.getText().toString();
                str2 = edtheight.getText().toString();
                 // قرار دادن شرط درصورتی که یک ادیت تکست خالی باشد
                if (TextUtils.isEmpty(str1)){
                    edtweight.setError("vazne khod ra vared namaied");
                    return;
                }
                if (TextUtils.isEmpty(str2)){
                    edtheight.setError("ghade khod ra vared namaied");
                    return;
                }
                 // فراخوانی تابع محاسبه شاخص توده بدنی
                bmiresult = bmicalculate(weight,height);
                txttitle.setText("BMI is = " + bmiresult);
                // فراخوانی تابع نتیجه شاخص توده بدنی
                bmiresult();
            }
        });

    }
    // تابع محاسبه شاخص توده بدنی با دو پارامتر ورودی وزن و قد
    public double bmicalculate(double weight, double height){
         // دریافت مقادیر وزن و قد از کاربر
        weight = Double.parseDouble(str1);
        height = Double.parseDouble(str2);
         // محاسبه 
        double result = (weight / (height*height));
         // بازگشت نتیجه
        return result;
    }
     // تابع نمایش نتایج شاخص توده بدنی
    public String bmiresult(){

        if (bmiresult < 15){
            Toast.makeText(BmiActivity.this, "shoma laghari mofrat darid", Toast.LENGTH_SHORT).show();
        } else if (bmiresult < 18.5) {
            Toast.makeText(BmiActivity.this, "shoma laghar hastid", Toast.LENGTH_SHORT).show();
        } else if (bmiresult < 25){
            Toast.makeText(BmiActivity.this, "shoma normal hastid", Toast.LENGTH_SHORT).show();
        } else if (bmiresult < 30){
            Toast.makeText(BmiActivity.this, "shoma chagh hastid", Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(BmiActivity.this, "natije na moshakhas", Toast.LENGTH_SHORT).show();
        }

        return null;
    }
 }

          
سورس برنامه شاخص توده بدنی را می توانید از این لینک دریافت نمایید.