美文网首页
每日练习

每日练习

作者: 在一颗大大大榕树下 | 来源:发表于2019-11-22 17:19 被阅读0次

    1.POST,GET

    一个页面中有一个表单:可以输入年龄,并进行判断:
    如果大于18岁,可以上网吧,
    否则不可以!

    <?php
    $result = "";
    $age = "";
    if(isset($_POST['age'])){
        $age = $_POST['age'];
    if(empty($age)||$age<18){
        $result = "不可以上网";
    }else{
        $result = "可以上网了";
    }
    }
    ?>
    
    <body>
    <form action="" method = "post">
        请输入你的年龄:<input type="number" name="age">
        <button type="submit">提交</button>
        <text style="width:300px"><?php
            echo $result;
        ?></text>
    </form>
    </body>
    

    2.数据库连接

    <?php
    const server = "localhost";//主机
    const db_username = "root";//你的数据库用户名
    
    
    $con = mysqli_connect(server, db_username, "","test");//链接数据库
    
    if (!$con) {
        die("can't connect" . mysqli_error($con));//如果链接失败输出错误
    }
    ?>
    

    在页面login.php中显示一个表单,可以输入用户名和密码。在login_save.php页面输出获取的用户名和密码的值。

    login.php

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="utf-8">
    </head>
    <?php
    
    ?>
    <body>
    <form action="login_save.php" method = "POST">
        账号:<input type="text" name="user">
        密码:<input type="password" name="psd">
        <button type="submit">登录</button>
      
    </form>
    </body>
    
    

    login_save.php

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="utf-8">
    </head>
    <?php
        $username = $_POST['user'];
        $password = $_POST['psd'];
    
    ?>
    <body>
        <?php echo $username;echo $password;?>
    </body>
    </html>
    

    写一个页面server.php,在页面中以表格的形式输出至少5个$_SERVER变量中的元素信息,并有每个元素的含义。

    多写几行没啥意义,一行了事。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="utf-8">
    </head>
    <?php
    $var1 = 'HTTP_HOST';
    $type1 = '$_SERVER[ \'HTTP_HOST\']';
    $arr1 = array($var1,'$_SERVER[ \'' . $var1 . '\']',$_SERVER[$var1],"端口号");
    
    
    ?>
    <body>
    <table border="1" width="60%" bgcolor="#e9faff" cellpadding="2">
        <tr>
            <td>元素名称</td>
            <td>使用形式</td>
            <td>结果</td>
            <td>含义</td>
        </tr>
        <tr>
            <td><?php  echo $arr1[0];  ?></td>
            <td><?php  echo $arr1[1];  ?></td>
            <td><?php  echo $arr1[2];  ?></td>
            <td><?php  echo $arr1[3];  ?></td>
            
        </tr>
    </table>
    </body>
    </html>
    

    请设计一个表单,该表单可以输入一个4位的整数(代表年份数字)。表单提交后可以判断用户输入的年份是否是一个闰年。如果是闰年,就输出“xxxx年是闰年”,否则就输出“xxxx不是闰年”。(能被4整除,且不能被100整除的闰年)

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="utf-8">
    </head>
    <?php
    $result = "";
    $year = $_POST['year'];
    if (!empty($year)) {
        if ($year % 4 != 0) {
            $result = "不是闰年";
        }else if($year % 100 !=0){
            $result = "不是闰年";
        }else{
            $result = "是闰年";
        }
    }
    ?>
    <body>
    <form action="" method="post">
        请输入年份: <input type="number" maxlength="4" name="year">
        <button type="submit">提交</button>
        <?php echo $result;?>
    </form>
    </body>
    </html>
    

    请实现一个简单计算器,前面的输入框和后面的输入框进行运算(注意:下拉列表中的符号包括: + - * / %)
    点击“计算”后,可以根据选中的运算符,对两个数进行指定计算,并输出结果。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="utf-8">
    </head>
    
    <body>
    <?php
    $result = 0;
    $num1 = 0;
    $num2 = 0;
    if ($_POST){
        if(!isset($_POST['num1'])&&!isset($_POST['num2'])){
            $result = "请输入正确的参数";
            return;
        }
        $num1 = $_POST['num1'];
        $num2 = $_POST['num2'];
        switch ($_POST['type']){
            case 0:
    
            $result = $num1+$num2;
            break;
            case 1:
                $result = $num1-$num2;
                break;
            case 2:
                $result = $num1*$num2;
                break;
            case 4:
                $result = $num1/$num2;
                break;
        }
    }
    ?>
    <form action="" method="post">
        <input type="number"  name="num1">
        <select name="type">
            <option value="0" >+</option>
            <option value="1" >-</option>
            <option value="2" >*</option>
            <option value="3">/</option>
        </select>
        <input type="number"  name="num2">
        <button type="submit">计算</button>
        <?php echo $result;?>
    </form>
    </body>
    </html>
    

    一个小球从空中掉下来,请根据给定的条件,以及相关的自由落体规律,解决如下问题:
    a)如果已知小球掉落时的初始高度为1000m,求其触地瞬间的速度;

    b)如果已知小球落地瞬间的速度为1000m/s,求其掉落时的初始高度。
    附自由落体公式:
    自由落体的速度规律为:v=gt,
    自由落体的位移规律为:h=g
    t*t/2。
    其中g是重力加速度,在地球上g≈9.8m/s2;v是速度(米/秒),h高度(米),t是时间(秒)

    <?php
        $h = 1000;
        $g = 9.8;
        $t = sqrt($h*2/9.8);
        $v = 9.8*$t;
        echo "a)落地瞬时速度".$v."m/s<br>";
        $v = 1000;
        $t = $v/$g;
        $h = $g*$t*$t/2;
        echo "b)初始高度为".$h."m"
    ?>
    
    

    已知某校某年级的一次阶段考试情况是这样的:总人数接近500,总平均分80分,男生平均分79分,女生平均分84.3分。请使用所学知识(循环,穷举算法),求出男生女生各多少人。

    php
    for($i=450;$i<550;$i++){
        $female = $i/5.3;
        $male = $female*4.3;
    
        
        if(isInt($female)&&isInt($male)){
            echo '最终结果男生'.$male.'人,女生'.$female.'人<br>';
        }
    }
    
    function isInt($n){
        if(floor($n)==$n){
            return true;
        }else{
            return false;
        }
    }
    echo "算完了";
    ?>
    

    请使用循环逻辑语法,以及相应的规律提示信息,在网页上输出如下各个图案(其中的行数可以由一个变量$n来控制,以下图案为假设$n = 4的结果。)。

    <?php
    $row = 7;
    $column = 4;
    $nulln = 3;
    $rowStar = 1;
    $nulls = "&nbsp;";
    $stars = "*";
    for($i=0;$i<4;$i++) {
        if($i>0){
            $rowStar = 2;
        }
        $nullStr = "";
        $str = "";
        for($j=0;$j<$nulln-$i;$j++){
            $nullStr =  $nullStr . $nulls;
        }
    
        $str = $nullStr.$stars;
    
        for($k=0;$k<($row-$rowStar-$nulln*2+$i*2);$k++) {
            $str = $str . $nulls;
        }
        if($rowStar>1){
            $str = $str.$stars;
        }
        $str = $str.$nullStr;
        echo $str.'<br>';
    
    }
    

    定义一个函数,该函数可以接收一个数据(即实参)。该函数的功能是判断该数据是否是一个整数或整数字符串。如果是,则返回true,否则返回false
    测试用例:1, 1.23, 0, -1, “123”, “1.23”, “-1.23”, “abc”, “”;

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="utf-8">
    </head>
    
    <?php
     function isNum($num)
        {
            return is_numeric($num);
        }
    if ($_POST) {
        if (isNum($_POST['num'])) {
            echo '是数字';
        } else {
            echo '不是数字';
        }
    
       
    }
    ?>
    <body>
    <form action="" method="POST">
        请输入:<input type="text" name="num">
        <button type="submit">提交</button>
    
    </form>
    </body>
    

    定义一个函数,该函数能够判断一个数字是否是一个素数(也叫质数),是就返回true,否则就返回false。并利用该函数的功能,输出2-200之间的所有素数。
    注:素数就是只能被1和它本身整除的数。——即只有两个可以整除的数

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="utf-8">
    </head>
    
    <?php
        getNum();
    
        function getNum()
        {
            $total = 0;
           for($i =2;$i<201;$i++){
               $count = 0;
                for($j=1;$j<$i;$j++){
                    if($i%$j==0){
                        $count++;
                    }
                }
                if($count == 1){
                    $total++;
                    echo "质数为".$i."<br>";
                }
    
           }
            echo "总质数".$total;
        }
    ?>
    <body>
    
    </body>
    
    1. 递归

    有如下一个数列:1, 2, 3, 5, 8, 13, 21,....... 其规则是:前两个已知(即1和2),从第3个开始,其值为其左边两个值的和(此数列称为斐波那契数列)。定义一个函数,该函数可以求出该数列的任意第n个数的值。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="utf-8">
    </head>
    
    <?php
        getNum(8);
    
        function getNum($n)
        {
            $arr = array(1,2,);
            for($i=2;$i<$n;$i++){
                $arr[$i] = $arr[$i-1] + $arr[$i-2];
            }
            echo $arr[$n-1];
        }
    ?>
    <body>
    
    </body>
    
    1. 逻辑运算符

    定义一个函数,该函数可以求两个正数的最小公倍数。——倍数就是能被一个数整除的数,最小公倍数就是能同时被这两个数整除的最小的那个。比如6和8的最小公倍数是24,15和20的最小公倍数是60。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="utf-8">
    </head>
    
    <?php
    getNum(24,26);
    
    function getNum($n, $m)
    {
        if ($n > $m) {
            $max = $n;
            $min = $m;
        } else {
            $max = $m;
            $min = $n;
        }
        $a = 0;
        for($i = 1;$i<$min+1;$i++){
            if($max%$i==0&&$min%$i==0){
                $a = $i;
                
            }
        }
        
        echo $n/$a*$m;
    }
    
    ?>
    <body>
    
    </body>
    
    
    1. 递归使用

    计算5的阶层;
    分析:
    数学上阶乘可以这样来描述:一个数n的阶乘,是n-1的阶乘,乘以n的结果!
    假设,我们有一个函数 jieceng(),它可以计算任意正整数n的阶乘,类似这样:
    $n = 5; //或等于10, 13,等等都无所谓。
    $result = jiecheng($n);

    <?php
    $result = jiecheng(5);
    echo $result;
    
    function jiecheng($n)
    {
      if($n<2){
        return 1;
      }
        return jiecheng($n -1)*$n;
    }
    
    ?>
    

    15.随机数

    写一个函数,可以随机输出10-25之间的6个不重复的整数——取得随机数函数为rand();

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="utf-8">
    </head>
    
    <?php
    $result = getRand();
    
    
    function getRand()
    {
        $arr = array();
        $count = 0;
        while($count<6){
            $a = rand(10,25);
            echo $a.'<br>';
            if(!hasA($a,$arr)){
                $arr[$count] = $a;
                $count++;
            }
        }
        echo $arr;
        return $arr;
    }
    
    function hasA($a,$arr){
    
        $len = sizeof($arr);
        if($len==0){
            return false;
        }
        for($i=0;$i<$len;$i++){
            if($a == $arr[$i]){
                return true;
            }
        }
        return false;
    }
    ?>
    <body>
    
    </body>
    </html>
    
    1. 二位数组

    某旅游团有来自多个省市的旅客,每个省市分做一个小组,每个小组的人数和年龄都有所不同,如下所示:
    北京市3人:25岁,28岁,23岁
    河北省5人:22岁,23岁,30岁,25岁,20岁
    山东省4人:25岁,32岁,33岁,20岁
    请设计适当的数据类型以保存这些年龄数据,并求出整个旅游团的整体平均年龄。

    <?php
    $arr = Array(
      '北京市' => Array(25,28,23),
      '河北省' => Array(22,23,30,25,20),
      '山东省' => Array(25,32,33,20)
    );
    
    $up = 0;
    $down = 0;
    foreach($arr as $value){
        $down += sizeof($value);
         foreach ($value as $v){
            $up += $v; 
         }
    }
    echo $up/$down;
    
    1. 数组合并打乱

    请设计一个登录页面,包括用户名、密码和验证码3个输入框。验证码框右边显示验证码文字

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="utf-8">
    </head>
    <?php
    
        $result = "";
        $range1 = range('0','9');
        $range2 = range('a','z');
        $range3 = range('A','Z');
        $arr = array_merge($range1,$range2,$range3);
        shuffle($arr);
        $result = $arr[0]. $arr[1]. $arr[2]. $arr[3];
    ?>
    
    <body>
    <form action="" method = "GET">
        用户名:<input type="text" name="user"><br>
        密码:<input type="password" name="psd"><br>
        验证码:<input type="text" name="num"><?php echo $result?><br>
        <button type="submit">登录</button>
        
    </form>
    </body>
    
    
    1. 数组排序

    以下数据为某班的某次考试成绩,请使用任意一种排序算法对其进行排序后,按从高到低的顺序输出。
    $score = [82, 88, 67, 71, 92, 66, 78, 83, 85, 75, 76, 63, 55, 68, 71, 88, 90];

    <?php
    $score = [82, 88, 67, 71, 92, 66, 78, 83, 85, 75, 76, 63, 55, 68, 71, 88, 90];
    asort($score);
    var_dump($score);
    echo '<br>';
    arsort($score);
    var_dump($score);
    

    19.sql训练

    第1题:
    题型:实操题
    难度:1级
    题干: 合肥创仁元有限制公司信息部门准备做一个企业内部新闻管理系统,假如由你来负责这个项目.请在命令行下创建一个数据库db_news,并选择使用之.

    <?php
    //(1)数据库配置信息
    $db_host = "localhost"; //主机名  localhost:3306
    $db_port = "3306";      //端口号
    $db_user = "root";      //用户名
    $db_pass = "";      //密码
    $db_name = "db_news";   //数据库名
    $charset = "utf8";      //字符集
    
    //(2)PHP连接MySQL服务器
    if(!$link = @mysqli_connect($db_host.":".$db_port,$db_user,$db_pass))
    {
        echo "<h2>PHP连接MySQL服务器失败!</h2>";
        echo "系统错误信息:".mysqli_connect_error();
        die(); //中止程序向下运行
    }
    $sql = "CREATE DATABASE ".$db_name;
    
    //(3)创建数据库
    if($link->query($sql)==true){
        echo "Database created";
    }else{
        echo "Error creating database: " .$link->error;
        die();//中止程序向下运行
    }
    
    //(3)选中数据库
    if(!mysqli_select_db($link,$db_name))
    {
        echo "<h2>选择数据库{$db_name}失败!</h2>";
        die();
    }else{
        echo "<h2>选择数据库{$db_name}成功!</h2>";
    }
    
    //(4)设置数据库返回数据字符集
    mysqli_set_charset($link,$charset);
    
    //(5)关闭连接
    $link->close();
    

    第2题:
    题型:实操题

    难度:2级
    题干:陕西康鑫绿色食品有限公司,市场销售部,准备开发一个在线产品销售管理系统 ,通过需求分析,设计数据库名及表名,如下参数: 数据库名为db_goods,商品表tb_goods,商品表字段分别为,商品编号(id),名称(name),型号(type),产地(address),价格(price).商品编号自动增长并为主键.

    <?php
    //(1)数据库配置信息
    $db_host = "localhost"; //主机名  localhost:3306
    $db_port = "3306";      //端口号
    $db_user = "root";      //用户名
    $db_pass = "";      //密码
    $db_name = "db_goods";  //数据库名
    $tb_name = "tb_goods";  //表
    $charset = "utf8";      //字符集
    
    //(2)PHP连接MySQL服务器
    if(!$link = @mysqli_connect($db_host.":".$db_port,$db_user,$db_pass))
    {
        echo "<h2>PHP连接MySQL服务器失败!</h2>";
        echo "系统错误信息:".mysqli_connect_error();
        die(); //中止程序向下运行
    }
    $sql_cb = "CREATE DATABASE ".$db_name;
    
    
    //(3)选中数据库
    if(!mysqli_select_db($link,$db_name))
    {
        echo "<h2>选择数据库{$db_name}失败!</h2>";
        //(4)创建数据库
        if($link->query($sql_cb)==true){
            echo "Database created";
        }else{
            echo "Error creating database: " .$link->error;
            die();//中止程序向下运行
        }
    
    }else{
        echo "<h2>选择数据库{$db_name}成功!</h2>";
    }
    
    //(4)设置数据库返回数据字符集
    mysqli_set_charset($link,$charset);
    
    //(5)创建表
    $sql_ctable = "CREATE TABLE ".$tb_name."(
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
    name VARCHAR(30) NOT NULL,
    type VARCHAR(30) NOT NULL,
    address VARCHAR(50),
    price FLOAT
    )";
    
    
    if(mysqli_num_rows(mysqli_query($link,"SHOW TABLES LIKE '". $tb_name."'"))==1) {
        echo "Table exists";
    } else {
        echo "Table does not exist";
        if($link->query($sql_ctable)==true){
            echo "table created";
        }else{
            echo "Error creating table: " .$link->error;
            die();//中止程序向下运行
        }
    }
    
    
    //(5)关闭连接
    $link->close();
    

    第3题:
    题型:实操题
    难度:2级
    题干: 开发一个就业学生管理系统,来统计哪些专业相对容易就业.初步设计数据库及表如下: 数据库名job_db_student,表名job_tb_student。字段:学生编号,姓名,性别,年龄,在校所学专业及毕业时间。表创建好的之后,要求再增加两个字段,一是专业后增加联系方式,二是毕业时间后面增加一个籍贯.

    相关文章

      网友评论

          本文标题:每日练习

          本文链接:https://www.haomeiwen.com/subject/ulrvictx.html