|
|
|
inputคะแนน5คน อยากแสดงgradeครบทั้ง5แล้วหาค่าเฉลี่ย ทำยังไงคับ? |
|
|
|
|
|
|
|
1. theme คุณสวย อ่านแล้วสบายตาดี แสงไม่จ้าจนแสบตา...แต่ทำไมผมคัดลอกโค้ดคุณไปลองไม่ได้
2. ตอนนี้ผลลัพธ์เป็นอย่างไร
|
|
|
|
|
Date :
2020-08-27 13:34:05 |
By :
PhrayaDev |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มาแบบเป็น text หน่อยครับ รูปภาพ คัดลอกโค้ดมาเทสไม่ได้
ครอบ PHP code ด้วย
|
|
|
|
|
Date :
2020-08-27 18:49:18 |
By :
PhrayaDev |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<form method="post" action="#">
Midterm
</br>
<input type="text" name="mid" size="20">
</br>
Final
</br>
<input type="text" name="final" size="20">
</br>
<input type="submit" name="submit" value="Press">
</form>
<?php
$avg = 0;
$box = []; // $box ต้องประกาศไว้ scope บน(สูงกว่า)หรือเทียบเท่ากับ ตำแหน่งที่เรียกใช้งาน
if (isset($_POST["mid"], $_POST["final"])) { // เช็คว่า user กด submit หรือยัง และ text mid/final มีข้อมูลหรือไม่
$text_mid = explode(" ", $_POST["mid"]); // แยกข้อมูลใน text mid ด้วยวรรค แล้วเก็บไว้ในตัวแปร $text_mid เป็น array
$text_final = explode(" ", $_POST["final"]); // แยกข้อมูลใน text final ด้วยวรรค แล้วเก็บไว้ในตัวแปร $text_final เป็น array
for ($x = 0; $x <= 4; $x++) { // for (เริ่ม; สิ้นสุด; สเต็ป) จุดสิ้นสุดต้องต่อเนื่องมาจากจุดเริ่มต้นตามลำดับของสเต็ป ดังนั้น จุดสิ้นสุดต้องเป็น "<= 4" ไม่ใช่ "= 4"
$total[$x] = $text_final[$x] + $text_mid[$x]; // $text_mid กับ $text_final เป็น array ใส่ index เพื่อรวมคะแนนของแต่ละคน
if ($total[$x] !=''){
if ($total[$x] <0 or $total[$x] >100){
$box[$x]="Error</br>";
}
elseif ($total[$x]>=0 and $total[$x]<=49){
$box[$x]="Grade:E</br>";
}
elseif ($total[$x]>=50 and $total[$x]<=54){
$box[$x]="Grade:D</br>";
}
elseif ($total[$x]>=55 and $total[$x]<=59){
$box[$x]="Grade:D+</br>";
}
elseif ($total[$x]>=60 and $total[$x]<=64){
$box[$x]="Grade:C</br>";
}
elseif ($total[$x]>=65 and $total[$x]<=69){
$box[$x]="Grade:C+</br>";
}
elseif ($total[$x]>=70 and $total[$x]<=74){
$box[$x]="Grade:B</br>";
}
elseif ($total[$x]>=75 and $total[$x]<=79){
$box[$x]="Grade:B+</br>";
}
elseif ($total[$x]>=80 and $total[$x]<=100){
$box[$x]="Grade:A</br>";
}
}$avg+=$total[$x];
}
for($i=0;$i<=4;$i++){ //จุดสิ้นสุดต้องเป็น "<= 4" ไม่ใช่ "= 4"
echo $box[$i];
}
$avg/=5;
echo $avg;
}
?>
|
|
|
|
|
Date :
2020-08-27 22:06:49 |
By :
PhrayaDev |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จากโค้ดที่ผมเขียนให้ การใส่ input ต้องใส่แบบนี้
Mid: 50 60 40 55 45
Final: 30 10 25 20 15
แต่ใส่ได้ 5 ตัว
ถ้าต้องการใส่ได้ไม่จำกัด แก้ไขที่ลูป
จากค่าคงที่เป็น ตัวแปร ด้วยการนับจำนวน mid/final
โดยใช้ฟังก์ชัน count()
...แต่ถ้า ต้องการให้ input ทีละบรรทัดอย่างตัวอย่างจาก python
ก็แค่วนซ้ำแต่ละคนแล้วเก็บไว้ใน ตัวแปร แต่ละรอบ
เพียงแต่ต้องรันใน CLI เหมือนใน python
https://www.php.net/manual/en/function.readline.php
|
|
|
|
|
Date :
2020-08-28 02:38:09 |
By :
PhrayaDev |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|