PHP的数组练习实验

server/2024/11/14 6:48:59/

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

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

掌握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"><?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>

完整的代码:

php"><!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标签判断是否nullif (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>

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


http://www.ppmy.cn/server/29879.html

相关文章

SQLite如何处理CSV 虚拟表(三十七)

返回&#xff1a;SQLite—系列文章目录 上一篇&#xff1a;SQLite的DBSTAT 虚拟表&#xff08;三十六&#xff09; 下一篇:SQLite的扩展函数Carray()表值函数(三十八) ​ RFC4180格式是一种文本文件格式&#xff0c;被用于表格数据间的交互&#xff0c;也可将表格数据转化…

Mybatis高级

1. Mybatis多表查询概念 ​ 在学习多表查询的之前&#xff0c;我们要先明确多表的关系都有哪些&#xff0c;如何划分。 1.1 多表关系的划分 一对一 一对一的关系是两张表之间 A表的一条数据只能对应B表的一条数据。比如 订单表和用户表 一个订单只能属于…

【Node.js工程师养成计划】之express框架

一、Express 官网&#xff1a;http://www.expressjs.com.cn express 是一个基于内置核心 http 模块的&#xff0c;一个第三方的包&#xff0c;专注于 web 服务器的构建。 Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用&…

CogAgent:开创性的VLM在GUI理解和自动化任务中的突破

尽管LLMs如ChatGPT在撰写电子邮件等任务上能够提供帮助&#xff0c;它们在理解和与GUIs交互方面存在挑战&#xff0c;这限制了它们在提高自动化水平方面的潜力。数字世界中的自主代理是许多现代人梦寐以求的理想助手。这些代理能够根据用户输入的任务描述自动完成如在线预订票务…

SQL 基础 | AS 的用法介绍

SQL&#xff08;Structured Query Language&#xff09;是一种用于管理和操作数据库的标准编程语言。 在SQL中&#xff0c;AS关键字有几种不同的用法&#xff0c;主要用于重命名表、列或者查询结果。 以下是AS的一些常见用法&#xff1a; 重命名列&#xff1a;在SELECT语句中&a…

【跟马少平老师学AI】-【神经网络是怎么实现的】(八)循环神经网络

一句话归纳&#xff1a; 1&#xff09;词向量与句子向量的循环神经网络&#xff1a; x(i)为词向量。h(i)为含前i个词信息的向量。h(t)为句向量。 2&#xff09;循环神经网络的局部。 每个子网络都是标准的全连接神经网络。 3&#xff09;对句向量增加全连接层和激活函数。 每个…

【linux-汇编-点灯之思路-程序】

目录 1. ARM汇编中的一些注意事项2. IMXULL汇编点灯的前序&#xff1a;3. IMXULL汇编点灯之确定引脚&#xff1a;4. IMXULL汇编点灯之引脚功能编写&#xff1a;4.1 第一步&#xff0c;开时钟4.2 第二步&#xff0c;定功能&#xff08;MUX&#xff09;4.3 第三步&#xff0c;定电…

详细分析Java中的敏感词过滤(附Demo)

目录 前言1. 简易Demo2. 进阶Demo 前言 敏感词直接过滤&#xff0c;有效防止敏感信息的上传 本文主要给一个启发的思路 1. 简易Demo 通过简易的Demo机制了解基本原理 import java.util.HashSet; import java.util.Set;public class test {private Set<String> sensi…