当前位置: 首页 > news >正文

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标签判断是否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>

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

相关文章:

PHP的数组练习实验

实 验 目 的 掌握索引和关联数组&#xff0c;以及下标和元素概念&#xff1b; 掌握数组创建、初始化&#xff0c;以及元素添加、删除、修改操作&#xff1b; 掌握foreach作用、语法、执行过程和使用&#xff1b; 能应用数组输出表格和数据。 任务1&#xff1a;使用一维索引数…...

P3743 小鸟的设备

原题链接&#xff1a;小鸟的设备 - 洛谷 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 浮点数二分答案。 首先特判&#xff0c;如果接通设备每秒生成的能量p大于等于所有设备每秒消耗的能量&#xff08;a[1]a[2]..a[n]&#xff09;直接输出-1&…...

数字旅游以科技创新为动力:推动旅游服务的智能化、网络化和个性化发展,满足游客日益增长的多元化、个性化需求

目录 一、引言 二、科技创新推动旅游服务智能化发展 1、智能化技术的引入与应用 2、智能化提升旅游服务效率与质量 三、科技创新推动旅游服务网络化发展 1、网络化平台的构建与运营 2、网络化拓宽旅游服务渠道与范围 四、科技创新推动旅游服务个性化发展 1、个性化需求…...

64位的IP地址设想

现有的IP地址 IPv4有32位&#xff0c;不够用了。 IPv6有128位&#xff0c;相当多。 实际上&#xff0c;23385亿&#xff0c;只要在IPv4的基础上&#xff0c;加1比特就够用了&#xff0c;IPv6有些太长了。 64位的IP地址 这是个设想。 64位分成七段&#xff0c;8888881664&…...

1.python爬虫爬取视频网站的视频可下载的源url

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、爬取的源网站二、实现代码总结 一、爬取的源网站 http://www.lzizy9.com/ 在这里以电影片栏下的动作片为例来爬取。 可以看到视频有多页&#xff0c;因此需要…...

Linux目录结构

目录结构必背 &#xff01;&#xff01;&#xff01;&#xff01;&#xff08;在生产环境中必须知道自己在哪个目录下&#xff09;...

电脑问题2【彻底删除CompatTelRunner】

彻底删除CompatTelRunner 电脑偶尔会运行CompatTelRunner造成CPU占用的资源非常大,所以这里要想办法彻底关闭他 本文摘录于&#xff1a;https://mwell.tech/archives/539只是做学习备份之用&#xff0c;绝无抄袭之意&#xff0c;有疑惑请联系本人&#xff01; 解决办法是进入W…...

【算法】【贪心算法】【leetcode】870. 优势洗牌

题目地址&#xff1a;https://leetcode.cn/problems/advantage-shuffle/description/ 题目描述&#xff1a; 给定两个长度相等的数组 nums1 和 nums2&#xff0c;nums1 相对于 nums2 的优势可以用满足 nums1[i] > nums2[i] 的索引 i 的数目来描述。 返回 nums1 的任意排列&…...

Unity AVProVideo安卓播放视频问题

打包ARM64,插件里arm64里的几个库都设置arm64,平台选择安卓 Unity VideoPlayer使用url方式,Android平台下无法播放http链接的视频 主要原因:默认情况下,不允许从Android 8开始使用不安全的HTTP,并且必须使用HTTPS,除非分配了自定义的明文安全策略 解决办法: 只需要修…...

Redis使用手册之字符串

《Redis使用手册字符串设置》 目录 **《Redis使用手册字符串设置》**** SET&#xff1a;为字符串键设置值**** GETSET&#xff1a;获取旧值并设置新值**** MSET&#xff1a;一次为多个字符串键设置值**MGET&#xff1a;一次获取多个字符串键的值**** MSETNX&#xff1a;只在键不…...

嵌入式Linux学习第二天

今天学习linuxC编程。首先要熟悉linux下编写c程序的过程。 编写程序Hello World! 首先创建存放程序的文件夹&#xff0c;如下图所示&#xff1a; 接下来在创建一个文件夹来保存这节要编写的代码。指令&#xff1a;mkdir 3.1 接下来我们要设置VIM编辑器的一些配置&#xff0…...

【intro】图卷积神经网络(GCN)

本文为Graph Neural Networks(GNN)学习笔记-CSDN博客后续&#xff0c;内容为GCN论文阅读&#xff0c;相关博客阅读&#xff0c;kaggle上相关的数据集/文章/代码的阅读三部分&#xff0c;考虑到本人是GNN新手&#xff0c;会先从相关博客开始&#xff0c;进一步看kaggle&#xff…...

【Web】CTFSHOW 新手杯 题解

