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

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

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

قبل از هر چیزی باید بدونیم که فرمول حساب کردن شاخص توده بدنی (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


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



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

مهدی مومنی


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

https://t.me/IR_PHP_Developers_Community

کانال انجمن :

https://t.me/IR_PHP_Dev_Community_channel

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