PHP的数组练习实验

掌握索引和关联数组,以及下标和元素概念;

掌握数组创建、初始化,以及元素添加、删除、修改操作;

掌握foreach作用、语法、执行过程和使用;

能应用数组输出表格和数据。

任务1:使用一维索引数组存储医生年龄(随机生成一组年龄数组,年龄范围为22-60),使用foreach找出最大年龄、最小龄,算出平均年龄。

任务2:使用二维关联数组描述下表学生信息,并用表格输出学生信息,要求算出单科平均成绩。扩展(选做):借助数组函数分别按单科成绩从高到低排序。

姓名

英语成绩

数学成绩

语文成绩

张三

78

99

87

李四

88

88

79

老五

65

90

93

平均成绩

77

?

?

任务一:先搭建首页的页面

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        .box {
            width: 800px;
            height: 200px;
            background-color: #e4dfdf;
            margin: 100px auto;
            padding-top: 15px;
        }

        .box h1 {
            text-align: center;
            font-weight: 400;
        }

        .box .num {
            width: 400px;
            height: 50px;
        }

        form {
            margin-top: 55px;
            font-size: 22px;
        }
    </style>
</head>

<body>
    <div class="box">
        <h1>求医生年龄的最值</h1>
        <form action="doctor_ages.php">
            请输入您要生成的多少位医生的年龄:<input type="number" name="number" class="num"></form></br>
        </form>

        
    </div>
</body>

</html>

首页页面是给用户去生成多少位医生的年龄。

生成了多少位医生的年龄后去求医生的最大年龄和最小年龄,和平均年龄。

实验步骤:

<?php

$Dnumber = $_REQUEST["number"];
Calculate($Dnumber);
    function Calculate($n){
        //创建一个年龄数组
        $ages =array();
        for($i=0;$i<$n;$i++){
            $ages[$i] =rand(20,60);
        }

        echo "生成的数组是:";
        for($i=0;$i<$n;$i++){
            if($i==($n-1)){
                echo $ages[$i]." ";
            }
            else {
                echo $ages[$i] . " , ";
            }
        }
        echo "</br>";
        $AgeMax = $ages[0];
        $AgeMin = $ages[0];
        $AgeSum=0;
        for($i=0;$i<$n;$i++){
           
            if($ages[$i]>$AgeMax){
                $AgeMax=$ages[$i];
            }
            if($ages[$i]<$AgeMin){
                $AgeMin=$ages[$i];
            }
            $AgeSum=$AgeSum+$ages[$i];
        }  
        echo "医生的最大年龄是".$AgeMax."</br>";
        echo "医生的最小年龄是".$AgeMin."</br>";
        echo "医生的平均年龄".round($AgeSum/count($ages),2);
    }
?> 

任务二:

使用HTML+CSS搭建琦基础页面

<!DOCTYPE html>
<html>

<head> 
    <meta charset="utf-8"> 
    <title>菜鸟教程(runoob.com)</title> 
    <link rel="stylesheet" href="https://cdn.staticfile.net/twitter-bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="https://cdn.staticfile.net/jquery/2.1.1/jquery.min.js"></script>
    <script src="https://cdn.staticfile.net/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
    <style>
        h1 {
            text-align: center;
        }

        table {
            margin: 0 auto;
        }

        tr h2 {
            margin-left: 20px;
        }

        form input {
            width: 70%;
            height: 40px;
            margin-bottom: 5px;
            border-radius: 10px;
        }

        form label {
            padding-left: 20px;
        }

        form button {
            background-color: #5bc0de;
            border-color: #46b8da;
            display: inline-block;
            padding: 6px 12px;
            margin-bottom: 0;
            font-size: 18px;
            font-weight: 400;
            line-height: 1.42857143;
            text-align: center;
            white-space: nowrap;
            vertical-align: middle;
            -ms-touch-action: manipulation;
            touch-action: manipulation;
            cursor: pointer;
            -webkit-user-select: none;
            -moz-user-select: none;
            -ms-user-select: none;
            user-select: none;
            background-image: none;
            border-radius: 4px;
            margin-left: 90px;
            margin-top: 10px;
            width: 69%;

        }

        form button a {
            color: #fff;
        }

        form button a:hover {
            color: #18f508;
            text-decoration: none;
        }
    </style>
