به نام خداوند مهربان .
قبل از هر چیزی باید بدونیم که فرمول حساب کردن شاخص توده بدنی (BMI) چیست
وزن / قد(متر) به توان 2
مثال:
وزن = 70
قد = 1.77 ===به توان 2===> 3.1329
BMI = 70 / 3.1329
خب بریم سراغ کدنویسی ----------------------------->
قبل از هر چیزی باید یک فرم html برای دریافت اطلاعات از کاربر بسازیم .
<div class="site-section bg-light" id="contact-section"> <div class="container"> <div class="row justify-content-center"> <div class="col-md-7"> <div class="pt-5"> <div class="comment-form-wrap pt-5"> <h3 style="text-align: center;" class="mb-5">ماشین حساب BMI</h3> <form method="POST" class="p-5 bg-light"> <div class="form-group"> <label for="name">قد (متر)</label> <input required type="text" dir="ltr" placeholder="1.75" name="qad" class="form-control" id="name"> </div> <div class="form-group"> <label for="name">وزن (کیلوگرم)</label> <input required type="text" dir="ltr" placeholder="75" name="vazn" class="form-control" id="name"> </div> <div class="form-group"> <input type="submit" name="ok" value="دریافت نتیجه" class="btn btn-primary"> </div> </form> </div> </div> </div> </div> </div> </div>
حالا باید بریم سراق کنترلرمون و کد های اون بخش را بنویسیم .
<?php class BMI { function calculator($vazn, $qad) { $number = $vazn / ($qad * $qad); return $number; } function vaziat($number) { if ($number < 18.5) { $mahdoode = 'کمبود وزن'; } if ($number > 18.5 and $number <= 25) { $mahdoode = 'وزن ایده آل'; } if ($number > 25 and $number <= 30) { $mahdoode = 'اضافه وزن'; } if ($number > 30 and $number <= 35) { $mahdoode = 'چاقی نوع ۱'; } if ($number > 35 and $number <= 40) { $mahdoode = 'چاقی نوع ۲'; } if ($number > 40) { $mahdoode = 'چاقی نوع ۳ (بیمارگونه)'; } return $mahdoode; } function goodman($qad) { if ($qad > 152) { $ideal = (($qad - 152) * 1.1) + 48; } else { $ideal = (-(152 - $qad) * 1.1) + 48; } return $ideal; } function goodwoman($qad) { if ($qad > 152) { $ideal = (($qad - 152) * 1.1) + 43; } else { $ideal = (-(152 - $qad) * 1.1) + 43; } return $ideal; } }
یک کلاس ساختیم که داخلس چهار تا متد وجود داره ، حالا بیاید بررسی کنیم هر کدوم از این متدا چیکار می کنن .
متد اول :
calculator()
این متد میاد با توجه به دوتا ورودی که داره ( قد ، وزن ) ، BMI (شاخص توده بدنی) را با همون فرمولی که بالا نوشتم محاسبه می کنه .
متد دوم :
vaziat()
همون طور که از اسمش مشخصه با توجه به فیلتر خود BMI مشخص می کنه که وزن کاربر در چه محدوده ای قرار داره و در آخر وضعیت را از تابع return می کند .
متد سوم :
goodman()
این متد محاسبه می کنه که وزن مناسب برای مرد باتوجه به (قد) ورودی کاربر چقدره .
متد چهارم :
goodwoman()
این متد محاسبه می کنه که وزن مناسب برای خانم باتوجه به (قد) ورودی کاربر چقدره .
حالا می رسیم به قسمت دریافت اطلاعات از سرور و نمایش آن .
ابتدا از کلاس BMI که ساختیم یک شی جدید تعریف می کنیم ، سپس با گذاشتن شرط ، اطلاعات را از کاربر گرفته و متد ها را فراخانی می کنیم .
تابع ()round که نوشتم کارش چیه ؟
وقتی ما BMI رو حساب کردیم بعد عدد خروجی را میدیم به تابع ()round ، تابع () round میاد عدد رو میگیره و تا 1 یک رقم اعشار نمایش میده همونطور که ماخودمون تو آرگومان دومش نوشتیم 1 .
مثلا اگر به جای 1 ، x میزاشتیم توی خروجی تا x رقم اعشار نمایش میداد .
مثلا عدد ما اینه : 21.65564564
وقتی میدیمش به تابع round :
echo round( 21.65764564,3);
==================> 21.658
بعد متدهای دیگه رو صدا زدیم و دونه دونه توی خروجی نمایششون دادیم .
موفق و پیروز باشید .
مهدی مومنی
https://t.me/IR_PHP_Developers_Community