โปรแกรมจำลองการถอนเงินจากตู้ atm

แชร์ประสบการณ์เขียนโค้ด php + Mysql เล็ก ๆ น้อย ๆ เผื่อจะเป็นประโยชน์กับใครสักคน...
สวัสดีครับเพื่อน ๆ วันนี้ผมเอา code php การจำลองถอนเงินจากตู้ ATM มาฝากครับ จำไม่ได้แล้วว่าไปเจอโจทย์นี้จากที่ไหน ก็เลยเกิดอยากจะลองเขียนดู อันนี้ไม่ได้ไปก๊อปใครมานะครับ โค้ดอาจจะดูรก ๆ ไปหน่อย แต่รับรองว่าใช้งานได้อย่างแน่นอน
 
โจทย์ก็ประมาณนี้นะครับ
ให้เขียนโปรแกรมตู้ ATM ครับ โดยกำหนดให้มีเงินอยู่ในตู้ 23,000 บาท แบ่งเป็น แบงค์พัน 10 ใบ แบงค์ 500 20 ใบ แบงค์ 100 30 ใบ
โดยให้เขียนโปรแกรมเพื่อรับจำนวนเงินที่จะถอน จากนั้นโปรแกรมจะแสดงจำนวนแบงค์ที่ออกมา ซึ่งแบงค์พันจะออกก่อน แล้วก็แบงค์ 500 100 ตามลำดับ 
เห็นโจทย์แล้วก็คิดว่ามันไม่น่าจะยากอะไร เพราะเราก็เคยถอนเงินจากตู้ ATM อยู่บ่อย ๆ เงื่อนไขส่วนมากก็จะเป็นการเช็ค if ว่าต้องส่งแบงค์อะไรให้ลูกค้าบ้าง มาดูโค้ดทั้งหมดกันเลยดีกว่านะครับ
 
ก๊อปปี้ไปใช้งานได้เลยนะครับ ATM.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>ฝึกเขียนโโปรแกรมถอนเงินจากตู้ ATM by Code-Father.com</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<b>
ให้เขียนโปรแกรมตู้ ATM ครับ โดยกำหนดให้มีเงินอยู่ในตู้ 23,000 บาท แบ่งเป็น แบงค์พัน 10 ใบ แบงค์ 500 20 ใบ แบงค์ 100 30 ใบ
โดยให้เขียนโปรแกรมเพื่อรับจำนวนเงินที่จะถอน จากนั้นโปรแกรมจะแสดงจำนวนแบงค์ที่ออกมา ซึ่งแบงค์พันจะออกก่อน แล้วก็แบงค์ 500 100 ตามลำดับ
</b>
<hr>
<b style="color:#006600;">
<?
function p_mony($m_price,$p_price){
    return floor($p_price/$m_price);
}
if($_GET['action']=='process'){
    $price=$_POST['price'];
    $m1000=10;
    $m500=20;
    $m100=30;
    
    echo 'คุณต้องการถอนเงิน จำนวน '.number_format($price).' บาท.<br>';
    
    if($price<100 or $price>23000){
        echo 'ขออภัยค่ะ จำนวนเงินที่ระบุไม่สามารถถอนได้ค่ะ...กรุณาระบุจำนวนระหว่าง 100-23,000 บาทด้วยค่ะ';
    }else{
        if(strlen($price)==5){ //หลักหมื่น
            
                $output='แบงค์ 1000 '.p_mony('1000',$m1000*1000).' ใบ<br>';
                $price=$price-(1000*p_mony('1000',$m1000*1000));
                $m1000=0;
                
                if(strlen($price)==5){
                    $output.='แบงค์ 500 '.p_mony('500',$m500*500).' ใบ<br>';
                    $price=$price-(500*p_mony('500',$m500*500));
                    $m500=0;
                }
        }
        
        if(strlen($price)==4){ //หลักพัน
            if($m1000!=0){
                $output.='แบงค์ 1000 '.p_mony('1000',$price).' ใบ<br>';
                $price=$price-(1000*p_mony('1000',$price));
            }else{
                if($m500!=0){
                $output.='แบงค์ 500 '.p_mony('500',$price).' ใบ<br>';
                $price=$price-(500*p_mony('500',$price));
                }
            }
        }
        
        if((strlen($price)==3)){ //หลักร้อย
            if($price<500){
                $output.='แบงค์ 100 '.p_mony('100',$price).' ใบ<br>';
            }else{
                $output.='แบงค์ 500 '.p_mony('500',$price).' ใบ<br>';
                $price=$price-(500*p_mony('500',$price));
                if($price!=0) $output.='แบงค์ 100 '.p_mony('100',$price).' ใบ<br>';
            }
        }
        
        if($m500==0 and $price!=0){
            $output.='แบงค์ 100 '.p_mony('100',$price).' ใบ<br>';
        }
        echo $output;
    }
}
?>
</b>
<hr>
<form id="form1" name="form1" method="post" action="ATM.php?action=process">
      <input type="text" name="price" onKeyUp="if(this.value*1!=this.value) this.value='' ;" />
      <input type="submit" name="Submit" value="Submit" />
</form>
</body>
</html>

 
เริ่มต้นจากผู้ใช้งานกรอกจำนวนเงินในฟอร์ม หรือ ช่องรับข้อมูล แล้วทำการส่งค่าไปให้ระบบคำนวณ
 
 <form id="form1" name="form1" method="post" action="ATM.php?action=process">
      <input type="text" name="price" onKeyUp="if(this.value*1!=this.value) this.value='' ;" />
      <input type="submit" name="Submit" value="Submit" />
</form>
โดยส่งค่าจำนวนเงินไปกับตัวแปร price และส่งค่ากระบวนการ (สำหรับตรวจ) ไปกับตัวแปร action ซึ่งมีค่าเท่ากับ process ตามข้อความสีแดง จากนั้นก็เข้าสู่ขั้นตอนการประมวลผล มีตัวแปรต่างๆ ที่เก็บค่าแบงค์ต่าง ๆ ไว้ เช่น แบงค์ 1000 แบงค์ 500 และแบงค์ 100 โค้ดต่อจากนี้ไม่ขออธิบายล่ะกันนะครับ ดูกันเอาเองจากในคลิปเลยนะครับผม
 
เป็นอย่างไรกันบ้างครับ พอจะเข้าใจวิธีการของระบบกันไหมครับ ผมเองก็อธิบายไม่ค่อยเก่ง แต่ก็หวังว่าจะเป็นประโยชน์กับผู้ที่สนใจหรือกำลังฝึกเขียนเว็บ เขียนโปรแกรมด้วย PHP และภาษาอื่น ๆ อยู่บ้าง ขอบคุณทุกท่านที่แวะเข้ามาเยี่ยมชม... 


My Article
แนะนำเว็บสูตรหวยออนไลน์ ดูฟรี