每日练习

2019-11-22  本文已影响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。字段:学生编号,姓名,性别,年龄,在校所学专业及毕业时间。表创建好的之后,要求再增加两个字段,一是专业后增加联系方式,二是毕业时间后面增加一个籍贯.

上一篇下一篇

猜你喜欢

热点阅读