• PHP练习


    1.php四则计算器

    <html>
    <head>
        <meta content="text/html; charset=utf8">
        <title>PHP计算器</title>
    </head>
    <body>
    <?php
    if(isset($_POST["num1"]) && isset($_POST["num2"])){//有提交才执行,避免报错
        if(empty($_POST["num1"])){
            echo "操作数1不能为空";
            unset($_POST["sub"]);//取消表单中的提交变量
        }
        if(empty($_POST["num2"])){
            echo "操作数2不能为空";
            unset($_POST["sub"]);
        }
        $oper=$_POST["oper"];//操作符
        $num1=$_POST["num1"];//第一个操作数
        $num2=$_POST["num2"];//第二个操作数
        if($oper == "/"){
            if($num2 == 0){
                echo " '0' 不能作为除数使用";
                unset($_POST["sub"]);
            }
        }
    }
    ?>
    <table border="1" align="center" width="400">
        <form method="post">
            <tr>
                <td><input type="number" size="10" name="num1"></td>
                <td>
                    <select name="oper">
                        <option value="+">+</option>
                        <option value="-" >-</option>
                        <option value="*" >*</option>
                        <option value="/" >/</option>
                    </select>
                </td>
                <td><input type="number" size="10" name="num2"></td>
                <td><input type="submit" name="sub" value="计算"></td>
            </tr>
            <?php
            /**通过表单传过来的$_POST["sub],判断是否单击了计算按钮
            来决定以下计算是否执行以及是否输出计算结果**/
            if(isset($_POST["sub"]) && !empty($_POST["sub"])){
                $sum = 0; //声明一个存放计算结果的变量,初始值为0
                switch($oper){
                    case "+":
                        $sum = $num1+$num2;
                        break;
                    case "-":
                        $sum = $num1-$num2;
                        break;
                    case "*":
                        $sum = $num1*$num2;
                        break;
                    case "/":
                        $sum = $num1/$num2;
                        break;
                }
                echo "<tr><td colspan='4' align='center'>";
                echo "结果: $sum";
                echo "</td></tr>";
            }
            ?>
        </form>
    </table>
    </body>
    </html>

    2.已知:公鸡5元一只,母鸡3元一只,小鸡一元3只。现用100元钱买了100只鸡,问:公鸡母鸡小鸡各几只?

    <?php
    $num1 = 0;//公鸡数目
    $num2 = 0;//母鸡数目
    $num3 = 0;//小鸡数目
    $money = 100;//总金额
    $money2 = 0;//买完公鸡的剩余金额
    $money3 = 0;//买完公鸡、母鸡的剩余金额
    echo ("<p>可能出现的结果:</p>");
    echo ("公鸡,母鸡,小鸡<br>");
    for($num1 = 0;$num1<100;$num1++){
        for($num2 = 0;$num2<100;$num2++){
            $money2 = $money - $num1*5;
            $money3 = $money2 - $num2*3;
            $num3 = $money3*3;
            if($num3>=0){
                echo ("$num1,$num2,$num3<br>");
            }
        }
    }

    3.写2个函数,分别可以求得两个正整数的最大公约数和最小公倍数。

    提示:

    最大公约数就是能够同时整除该两个数的最大的那个。比如24和36的最大公约数是12

    最小公倍数就是能够同时被该两个数整除的最小的那个。比如24和36的最小公倍数是72

    <?php
    function func($m,$n){
        $x=2;
        $y=0;
        for($a = 1;$m>=$a;$a++){
            if($m % $a == 0 && $n % $a == 0){
                $x = $a;
            }
        }
        echo ("最大公约数是:$x<br/>");
        for($b = $m * $n;$b > 0 && $b<=$m * $n;$b--){
            if($b%$m == 0 && $b%$n == 0){
                $y = $b;
            }
        }
        echo ("最小公倍数是:$y<br/>");
    }
    if(isset($_POST["num1"]) && isset($_POST["num2"])){
        func($_POST['num1'],$_POST['num2']);
    }
    ?>
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>求最大公约数和最小公倍数</title>
    </head>
    <body>
    <form method="post">
        <input type="number" value="第一个正整数" name="num1">
        <input type="number" value="第二个正整数" name="num2">
        <input type="submit" value="提交">
    </form>
    </body>

    4.写一个函数,该函数能够判断一个数字是否是一个素数(是就返回true,否则就返回false)。再利用该函数,输出2-200之间的所有素数。

    <?php
    function func($num){//判断函数
        $n = 0; //用于记录能被整除的个数 -- 计数
        for($i = 1;$i <= $num; ++$i){
            if($num % $i == 0){
                $n++;
            }
        }
        if($n == 2){
            echo ("true<br>");
        }else{
            echo ("false<br>");
        }
    }
    function func2($num){//求值函数
        $n = 0; //用于记录能被整除的个数 -- 计数
        for($i = 1;$i <= $num; ++$i){
            if($num % $i == 0){
                $n++;
            }
        }
        if($n == 2){
            echo ("$num<br>");
        }
    }
    
    if( isset($_POST["num"]) ){
        func($_POST['num']);
    }
    ?>
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>求素数</title>
    </head>
    <body>
    <form method="post">
        <input type="number" value="请输入一个数" name="num">
        <input type="submit" value="提交">
        <input type="submit" value="求2-200内所有素数" name="yes">
    </form>
    <?php
    if( isset($_POST["yes"]) ){
        for($number = 200;$number>1;$number--){
            func2($number);
        }
    }
    ?>
    </body>

    5.php利用循环输出表格形式

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>PHP输出表格</title>
    </head>
    <body>
    <table>
        <tr>
            <?php
            $trnum = 5; //表格的行数
            $tdnum = 4 ; //表格的列数
            $trend = $tdnum - 1; //表格换行
            $tdwid = (int)(100 / $tdnum); //计算表格列的宽度
            for ($i=1;$i<=$trnum;$i++) { //循环表格行
                $k = $i * $tdnum - $trend ; //循环表格换行公式
                $l = $i * $tdnum ; //循环表格列数公式
                echo "<tr>"; //输出表格行开始
                for ($j=$k;$j<=$l;$j++) { //循环表格列
                    echo "<td width='{$tdwid}%' >{$j}</td>"; //输出表格列
                }
                echo "</tr>"; //输出表格行结束
            }
            ?>
        </tr>
    </table>
    </body>
    </html>

    总结:主要练习了php相关的循环判断语句,以及form表单提交和函数的调用

  • 相关阅读:
    btrfs基础
    解决debian编辑器vim没有颜色的问题
    [转载]RHEL-6启动时提示:“/usr/libexec/gconf-sanity-check-2 exited with status 256”
    [转载]vim E667: Fsync failed
    Windows Server 2003修改远程桌面连接数
    [转载]"由于这台计算机没有远程桌面客户端访问许可证,远程会话被中断"的解决方案
    [转载]远程登录提示"*已经被拒绝登录到终端*"
    ESXi开启SSH的方法总结
    glibc 编译安装( version `GLIBC_2.14' not found")
    [转载]Wireshark基本介绍和学习TCP三次握手
  • 原文地址:https://www.cnblogs.com/Arisf/p/14597796.html
Copyright © 2020-2023  润新知