مهدی مومنی
مهدی مومنی
خواندن ۱ دقیقه·۳ سال پیش

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

به نام خداوند مهربان .

قبل از هر چیزی باید بدونیم که فرمول حساب کردن شاخص توده بدنی (BMI) چیست


وزن / قد(متر) به توان 2

مثال:

وزن = 70

قد = 1.77 ===به توان 2===> 3.1329

BMI = 70 / 3.1329



خب بریم سراغ کدنویسی ----------------------------->

قبل از هر چیزی باید یک فرم html برای دریافت اطلاعات از کاربر بسازیم .



<div class=&quotsite-section bg-light&quot id=&quotcontact-section&quot> <div class=&quotcontainer&quot> <div class=&quotrow justify-content-center&quot> <div class=&quotcol-md-7&quot> <div class=&quotpt-5&quot> <div class=&quotcomment-form-wrap pt-5&quot> <h3 style=&quottext-align: center;&quot class=&quotmb-5&quot>ماشین حساب BMI</h3> <form method=&quotPOST&quot class=&quotp-5 bg-light&quot> <div class=&quotform-group&quot> <label for=&quotname&quot>قد (متر)</label> <input required type=&quottext&quot dir=&quotltr&quot placeholder=&quot1.75&quot name=&quotqad&quot class=&quotform-control&quot id=&quotname&quot> </div> <div class=&quotform-group&quot> <label for=&quotname&quot>وزن (کیلوگرم)</label> <input required type=&quottext&quot dir=&quotltr&quot placeholder=&quot75&quot name=&quotvazn&quot class=&quotform-control&quot id=&quotname&quot> </div> <div class=&quotform-group&quot> <input type=&quotsubmit&quot name=&quotok&quot value=&quotدریافت نتیجه&quot class=&quotbtn btn-primary&quot> </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


بعد متدهای دیگه رو صدا زدیم و دونه دونه توی خروجی نمایششون دادیم .



موفق و پیروز باشید .

مهدی مومنی


برای پرسیدن سوال های php خود و حل مشکلاتتان به گروه انجمن php ایران بپیوندید .

https://t.me/IR_PHP_Developers_Community

کانال انجمن :

https://t.me/IR_PHP_Dev_Community_channel

phpبرنامه نویسیکدنویسیکد نویسیبرنامه نویس
مهدی مومنی هستم علاقه مند به برنامه نویسی وب ، بیشتر از دو سال که python و django کار می کنم و دوست دارم چیز هایی که یاد میگیرم را با بقیه به اشتراک بزارم .... وبسایت شخصی من https://mahdimomeni.ir
شاید از این پست‌ها خوشتان بیاید