</head>

<body>

    <table width="80%" border="0">
        <tr>
            <td colspan="2" style="background-color:#FFA500;">
                <h1>学生成绩查询</h1>
            </td>
        </tr>

        <tr>
            <td style="background-color:#FFD700;width:200px;vertical-align:top;">
                <h2>添加学生成绩信息</h2>

                <form method="get" action="">
                    <label for="name">学生 姓名:</label>
                    <input type="text" id="name" name="name" placeholder="姓名">
                    <br>

                    <label for="englishScore">英语 成绩:</label>
                    <input type="number" id="englishScore" name="englishScore" min="0" max="100" placeholder="英语成绩">
                    <br>

                    <label for="mathScore">数学 成绩:</label>
                    <input type="number" id="mathScore" name="mathScore" min="0" max="100" placeholder="数学成绩">
                    <br>

                    <label for="chineseScore">语文 成绩:</label>
                    <input type="number" id="chineseScore" name="chineseScore" min="0" max="100" placeholder="语文成绩">
                    <br>
                    <button type="submit" name="submit">
                        <a href="">添&nbsp;&nbsp;&nbsp;加</a>
                    </button>

                    <h2>删除学生成绩信息</h2>
                    <label for="name">学生 姓名:</label>
                    <input type="text" id="name" name="dname" placeholder="姓名">
                    <br>

                    <button type="submit" name="dsubmit">
                        <a href="">删&nbsp;&nbsp;&nbsp;除</a>

                    </button>
                </form>
            </td>

完整的代码:

<!DOCTYPE html>
<html>

<head> 
    <meta charset="utf-8"> 
    <title>菜鸟教程(runoob.com)</title> 
    <link rel="stylesheet" href="https://cdn.staticfile.net/twitter-bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="https://cdn.staticfile.net/jquery/2.1.1/jquery.min.js"></script>
    <script src="https://cdn.staticfile.net/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
    <style>
        h1 {
            text-align: center;
        }

        table {
            margin: 0 auto;
        }

        tr h2 {
            margin-left: 20px;
        }

        form input {
            width: 70%;
            height: 40px;
            margin-bottom: 5px;
            border-radius: 10px;
        }

        form label {
            padding-left: 20px;
        }

        form button {
            background-color: #5bc0de;
            border-color: #46b8da;
            display: inline-block;
            padding: 6px 12px;
            margin-bottom: 0;
            font-size: 18px;
            font-weight: 400;
            line-height: 1.42857143;
            text-align: center;
            white-space: nowrap;
            vertical-align: middle;
            -ms-touch-action: manipulation;
            touch-action: manipulation;
            cursor: pointer;
            -webkit-user-select: none;
            -moz-user-select: none;
            -ms-user-select: none;
            user-select: none;
            background-image: none;
            border-radius: 4px;
            margin-left: 90px;
            margin-top: 10px;
            width: 69%;

        }

        form button a {
            color: #fff;
        }

        form button a:hover {
            color: #18f508;
            text-decoration: none;
        }
    </style>
</head>