目录 easy_eval 剪刀石头布 baby_pickle repairman easy_eval 用script标签来绕过 剪刀石头布 需要赢100轮&#x1f914; 右键查看源码拿到提示 一眼session反序列化 打PHP_SESSION_UPLOAD_PROGRESS 脚本 import requestsp1 a|O:4:"Game":1:{s:3:"log…...

react 学习笔记二:ref、状态、继承

基础知识 1、ref 创建变量时&#xff0c;需要运用到username React.createRef()&#xff0c;并将其绑定到对应的节点。在使用时需要获取当前的节点&#xff1b; 注意&#xff1a;vue直接使用里面的值&#xff0c;不需要再用this。 2、状态 组件描述某种显示情况的数据&#…...

[SaaS]建筑领域的sd应用

AirchiDesignhttp://www.aiarchi.art/#/建筑学长——千万建筑师的资源库和AI绘图创作平台建筑学长官网,为青年设计师建立的线上资源共享及AI绘图创作渲染平台,免费提供海量设计案例、CAD图纸、SU模型、PS素材、软件插件下载,提供丰富的设计软件教学与灵感参考素材图库。https:/…...

气象数据nc数据矢量化处理解析及可视化

气象数据可视化是将气象学领域中复杂的数据集转化为图形或图像的过程&#xff0c;以直观展示天气现象、气候模式、趋势和预报结果。气象数据的可视化技术广泛应用于科学研究、气象预报、航空、航海、农业生产、灾害预警系统、城市规划、公众服务等领域。以下是一些关键的气象数…...

APP广告变现,开发者对接百度广告联盟,广告变现收益如何?

百度广告联盟属于广告整合平台&#xff0c;类似的还有穿山甲、优量汇、快手联盟等。 百度广告联盟注册流程&#xff1a; 创建账户&#xff1a;填写用户基本信息&#xff0c;如&#xff1a;用户名、密码、邮箱、手机号&#xff1b; 完善财务信息&#xff1a;填写银行账号、开…...

spring Ai框架整合Ollama,调用本地大模型

Ollama使用 Ollama是一个用于在本地计算机上运行大模型的软件 软件运行后监听11434端口&#xff0c;自己写的程序要调大模型就用这个端口 ollama命令 ollama list&#xff1a;显示模型列表 ollama show&#xff1a;显示模型的信息 ollama pull&#xff1a;拉取模型 ollama pu…...

八股spring+springboot+springMVC+Mybatis(一)

目录 1、面试官&#xff1a;Spring框架中的单例bean是线程安全的吗&#xff1f; 2、面试官&#xff1a;什么是AOP 3、面试官&#xff1a;你们项目中有没有使用到AOP 4、面试官&#xff1a;Spring中的事务是如何实现的 5、面试官&#xff1a;Spring中事务失效的场景有哪些 6、面…...

(六)SQL系列练习题(下)#CDA学习打卡

目录 三. 查询信息 16&#xff09;检索"1"课程分数小于60&#xff0c;按分数降序排列的学生信息​ 17&#xff09;*按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩 18&#xff09;*查询各科成绩最高分、最低分和平均分 19&#xff09;*按各科成绩…...

python数据处理(pandas)

# 新的数据格式&#xff0c;csv纯文本&#xff0c;使用某个字符集&#xff0c;比如都是ASCII、Unicode、EBCDIC或GB2312&#xff08;简体中文环境&#xff09;等&#xff1b;由记录组成&#xff08;典型的是每行一条记录&#xff09;每条记录被分隔符&#xff08;英语&#xff…...

微信小程序开发秘籍:玩转麦克风录音与音频上传【代码示例】

微信小程序开发秘籍&#xff1a;玩转麦克风录音与音频上传【代码示例】 基本概念麦克风录音音频上传 实战演练1. 初始化录音功能2. 设计录音界面3. 实现音频上传安全性与性能优化 结语与讨论 在移动互联网时代&#xff0c;语音交互已成为提升用户体验的重要手段之一。微信小程序…...

spring的核心详解

Spring 核心详解 文章目录 Spring 核心详解前言什么是springspring的优点spring用到了哪些设计模式 什么是AOPAOP的实现方式静态代理动态代理 什么是IOCIOC的好处什么是依赖注入 前言 什么是spring Spring是一个开源的Java/Java EE全功能栈&#xff08;full-stack&#xff09…...

一、写给Android开发者之harmony入门

一、创建新项目 对比 android-studio&#xff1a;ability类似安卓activity ability分为两种类型(Stage模型) UIAbility和Extensionability&#xff08;提供系统服务和后台任务&#xff09; 启动模式 1、 singleton启动模式&#xff1a;单例 2、 multiton启动模式&#xff1…...

