Bài toán rút tiền cây ATM PHP sử dụng if...else

    Bài toán rút tiền từ cây ATM

  • Số tờ tiền 500k có trong ATM
  • Số tờ tiền 200k có trong ATM
  • Số tờ tiền 100k có trong ATM
  • Số tờ tiền 50k có trong ATM

    Nhập số tiền muốn rút

    => In ra số lượng các tờ tiền với các mệnh giá khác nhau

    Ví dụ:

  •     Số tờ tiền 500k có trong ATM: 2

  •     Số tờ tiền 200k có trong ATM: 2

  •     Số tờ tiền 100k có trong ATM: 2

  •     Số tờ tiền 50k có trong ATM: 2

  •     Nhập số tiền muốn rút: 2000k => ATM ko đủ tiền

  •     Nhập số tiền muốn rút: 1500k => 500K - 2 tờ, 200k - 2 tờ, 100k - 1 tờ

  •     Nhập số tiền muốn rút: 1555k => Số tiền muốn rút phải là bội số của 50

    Hướng giải bài toán : Đầu tiên chúc ta sẽ tạo một cái form với 5 dòng text

  • dòng text nhâp vào số tờ 500k mà atm có
  • dòng text nhâp vào số tờ 200k mà atm có
  • dòng text nhâp vào số tờ 100k mà atm có
  • dòng text nhâp vào số tờ 50k mà atm có
  • dòng text nhập vào số tiền bạn muốn rút

    => chúng ta sẽ tạo 2 file 1 file là index.php và 1 file là welcome.php , bên file index.php chúng ta tạo form , bn welcome chúng ta xử lý bài toán ,

  • Bước 1: -lấy giá trị từ form
  • Bước 2: -kiểm tra xem nếu số tiền muốn rút lớn hơn số tiền của cây atm chúng ta sẽ báo lỗi cây atm không đủ tiền
  • Bước 3: -kiểm tra xem số tiền nếu không phải là bội số của 50000 thì báo lỗi vì mệnh giá bé nhất dược rút là 50000
  • Bước 4:
    • TH1_kiểm tra xem nếu số tiền cần rút chia hết cho 500000 mênh giá lớn nhất thì sẽ thông báo rút được (số tiền cần rút /500000) tờ 500k
    • TH2_trường hợp chia không hết cho 500k thì chúng ta làm tròn xuống phép chia trên để in ra số tờ 500k , rồi lấy phần dư phép chia trước chia tiếp cho 200k lại ra 2 trường hợp
      • TH1_Kiểm tra phần dư kia chia hết cho 200k không nếu chia hết thì in ra số tờ 200k bằng cách lấy phần dư chia cho 200k
      • TH2_Không chia hết ta lấy kết quả phép chia làm tròn xuống để in số tờ 200k rồi lấy phần dư sau khi chia cho 200k chia tiếp cho 100k , lại ra 2 trường hợp
        • TH1_kiểm tra phần dư kia nếu chia hết cho 100k thì in ra số tờ 100k = phần dư của phép chia 200k chia cho 100k
        • TH2_Không chia hết ta lấy kết quả phép chia làm tròn xuống để in số tờ 100k rồi lấy phần dư sau khi chia cho 100k chia tiếp cho 50k , sau đó in ra số tờ 50k = số dư phép chia 100k chia cho 50k

    dưới đây là code và hình minh họa

    code index.php (code form)

<!DOCTYPE html>
<html>
<head>
	<title></title>
    <style type="text/css">
        body{
            padding:0px;
            margin: 0px;
            background-color: #FF00FF;
            color: black;
            font-size: 20px;
        }
    </style>
</head>
<body>
	<h1 style="text-align: center;">Cây rút tiền ATM</h1>
	
		<form method="post" action="welcome.php">
            <pre>   
                    Nhập vào số tờ tiền 500k :<input type="text" name="nt" value=""/><br>
                    Nhập vào số tờ tiền 200k :<input type="text" name="ht" value=""/><br>
                    Nhập vào số tờ tiền 100k :<input type="text" name="mt" value=""/><br>
                    Nhập vào số tờ tiền 50k  :<input type="text" name="nm" value=""/><br>
                    Nhập vào số tiền cần rút :<input type="text" name="r" value=""/><br>
                    
                                                    <input type="submit" name="submit" value="Rút" />
            </pre>
            
        </form>
		
</body>
</html>

    

    ***code welcome.php

<!DOCTYPE html>
<html>
<head>
	<title></title>
</head>
<body>
	<?php 
        $nt= $_POST['nt'];
        $ht= $_POST['ht'];
        $mt= $_POST['mt'];
        $nm= $_POST['nm'];
        $r = $_POST['r'];
    	$monneyAtm= $nt*500000+$ht*200000+$mt*100000+$nm*50000;
        if($r>$monneyAtm)
        {
            echo 'Cây ATM không đủ tiền!';
        }
        else if($r%50000!=0)
        {
            
            echo 'Số tiền phải là bội số của 50000';
                
        }
        else if ($r % 500000 == 0)
        {
            echo 'Số tiền rút được là: ' . $r/500000 . '  tờ 500k  ';
        }else{

            $d=$r % 500000;
            
            if($d%200000 == 0)
            {
                echo 'Số tiền rút được là: ' . floor($r/500000) . '  tờ 500k  ' . ' , ' . floor($d/200000) . '  tờ 200k  '  ;
            }

            else {

                $d1=$d%200000;

                if($d1%100000==0)
                {
                echo 'Số tiền rút được là: ' . floor($r/500000) . '  tờ 500k  ' . ' , ' . floor($d/200000) . '  tờ 200k  ' . ' , ' . floor($d1/100000) . '  tờ 100k  ';
                }
                else{
                    $d2=$d1%100000;
                    if($d2!=0)
                    {

                    echo 'Số tiền rút được là: ' . floor($r/500000) . '  tờ 500k  ' . ' , ' . floor($d/200000) . '  tờ 200k  ' . ' , ' . floor($d1/100000) . '  tờ 100k  ' . ' , '  . floor($d2/50000) . '  tờ 50k  ';
                    }   
                }
            }
        }
        
	?>
		
</body>
</html>

    

Nguồn: Viblo

Bình luận
Vui lòng đăng nhập để bình luận
Một số bài viết liên quan