<body>

    <table width="80%" border="0">
        <tr>
            <td colspan="2" style="background-color:#FFA500;">
                <h1>学生成绩查询</h1>
            </td>
        </tr>

        <tr>
            <td style="background-color:#FFD700;width:200px;vertical-align:top;">
                <h2>添加学生成绩信息</h2>

                <form method="get" action="">
                    <label for="name">学生 姓名:</label>
                    <input type="text" id="name" name="name" placeholder="姓名">
                    <br>

                    <label for="englishScore">英语 成绩:</label>
                    <input type="number" id="englishScore" name="englishScore" min="0" max="100" placeholder="英语成绩">
                    <br>

                    <label for="mathScore">数学 成绩:</label>
                    <input type="number" id="mathScore" name="mathScore" min="0" max="100" placeholder="数学成绩">
                    <br>

                    <label for="chineseScore">语文 成绩:</label>
                    <input type="number" id="chineseScore" name="chineseScore" min="0" max="100" placeholder="语文成绩">
                    <br>
                    <button type="submit" name="submit">
                        <a href="">添&nbsp;&nbsp;&nbsp;加</a>
                    </button>

                    <h2>删除学生成绩信息</h2>
                    <label for="name">学生 姓名:</label>
                    <input type="text" id="name" name="dname" placeholder="姓名">
                    <br>

                    <button type="submit" name="dsubmit">
                        <a href="">删&nbsp;&nbsp;&nbsp;除</a>

                    </button>
                </form>
            </td>
            <td style="background-color:#eeeeee;height:550px;width:300px;vertical-align:top;padding-left:15px">
                <?php
                //二维数组
                $student = array(
                    "张三" => array("英语成绩" => 78, "数学成绩" => 99, "语文成绩" => 87),
                    "李四" => array("英语成绩" => 88, "数学成绩" => 88, "语文成绩" => 79),
                    "王五" => array("英语成绩" => 65, "数学成绩" => 90, "语文成绩" => 93)
                );
                //平均值和最大值初始
                $average = ["英语成绩" => 0, "数学成绩" => 0, "语文成绩" => 0];
                $maxvalue = ["英语成绩" => 0, "数学成绩" => 0, "语文成绩" => 0];

                //(添加修改)用的button标签判断是否null
                if (isset($_REQUEST['submit'])) {
                    //获取数据
                    $name = $_REQUEST['name'];
                    $englishScore = $_REQUEST['englishScore'];
                    $chineseScore = $_REQUEST['chineseScore'];
                    $mathScore = $_REQUEST['mathScore'];
                    //判断数组中是否存在该键
                    if (array_key_exists($name, $student)) {
                        //存在提示
                        echo "修改成功";
                    } else {
                        //不存在提示
                        echo "添加成功!";
                    }
                    //存在替换,不存在添加
                    $student[$name] = array(
                        "语文成绩" => $chineseScore,
                        "数学成绩" => $mathScore,
                        "英语成绩" => $englishScore
                    );
                }
                //删除
                if (isset($_REQUEST['dsubmit'])) {
                    //获取数据
                    $name = $_REQUEST['dname'];
                    //判断是否有键
                    if (array_key_exists($name, $student)) {
                        unset($student[$name]);
                        echo "删除成功";
                    } else {
                        echo "没有该学生!";
                    }
                }

                //遍历数组
                if ($student) {
                    echo "<h2>信息</h2>";
                    echo "<table border='1'>";
                    echo "<tr>
                    <th width='150px'>姓名</th>
                    <th width='150px'>英语 成绩</th>
                    <th width='150px'>数学 成绩</th>
                    <th width='150px'>语文 成绩</th>
                    </tr>";

                    foreach ($student as $name => $subjects) {
                        //平均值先求和
                        $average["英语成绩"] += $subjects["英语成绩"];
                        $average["数学成绩"] += $subjects["数学成绩"];
                        $average["语文成绩"] += $subjects["语文成绩"];
                        echo "<tr>";
                        echo "<td>" . $name . "</td>";
                        //找出单科最高成绩
                        foreach ($subjects as $subject => $score) {
                            if ($score > $maxvalue[$subject]) {
                                $maxvalue[$subject] = $score;
                            }
                            echo "<td>" . $score . "</td>";
                        }
                        echo "</tr>";
                    }
                    //平均成绩:求和结果除个数
                    $average["英语成绩"] /= count($student);
                    $average["数学成绩"] /= count($student);
                    $average["语文成绩"] /= count($student);
                    //取整数
                    $average["英语成绩"] = round($average["英语成绩"], 0);
                    $average["数学成绩"] = round($average["数学成绩"], 0);
                    $average["语文成绩"] = round($average["语文成绩"], 0);

                    echo "<tr>";
                    echo "<td>" . "平均" . "\n" . "</td>" . "<td>" . $average["英语成绩"] . "\n" . "</td>" . "<td>" . $average["数学成绩"] . "\n" . "</td>" . "<td>" . $average["语文成绩"];
                    echo "</tr>";
                    echo "<tr>";
                    echo "<td>" . "单科最高成绩" . "</td>" . "<td>" . $maxvalue["英语成绩"] . "</td>" . "<td>" . $maxvalue["数学成绩"] . "</td>" . "<td>" . $maxvalue["语文成绩"] . "</td>";
                    echo "</tr>";
                    echo "</table>";
                }

                //运用数组函数排序
                rsort($student["张三"]);
                rsort($student["李四"]);
                rsort($student["王五"]);
                echo "<br>";
                echo  "张三成绩降序排序:";
                foreach ($student["张三"] as $va) {
                    echo  "\n" . $va;
                }
                // echo "张三成绩排序:".$student["张三"][0]."\n".$student["张三"][1]."\n".$student["张三"][2];
                echo "<br>";
                echo  "李四成绩降序排序:";
                foreach ($student["李四"] as $va) {
                    echo  "\n" . $va;
                }
                echo "<br>";
                echo  "王五成绩降序排序:";
                foreach ($student["王五"] as $va) {
                    echo  "\n" . $va;
                }


                ?>
            </td>
        </tr>

       
    </table>