C++常用库函数——strstr、strcat

1、strstr&#xff1a;查找字符串子串函数&#xff0c;查找到的子串中第一个字符的地址&#xff0c;返回值是第一次出现子串字符串的位置。 例如&#xff1a; char a[20] "RUNOOB"; char b[10] "NOOB"; printf("%s", strstr(a, b)); 在这里…...

Kafak 消费异常:The coordinator is not available.

Kafak 消费异常:The coordinator is not available. 1. 问题描述2. 问题排查2.1 Topic 状态异常2.2 `__consumer_offsets` 简介1. 问题描述 在新环境部署 Kafak 时,发现可以正常产生消息,但是无法正常消费消息,消费消息的异常日志如下: 11:59:53.315 [main] DEBUG org.a…...

JavaScript中的对象

这里写目录标题 JavaScript中的对象属性 对象的使用属性和访问方法和调用遍历对象null 内置对象Math属性方法 JavaScript中的对象 对象&#xff08;object&#xff09;是JavaScript里的一种数据类型&#xff0c;可以理解为一种无序的数据集合&#xff08;数组是有序的数据集合…...

Oracle对空值(NULL)的 聚合函数 排序

除count之外sum、avg、max、min都为null&#xff0c;count为0 Null 不支持加减乘除&#xff0c;大小比较&#xff0c;相等比较&#xff0c;否则只能为空&#xff1b;只能用‘is [not] null’来进行判断&#xff1b; Max等聚合函数会自动“过滤null” null排序默认最大&#xf…...

我独自升级崛起下载教程 我独自升级崛起一键下载

动作RPG游戏基于广大喜爱的动画和在线漫画《我独自升级崛起》在5月8日&#xff0c;这款新的游戏首次在全球亮相&#xff0c;意在给那些对游戏情有独钟的玩家带来更加丰富和多种多样的游戏体验。这个网络武侠题材的游戏设计非常具有创意&#xff0c;其主要故事围绕着“独孤求败”…...

RS2057XH功能和参数介绍及规格书

RS2057XH 是一款由润石科技&#xff08;Runic Semiconductor&#xff09;生产的模拟开关芯片&#xff0c;其主要功能和参数如下&#xff1a; 产品特点&#xff1a; 低电压操作&#xff1a;支持低至1.8V的工作电压&#xff0c;适用于低功耗应用。 高带宽&#xff1a;具有300MHz的…...

石家庄制作网站的公司/恢复2345网址导航

三个月前因为工作上的需要&#xff0c;开始接触网络知识。因为我的工作面对的是网站&#xff0c;负责对网站进行优化&#xff0c;所以在范围那么大的网络知识中只需要学习其中的一小部分就可以了。网站优化在行业中叫做“seo”(Search Engine Optimization)汉译为搜索引擎优化。…...

郑州网站建设专家/怎么建立企业网站

以下代码均需要导入numpy,故省略 import numpy as np 1、基本操作&#xff1a; import numpy as npa np.array([1, 2, 3]) print(a) print(type(a)) # 查看数组类型 print(a.shape) # 查看大小# 通过使用reshape明确将数组指定行列关系 b a.reshape(1, -1) # 第一个1表…...

做企业网站软件/怎么做网站推广

git仓库地址&#xff1a;GitHub - AceAZhe/py-tools: py实用工具 基于python的pyqt5实现的小工具...

怎么使用免费的wordpress/为什么打开网址都是站长工具

在Centos中yum安装和卸载软件的使用方法安装方法安装一个软件时yum -y install httpd安装多个相类似的软件时yum -y install httpd*安装多个非类似软件时yum -y install httpd php php-gd mysql 卸载一个软件时yum -y remove httpd卸载多个相类似的软件时yum -y remove httpd*卸…...

软件设计包括哪些内容/seo信息查询

BI&#xff08;Business intelligence 商业智能&#xff09; BI商业智能&#xff0c;是一套完整的解决方案&#xff0c;将企业中现有的数据进行整合&#xff0c;提供报表和决策依据&#xff0c;以帮助企业作出明智的业务决策。BI 数据仓库OLAP分析数据挖掘可视化&#xff0c;…...

网站建设公司浙江/软文写作平台发稿

逆透视转换将来自单个记录中多个列的值扩展为单个列中具有同样值的多个记录&#xff0c;使得非规范的数据集成为较规范的版本。例如&#xff0c;每个客户在列出客户名的数据集中各占一行&#xff0c;在该行的各列中显示购买的产品和数量。逆透视转换将数据集规范之后&#xff0…...