</body>

</html>

注意:本实验是笔者在校老师布置的任务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/589897.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

GPT是什么?直观解释Transformer | 深度学习第5章 【3Blue1Brown 官方双语】

【官方双语】GPT是什么&#xff1f;直观解释Transformer | 深度学习第5章 0:00 - 预测&#xff0c;采样&#xff0c;重复&#xff1a;预训练/生成式/Transformer模型 3:03 - Transformer 的内部结构 6:36 - 本期总述 7:20 - 深度学习的大框架 12:27 - GPT的第一层&#xff1a;…

(一)JSP教程——JSP脚本标签

JSP脚本标签 JSP脚本标签通常用作对象操作和数据运算&#xff0c;从而动态地生成页面内容。这里有三种类型的脚本标签&#xff1a;声明、代码段和表达式。 JSP声明 JSP声明一个或多个变量、方法&#xff0c;供以后的代码使用。必须先对变量和方法进行声明&#xff0c;才能使用…

golang学习笔记(内存逃逸分析)

golang的内存逃逸 逃逸分析&#xff08; Escape analysis&#xff09; 是指由编译器决定内存分配的位置&#xff0c; 不需要程序员指定。 函数中申请一个新的对象。 如果分配在栈中&#xff0c; 则函数执行结束可自动将内存回收&#xff1b;如果分配在堆中&#xff0c; 则函数…

微软开源 MS-DOS「GitHub 热点速览」

上周又是被「大模型」霸榜的一周&#xff0c;各种 AI、LLM、ChatGPT、Sora、RAG 的开源项目在 GitHub 上“争相斗艳”。这不 Meta 刚开源 Llama 3 没几天&#xff0c;苹果紧跟着就开源了手机端大模型&#xff1a;CoreNet。 GitHub 地址&#xff1a;github.com/apple/corenet 开…

网络安全前置知识-linux操作系统

计算机体系结构 计算机发展历史 计算机组成 计算机硬件组成 1. CPU 原文链接&#xff1a;https://blog.csdn.net/stone_fall/article/details/88414017 一条指令的执行过程分为以下5个周期&#xff1a; 取指令周期&#xff08;Instruction Fetch&#xff0c;IF&#xff…

【Cpp】类和对象

标题&#xff1a;【Cpp】类和对象 水墨不写bug 正文开始&#xff1a; &#xff08;一&#xff09;面向过程与面向对象 面向过程和面向对象是两种不同的编程思想。 面向过程指的是将程序分解成多个步骤&#xff0c;每个步骤都是一个独立的函数&#xff0c;通过函数之间的调用实…

使用OneAPI创建LLM访问API Key

OneAPI 是一个能替代 springdoc-openapi/Swagger 的 API 生产工具&#xff0c;既不需要修改后端代码&#xff0c;也不需要启动应用。 也支持导出 OpenAPI 3.0 协议数据&#xff0c;方便在其他工具中消费。 前面我们介绍了LobeChat需要配置LLM的API访问Key&#xff0c;今天你可…

《架构即未来》读后感

目录 一、引言 二、《架构即未来》读后感 1、主题的简要介绍 2、我的看法和理解 3、作者的优点和传递的信息 4、思想如何适用于当今社会 三、《架构即未来》对于企业发展的影响具体体现在哪些方面&#xff1f; 一、引言 任何一个持续成长的公司最终都需要解决系统、组织…

【讲解下如何解决一些常见的 Composer 错误】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

【Spring AI】09. ETL 管道

文章目录 ETL PipelineAPI 概述入门指南ETL 接口和实现DocumentReaderJsonReaderTextReaderPagePdfDocumentReaderParagraphPdfDocumentReaderTikaDocumentReader DocumentTransformerTextSplitterTokenTextSplitterContentFormatTransformerKeywordMetadataEnricherSummaryMet…

Ftrans文件外发系统 构建安全可控文件外发流程

文件外发系统是企业数据安全管理中的关键组成部分&#xff0c;它主要用于处理企业内部文件向外部传输的流程&#xff0c;确保数据在合法、安全、可控的前提下进行外发。 文件外发系统的主要作用包括&#xff1a; 1、防止数据泄露&#xff1a;通过严格的审批流程和安全策略&…

【强训笔记】day7

NO.1 思路&#xff1a;双指针模拟&#xff0c;begin表示最长数字字符串最后一个字符&#xff0c;而len表示数字字符串的长度&#xff0c;i用来遍历&#xff0c;如果为数字&#xff0c;那么定义j变量继续遍历&#xff0c;直到不为数字&#xff0c;i-j如果大于len&#xff0c;就…

LabVIEW机械臂控制与图像处理示教平台

LabVIEW机械臂控制与图像处理示教平台 随着工业自动化技术的快速发展&#xff0c;工业机器人在制造业中的应用越来越广泛&#xff0c;它们在提高生产效率、降低人工成本以及保证产品质量方面发挥着重要作用。然而&#xff0c;传统的工业机器人编程和操作需要专业知识&#xff…

深入理解vector 【C++】

一、vector的介绍&#xff1a; 1.vector是表示可变大小的顺序容器。 2.就像数组一样&#xff0c;vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素 进行访问&#xff0c;和数组一样高效。但是又不像数组&#xff0c;它的大小是可以动态改变的&am…

【C++STL详解(五)】--------list的介绍与使用

目录 前言 一、list的介绍 二、list的使用 Ⅰ.默认成员函数 1、构造函数 2、赋值重载 3、析构函数 Ⅱ、容量 1.size() Ⅲ、迭代器与遍历 1.beginend (正向迭代器) 2.rbeginrend (反向迭代器) 3.front 4.back Ⅳ、增删查改 1.push_front 2.pop_front 3.push_b…

Matlab|二阶锥松弛在配电网最优潮流计算中的应用

目录 一、主要内容 二、部分代码 三、程序代码 四、下载链接 一、主要内容 最优潮流计算是电网规划、优化运行的重要基础。首先建立了配电网全天有功损耗最小化的最优潮流计算模型&#xff1b;其次结合辐射型配电网潮流特点建立支路潮流约束&#xff0c;并考虑配电网中的可…

平平科技工作室-Python-步步惊心

一.准备图片 放在 文件夹取名为imgs,分为两种boys和girls 二.编写程序 首先创建一个文件名为index.py 其次编写程序 # coding:utf-8 import sys, time, easygui, os, pygame from pygame.locals import * pygame.init() # 设置窗口显示位置、大小、颜色、标题 os.environ[ …

Go语言的包管理工具go mod与之前的GOPATH有什么区别?

在深入探讨Go语言的包管理工具go mod与之前的GOPATH之间的区别之前&#xff0c;我们首先需要理解这两个概念各自的作用和背景。 GOPATH时代 在Go语言早期版本中&#xff0c;GOPATH是一个非常重要的环境变量。它告诉Go工具链在哪里查找你的Go代码、第三方库以及编译后的二进制…

C#描述-计算机视觉OpenCV(4):图像分割

C#描述-计算机视觉OpenCV&#xff08;4&#xff09;&#xff1a;图像分割 前言用 GrabCut 算法分割图像实例展示 前言 本文中如果有什么没说明的地方&#xff0c;大概率在前文中描述过了。 C#描述-计算机视觉OpenCV&#xff08;1&#xff09;&#xff1a;基础操作 C#描述-计算…

docker 指定根目录 迁移根目录

docker 指定根目录 1、问题描述2、问题分析3、解决方法3.1、启动docker程序前就手动指定docker根目录为一个大的分区(支持动态扩容)&#xff0c;事前就根本上解决根目录空间不够问题3.1.0、方法思路3.1.1、docker官网安装文档3.1.2、下载docker安装包3.1.3、安装docker 26.1.03…