javaScript蓝桥杯---新增地址

news2024/11/26 16:58:08

目录

  • 一、介绍
  • 二、准备
  • 三、目标
  • 四、代码
  • 五、完成


一、介绍

网购大家应该再熟悉不过,网购中有个很难让人忽略的功能就是地址管理,接下来就让我们通过完善代码来探索下地址管理中常用功能的实现吧~

本题需要在已提供的基础项目中使用 JS 知识完善代码,最终实现需求中的具体功能。

二、准备

开始答题前,需要先打开本题的项目代码文件夹,目录结构如下:

├── effect.gif
├── index.html
├── css
├── images
└── js
    ├── data.js
    └── index.js

其中:

effect.gif 是最终实现的效果图。
index.html 是主页面。
css 是样式文件夹。
images 是图片文件夹。
js/data.js 是省市区列表数据。
js/index.js 是需要补充代码的 js 文件。

在浏览器中预览 index.html 页面,显示如下所示:
在这里插入图片描述

三、目标

请在 js/index.js 文件中补全代码,最终实现以下需求:

  1. 实现省市二级联动功能。
    • 页面加载后省份下拉列表数据正常渲染。
    • 在省份列表中选取某个数据后,对应的市区数据会渲染在其右侧的市区列表中。效果如下:
    • 在这里插入图片描述
  2. 实现对提交的表单信息的验证功能。
    • 填写表单信息,其中地址、联系人和手机号为必填项,有一项为空则点击保存按钮会弹出提示窗,点击提示窗周围的半透明蒙层后,该窗口会关闭。效果如下:
    • 在这里插入图片描述
  3. 实现选择标签显示激活样式功能。
    • 点击标签列表中的某个标签(例如:公司),该标签显示激活样式(即 .active**),其他未选择标签显示默认样式**。效果如下:
      在这里插入图片描述
  4. 实现新增地址被正确渲染功能。
    • 点击保存按钮,表单数据将以列表的形式显示在原有数据的上方,即整个地址列表的首位。效果如下:
      在这里插入图片描述
  • 表单数据在地址列表中显示时,对应的标签有其不同的样式,具体如下:
    • 家:.home。
    • 公司:.company。
    • 学校:.school。

完成后的效果见文件夹下面的 gif 图,图片名称为 effect.gif(提示:可以通过 VS Code 或者浏览器预览 gif 图片)。

规定
在这里插入图片描述

四、代码

index.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>新增地址</title>
    <link rel="stylesheet" type="text/css" href="./css/index.css" />
  </head>
  <body>
    <div id="app">
      <!-- 带返回按钮的头部 -->
      <div class="header">
        <img class="back-btn" src="images/arrow.png" onclick="back()" />
        <span id="main_title">新建收货地址</span>
        <span class="blank"></span>
      </div>

      <!-- 地址、标签编辑区 -->
      <ul class="address">
        <li>
          <i></i>
          <span class="left">省市</span>
          <div class="right">
            <select
              class="province"
              name="province"
              id="param_province"
              onchange="provincechange()"
            >
              <option>请选择省份</option>
            </select>
            <select class="city" name="city" id="param_city">
              <option>请选择城市</option>
            </select>
          </div>
        </li>
        <li>
          <i>*</i>
          <span class="left">地址</span>
          <input
            type="text"
            placeholder="填写详细地址,例:XX 小区 1 幢 101"
            id="param_address"
          />
        </li>
        <li class="mark">
          <i></i>
          <span class="left">标签</span>
          <a class="active"></a>
          <a>公司</a>
          <a>学校</a>
          <input type="hidden" id="param_mark" value="0" />
        </li>
      </ul>

      <!-- 联系人信息编辑及表单提交区 -->
      <ul class="user-info">
        <li>
          <i>*</i>
          <span class="left">联系人</span>
          <input type="text" placeholder="收货人姓名" id="param_name" />
        </li>
        <li>
          <i>*</i>
          <span class="left">手机号</span>
          <input type="text" placeholder="收货人手机号码" id="param_phone" />
        </li>
        <li>
          <a class="save-btn" onclick="saveInfo()">保存</a>
        </li>
      </ul>

      <!-- 收获地址列表展示区 -->
      <ul class="address-list">
        <li>
          <div class="show-area">
            <label class="school">学校</label>
            <span>浙江省杭州市</span>
          </div>
          <div class="show-address">
            <span>仓前街道梦想小镇天使村</span>
            <a><img src="./images/edit.png" /></a>
          </div>
          <div class="show-info">
            <span>张三</span>
            <span>18912345678</span>
          </div>
        </li>
      </ul>

      <!-- 提示弹窗 -->
      <div class="warning-dialog" onclick="this.style.display='none';">
        <div class="warning-msg">省市、地址以及联系人和手机号不能为空!</div>
      </div>
    </div>

    <script type="text/javascript" src="./js/data.js"></script>
    <script type="text/javascript" src="./js/index.js"></script>
  </body>
</html>

js/data.js


var provinces = [
  "请选择省份",
  "北京市",
  "上海市",
  "天津市",
  "重庆市",
  "河北省",
  "山西省",
  "内蒙古省",
  "辽宁省",
  "吉林省",
  "黑龙江省",
  "江苏省",
  "浙江省",
  "安徽省",
  "福建省",
  "江西省",
  "山东省",
  "河南省",
  "湖北省",
  "湖南省",
  "广东省",
  "广西省",
  "海南省",
  "四川省",
  "贵州省",
  "云南省",
  "西藏省",
  "陕西省",
  "甘肃省",
  "宁夏省",
  "青海省",
  "新疆省",
  "香港",
  "澳门",
  "台湾省",
];
var citys = [
  ["请选择城市"],
  [
    "东城区",
    "西城区",
    "崇文区",
    "宣武区",
    "朝阳区",
    "丰台区",
    "石景山区",
    "海淀区",
    "门头沟区",
    "房山区",
    "通州区",
    "顺义区",
    "昌平区",
    "大兴区",
    "怀柔区",
    "平谷区",
    "密云县",
    "延庆县",
  ],
  [
    "黄浦区",
    "卢湾区",
    "徐汇区",
    "长宁区",
    "静安区",
    "普陀区",
    "虹口区",
    "杨浦区",
    "闵行区",
    "宝山区",
    "嘉定区",
    "浦东新区",
    "金山区",
    "松江区",
    "青浦区",
    "南汇区",
    "奉贤区",
    "崇明县",
  ],
  [
    "和平区",
    "河东区",
    "河西区",
    "南开区",
    "河北区",
    "红桥区",
    "塘沽区",
    "汉沽区",
    "大港区",
    "东丽区",
    "西青区",
    "津南区",
    "北辰区",
    "武清区",
    "宝坻区",
    "宁河县",
    "静海县",
    "蓟县",
  ],
  [
    "万州区",
    "涪陵区",
    "渝中区",
    "大渡口区",
    "江北区",
    "沙坪坝区",
    "九龙坡区",
    "南岸区",
    "北碚区",
    "万盛区",
    "双桥区",
    "渝北区",
    "巴南区",
    "黔江区",
    "长寿区",
    "綦江县",
    "潼南县",
    "铜梁县",
    "大足县",
    "荣昌县",
    "璧山县",
    "梁平县",
    "城口县",
    "丰都县",
    "垫江县",
    "武隆县",
    "忠县",
    "开县",
    "云阳县",
    "奉节县",
    "巫山县",
    "巫溪县",
    "石柱土家族自治县",
    "秀山土家族苗族自治县",
    "酉阳土家族苗族自治县",
    "彭水苗族土家族自治县",
    "江津市",
    "合川市",
    "永川市",
    "南川市",
  ],
  [
    "石家庄市",
    "张家口市",
    "承德市",
    "秦皇岛市",
    "唐山市",
    "廊坊市",
    "保定市",
    "衡水市",
    "沧州市",
    "邢台市",
    "邯郸市",
  ],
  [
    "太原市",
    "朔州市",
    "大同市",
    "阳泉市",
    "长治市",
    "晋城市",
    "忻州市",
    "晋中市",
    "临汾市",
    "吕梁市",
    "运城市",
  ],
  [
    "呼和浩特市",
    "包头市",
    "乌海市",
    "赤峰市",
    "通辽市",
    "呼伦贝尔市",
    "鄂尔多斯市",
    "乌兰察布市",
    "巴彦淖尔市",
    "兴安盟",
    "锡林郭勒盟",
    "阿拉善盟",
  ],
  [
    "沈阳市",
    "朝阳市",
    "阜新市",
    "铁岭市",
    "抚顺市",
    "本溪市",
    "辽阳市",
    "鞍山市",
    "丹东市",
    "大连市",
    "营口市",
    "盘锦市",
    "锦州市",
    "葫芦岛市",
  ],
  [
    "长春市",
    "白城市",
    "松原市",
    "吉林市",
    "四平市",
    "辽源市",
    "通化市",
    "白山市",
    "延边州",
  ],
  [
    "哈尔滨市",
    "齐齐哈尔市",
    "七台河市",
    "黑河市",
    "大庆市",
    "鹤岗市",
    "伊春市",
    "佳木斯市",
    "双鸭山市",
    "鸡西市",
    "牡丹江市",
    "绥化市",
    "大兴安岭地区",
  ],
  [
    "南京市",
    "徐州市",
    "连云港市",
    "宿迁市",
    "淮安市",
    "盐城市",
    "扬州市",
    "泰州市",
    "南通市",
    "镇江市",
    "常州市",
    "无锡市",
    "苏州市",
  ],
  [
    "杭州市",
    "湖州市",
    "嘉兴市",
    "舟山市",
    "宁波市",
    "绍兴市",
    "衢州市",
    "金华市",
    "台州市",
    "温州市",
    "丽水市",
  ],
  [
    "合肥市",
    "宿州市",
    "淮北市",
    "亳州市",
    "阜阳市",
    "蚌埠市",
    "淮南市",
    "滁州市",
    "马鞍山市",
    "芜湖市",
    "铜陵市",
    "安庆市",
    "黄山市",
    "六安市",
    "巢湖市",
    "池州市",
    "宣城市",
  ],
  [
    "福州市",
    "南平市",
    "莆田市",
    "三明市",
    "泉州市",
    "厦门市",
    "漳州市",
    "龙岩市",
    "宁德市",
  ],
  [
    "南昌市",
    "九江市",
    "景德镇市",
    "鹰潭市",
    "新余市",
    "萍乡市",
    "赣州市",
    "上饶市",
    "抚州市",
    "宜春市",
    "吉安市",
  ],
  [
    "济南市",
    "青岛市",
    "聊城市",
    "德州市",
    "东营市",
    "淄博市",
    "潍坊市",
    "烟台市",
    "威海市",
    "日照市",
    "临沂市",
    "枣庄市",
    "济宁市",
    "泰安市",
    "莱芜市",
    "滨州市",
    "菏泽市",
  ],
  [
    "郑州市",
    "开封市",
    "三门峡市",
    "洛阳市",
    "焦作市",
    "新乡市",
    "鹤壁市",
    "安阳市",
    "濮阳市",
    "商丘市",
    "许昌市",
    "漯河市",
    "平顶山市",
    "南阳市",
    "信阳市",
    "周口市",
    "驻马店市",
    "济源市",
  ],
  [
    "武汉市",
    "十堰市",
    "襄樊市",
    "荆门市",
    "孝感市",
    "黄冈市",
    "鄂州市",
    "黄石市",
    "咸宁市",
    "荆州市",
    "宜昌市",
    "随州市",
    "省直辖县级行政单位",
    "恩施州",
  ],
  [
    "长沙市",
    "张家界市",
    "常德市",
    "益阳市",
    "岳阳市",
    "株洲市",
    "湘潭市",
    "衡阳市",
    "郴州市",
    "永州市",
    "邵阳市",
    "怀化市",
    "娄底市",
    "湘西州",
  ],
  [
    "广州市",
    "深圳市",
    "清远市",
    "韶关市",
    "河源市",
    "梅州市",
    "潮州市",
    "汕头市",
    "揭阳市",
    "汕尾市",
    "惠州市",
    "东莞市",
    "珠海市",
    "中山市",
    "江门市",
    "佛山市",
    "肇庆市",
    "云浮市",
    "阳江市",
    "茂名市",
    "湛江市",
  ],
  [
    "南宁市",
    "桂林市",
    "柳州市",
    "梧州市",
    "贵港市",
    "玉林市",
    "钦州市",
    "北海市",
    "防城港市",
    "崇左市",
    "百色市",
    "河池市",
    "来宾市",
    "贺州市",
  ],
  ["海口市", "三亚市", "省直辖县级行政单位"],
  [
    "成都市",
    "广元市",
    "绵阳市",
    "德阳市",
    "南充市",
    "广安市",
    "遂宁市",
    "内江市",
    "乐山市",
    "自贡市",
    "泸州市",
    "宜宾市",
    "攀枝花市",
    "巴中市",
    "达州市",
    "资阳市",
    "眉山市",
    "雅安市",
    "阿坝州",
    "甘孜州",
    "凉山州",
  ],
  [
    "贵阳市",
    "六盘水市",
    "遵义市",
    "安顺市",
    "毕节地区",
    "铜仁地区",
    "黔东南州",
    "黔南州",
    "黔西南州",
  ],
  [
    "昆明市",
    "曲靖市",
    "玉溪市",
    "保山市",
    "昭通市",
    "丽江市",
    "思茅市",
    "临沧市",
    "德宏州",
    "怒江州",
    "迪庆州",
    "大理州",
    "楚雄州",
    "红河州",
    "文山州",
    "西双版纳州",
  ],
  [
    "拉萨市",
    "那曲地区",
    "昌都地区",
    "林芝地区",
    "山南地区",
    "日喀则地区",
    "阿里地区",
  ],
  [
    "西安市",
    "延安市",
    "铜川市",
    "渭南市",
    "咸阳市",
    "宝鸡市",
    "汉中市",
    "榆林市",
    "安康市",
    "商洛市",
  ],
  [
    "兰州市",
    "嘉峪关市",
    "白银市",
    "天水市",
    "武威市",
    "酒泉市",
    "张掖市",
    "庆阳市",
    "平凉市",
    "定西市",
    "陇南市",
    "临夏州",
    "甘南州",
  ],
  [
    "西宁市",
    "海东地区",
    "海北州",
    "海南州",
    "黄南州",
    "果洛州",
    "玉树州",
    "海西州",
  ],
  ["银川市", "石嘴山市", "吴忠市", "固原市", "中卫市"],
  [
    "乌鲁木齐市",
    "克拉玛依市",
    "自治区直辖县级行政单位",
    "喀什地区",
    "阿克苏地区",
    "和田地区",
    "吐鲁番地区",
    "哈密地区",
    "克孜勒苏柯州",
    "博尔塔拉州",
    "昌吉州",
    "巴音郭楞州",
    "伊犁州",
    "塔城地区",
    "阿勒泰地区",
  ],
  ["香港"],
  ["澳门"],
  [
    "台北市",
    "高雄市",
    "台中市",
    "花莲市",
    "基隆市",
    "嘉义市",
    "金门市",
    "连江市",
    "苗栗市",
    "南投市",
    "澎湖市",
    "屏东市",
    "台东市",
    "台南市",
    "桃园市",
    "新竹市",
    "宜兰市",
    "云林市",
    "彰化市",
  ],
];

js/index.js

// 初始化省份下拉列表内容
function provinceInit() {
  var province = document.getElementById("param_province");
  province.length = provinces.length;
  for (var i = 0; i < provinces.length; i++) {
    province.options[i].text = provinces[i];
    province.options[i].value = provinces[i];
  }
}

// 选择省份后对应城市下拉列表内容渲染
function provincechange() {
  // TODO:请补充代码实现功能
}

/**
 * 为标签绑定单击事件。
 * 事件效果为:
 * 1、鼠标点击该标签后该标签样式显示 class=active;
 * 2、其他已选标签的 active 样式被移除;
 * 3、将选中的标签对应下标(即选择器为 “mark a” 选中的标签对应的下标)更新到 id=param_mark 的隐藏的 input 中。
 */
function addClick() {
  // TODO:请补充代码实现功能
}
// 提交信息后,读取并显示在页面中
function saveInfo() {
  // TODO:请补充代码实现功能
}

// 切换新增地址和地址管理的显隐
function back() {
  if (document.getElementById("main_title").innerHTML == "地址管理") {
    document.getElementById("main_title").innerHTML = "新增地址";
    document.querySelector(".address-list").style.display = "none";
    document.querySelector(".address").style.display = "block";
    document.querySelector(".user-info").style.display = "block";
  }
}
// 页面加载后的初始化操作
function init() {
  // 初始化省份下拉列表内容
  provinceInit();
  // 为标签绑定单击事件
  addClick();
}

window.onload = function () {
  // 初始化
  init();
};

css/index.css

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
body {
  background-color: #000000;
  color: #333333;
}
a {
  cursor: pointer;
}
ul {
  list-style: none;
}
#app {
  width: 414px;
  margin: 50px auto;
  background: #f5f5f5;
  height: 700px;
  overflow: hidden;
  font-size: 14px;
  position: relative;
}
.header {
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 15px;
  background: white;
}
.address {
  background: white;
  width: 88%;
  border-radius: 8px;
  margin: 20px auto;
  margin-bottom: 10px;
  padding: 8px 18px;
}
.address > li,
.user-info > li {
  height: 44px;
  display: flex;
  align-items: center;
  margin-bottom: 10px;
}
li .left {
  width: 55px;
}
.address select {
  margin-right: 10px;
  border: none;
}
.address input,
.user-info input {
  padding: 5px;
  border: none;
  border-bottom: 1px solid #eae6e6;
  width: 240px;
  height: 36px;
}
.mark > a {
  height: 30px;
  width: 50px;
  line-height: 30px;
  text-align: center;
  display: inline-block;
  border: 1px solid #eae6e6;
  margin-right: 10px;
  border-radius: 8px;
}
.active {
  border: #03a9f4 solid 1px !important;
}
.user-info {
  background: white;
  width: 88%;
  height: 500px;
  border-radius: 8px;
  margin: 0 auto;
  padding: 18px;
}
.save-btn {
  display: inline-block;
  width: 300px;
  height: 40px;
  line-height: 40px;
  text-align: center;
  color: white;
  background-color: #03a9f4;
  border-radius: 20px;
  margin: 0 auto;
  margin-top: 50px;
}
.back-btn {
  width: 24px;
}
.blank {
  width: 24px;
  display: inline-block;
  height: 100%;
}

.address-list {
  background: white;
  width: 88%;
  border-radius: 8px;
  margin: 20px auto;
  margin-bottom: 10px;
  padding: 18px;
  display: none;
}
.address-list > li {
  padding-bottom: 8px;
  border-bottom: 1px solid #eae6e6;
  margin: 18px 0;
}
.show-area {
  color: #8a8787;
  font-size: 12px;
}
.show-area label {
  padding: 1px 5px;
  border-radius: 5px;
  color: white;
}
.home {
  background-color: red;
}
.company {
  background-color: #03a9f4;
}
.school {
  background-color: orange;
}
.show-address {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.show-address img {
  width: 20px;
}
.show-info {
  color: #8a8787;
  font-size: 12px;
}
.warning-dialog {
  position: absolute;
  z-index: 999;
  background: rgba(0, 0, 0, 0.5);
  top: 0;
  right: 0;
  left: 0;
  bottom: 0;
  display: none;
}
.warning-msg {
  background-color: white;
  width: 80%;
  margin: 30% auto;
  padding: 30px 10px;
  border-radius: 8px;
  text-align: center;
}

li i {
  color: red;
  width: 15px;
  height: 100%;
  display: flex;
  align-items: center;
  font-style: normal;
}

images/arrow.png
在这里插入图片描述
images/edit.png
在这里插入图片描述

五、完成

js/index.js

// 初始化省份下拉列表内容
function provinceInit() {
  var province = document.getElementById("param_province");
  province.length = provinces.length;
  for (var i = 0; i < provinces.length; i++) {
    province.options[i].text = provinces[i];
    province.options[i].value = provinces[i];
  }
}

// 选择省份后对应城市下拉列表内容渲染
function provincechange() {
  // TODO:请补充代码实现功能
  var province =
    document.getElementById("param_province").selectedOptions[0].value;
  var index = provinces.findIndex((item) => item == province);
  var city = document.getElementById("param_city");
  city.length = citys[index].length;
  for (var i = 0; i < citys[index].length; i++) {
    city.options[i].text = citys[index][i];
    city.options[i].value = citys[index][i];
  }
}

/**
 * 为标签绑定单击事件。
 * 事件效果为:
 * 1、鼠标点击该标签后该标签样式显示 class=active;
 * 2、其他已选标签的 active 样式被移除;
 * 3、将选中的标签对应下标(即选择器为 “mark a” 选中的标签对应的下标)更新到 id=param_mark 的隐藏的 input 中。
 */
function addClick(e) {
  // TODO:请补充代码实现功能
  const mark = document.getElementsByClassName("mark")[0];
  const lis = document.querySelectorAll(".mark a");
  mark.addEventListener("click", function (e) {
    if (e.target.nodeName.toLowerCase() == "a") {
      for (var i = 0; i < lis.length; i++) {
        lis[i].classList.remove("active");
      }
      e.target.classList.add("active");
    }
  });
}
// 提交信息后,读取并显示在页面中
function saveInfo() {
  // TODO:请补充代码实现功能
  //蒙层
  const dialog = document.getElementsByClassName("warning-dialog")[0];
  const address = document.getElementById("param_address");
  const name = document.getElementById("param_name");
  const phone = document.getElementById("param_phone");
  if (!(address.value && name.value && phone.value)) {
    dialog.style.display = "block";
  } else {
    //获取地址列表
    const address_list = document.getElementsByClassName("address-list")[0];
    //获取省
    const province = document.getElementById("param_province").value;
    //获取市
    const city = document.getElementById("param_city").value;
    //获取标签
    const marks = document.querySelector(".mark .active").innerHTML;
    let tag=''
    switch (marks) {
      case "家":
        tag = "home";
        break;
      case "学校":
        tag = "school";
        break;
      case "公司":
        tag = "company";
        break;
    }
    const temp = `
    <div class="show-area">
    <label class=${tag}>${marks}</label>
      <span>${province + city}</span>
    </div>
    <div class="show-address">
      <span>${address.value}</span>
      <a><img src="./images/edit.png" /></a>
    </div>
    <div class="show-info">
      <span>${name.value}</span>
      <span>${phone.value}</span>
    </div>
  `;
    const li = document.createElement("li");

    li.innerHTML = temp;
    address_list.insertBefore(li, address_list.firstElementChild);
    back();
  }
}

// 切换新增地址和地址管理的显隐
function back() {
  if (document.getElementById("main_title").innerHTML == "地址管理") {
    document.getElementById("main_title").innerHTML = "新增地址";
    document.querySelector(".address-list").style.display = "none";
    document.querySelector(".address").style.display = "block";
    document.querySelector(".user-info").style.display = "block";
  } else {
    document.getElementById("main_title").innerHTML = "地址管理";
    document.querySelector(".address-list").style.display = "block";
    document.querySelector(".address").style.display = "none";
    document.querySelector(".user-info").style.display = "none";
  }
}
// 页面加载后的初始化操作
function init() {
  // 初始化省份下拉列表内容
  provinceInit();
  // 为标签绑定单击事件
  addClick();
}

window.onload = function () {
  // 初始化
  init();
};

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python输入:优秀的函数、方法和技巧

Python输入&#xff1a;优秀的函数、方法和技巧 引言 从文件读取数据&#xff0c;在终端上接收用户输入&#xff0c;在Web应用程序中处理表单数据&#xff0c;这些都是Python中经常需要进行的一些任务。Python内置了许多函数和方法来处理这些任务&#xff0c;但是从众多的选项…

CSS 谈谈你对重排和重绘的理解

一、前言 当我们给我们的DOM结构改变或者给DOM结构设置样式时&#xff0c;会触发回流和重绘&#xff0c;但不同的样式改变&#xff0c;是否触发重排和重绘是不确定的。我们有必要深度理解重排和重绘&#xff0c;通过减少重排可以提高性能。 了解浏览器的解析渲染机制: (1).解析…

C++中的数组理解与应用

数组的数据结构 数组是最基本的数据结构&#xff0c;关于数组的面试题也屡见不鲜&#xff0c;本文罗列了一些常见的面试题&#xff0c;仅供参考。目前有以下18道题目。 数组求和 求数组的最大值和最小值 求数组的最大值和次大值 求数组中出现次数超过一半的元素 求数组中元…

详解c++---二叉搜索树的讲解和模拟实现

目录标题 二分查找的优缺点搜索二叉树的规则搜索二叉树的特性二叉搜索树的性能分析准备工作二叉搜索树的插入函数二叉搜索树的打印函数二叉搜索树的查找函数二叉搜索树的删除函数拷贝构造函数赋值重载析构函数递归版本的find函数递归版本的插入递归的删除方法搜索树的应用模型 …

burpsuite+xray实现联动测试(手动分析和自动化测试同时进行)

目的&#xff1a;安全测试过程中手动分析测试与xray自动化扫描测试结合&#xff0c;这样可以从多层保障安全测试的分析&#xff0c;针对平台业务接口量大的安全测试是十分有用的&#xff0c;可以实现双向测试同时开始。 xray简介 xray 是一款功能强大的安全评估工具&#xff…

MySQL数据库基础 05

第五章 排序与分页 1. 排序数据1.1 排序规则1.2 单列排序1.3 多列排序 2. 分页2.1 背景2.2 实现规则2.3 拓展 1. 排序数据 1.1 排序规则 使用 ORDER BY 子句排序 ASC&#xff08;ascend&#xff09;: 升序DESC&#xff08;descend&#xff09;:降序 ORDER BY 子句在SELECT语句…

chatgpt赋能python:Python如何避免代码重复

Python如何避免代码重复 作为一名有10年Python编程经验的工程师&#xff0c;我深知代码重复会降低程序的可维护性&#xff0c;使代码变得混乱和难以扩展。因此&#xff0c;我想在这篇文章中介绍一些技术和最佳实践来避免Python代码重复。 为什么要避免重复代码&#xff1f; …

idea插件开发-Library

库是模块所依赖的已编译代码&#xff08;例如 JAR 文件&#xff09;的存档。IntelliJ 平台支持三种类型的库&#xff1a;1、Module Library&#xff1a;库类只在本模块可见&#xff0c;库信息记录在模块.iml文件中。2、Project Library&#xff1a;库类在项目中可见&#xff0c…

Scrapy框架 增量式、分布式爬虫

文章目录 Scrapy框架1.增量爬虫2.分布式爬虫 Scrapy框架 1.增量爬虫 实现思路 利用redis集合数据类型 1.获取到url后进行判断 是否重复&#xff1f;&#xff1f;&#xff1f; 2.第一次爬取到数据&#xff0c;爬取完成写入该记录... &#xff08;两个点: 必须要没有爬过的数据…

chatgpt赋能python:Python实现计算器:从入门到实现

Python实现计算器&#xff1a;从入门到实现 计算器是计算机科学中最基础并且实用的东西之一。Python作为一种高级编程语言&#xff0c;它可以用于编写一个功能完整的计算器。在本文中&#xff0c;我们将介绍Python如何实现一个简单的、交互式的计算器&#xff0c;通过使用基本…

【MySQL 数据库】7、SQL 优化

目录 一、插入数据优化(1) insert 语句① 批量插入数据② 手动控制事务③ 主键顺序插入&#xff0c;性能要高于乱序插入 (2) load 大批量插入数据【☆❀ 二、主键优化(1) 数据组织形式(2) 页分裂(3) 页合并(4) 主键设计原则 三、orber by 优化四、group by 优化五、limit 优化&…

chatgpt赋能python:Python怎么五个一行输出?

Python怎么五个一行输出&#xff1f; 在Python中&#xff0c;实现五个一行输出并不难&#xff0c;只需要使用循环语句即可。下面&#xff0c;我们将介绍如何使用Python实现五个一行输出。 实现方法 首先&#xff0c;我们需要定义一个包含一定数量元素的列表或字符串。然后&a…

chatgpt赋能python:Python中如何生成随机浮点数?

Python中如何生成随机浮点数&#xff1f; 随机数在计算机编程中常常使用&#xff0c;而在Python中&#xff0c;我们可以使用内置的random模块来产生随机数。不同于整数随机数&#xff0c;如果想要产生浮点数的随机数&#xff0c;我们就需要进行一些额外的操作。 产生浮点数类…

Baumer工业相机堡盟工业相机如何使用BGAPISDK控制相机数据流的开启和关闭(C++)

Baumer工业相机堡盟工业相机如何使用BGAPISDK控制相机数据流的开启和关闭&#xff08;C&#xff09; Baumer工业相机Baumer工业相机BGAPI SDK的技术背景Baumer工业相机使用BGAPISDK控制相机数据流的方式1.引用合适的类文件2.使用BGAPISDK控制相机数据流的方式2.使用BGAPISDK控制…

Pascal Voc 2007 2012

1、简介 PASCAL 全称&#xff1a;Pattern Analysis, Statical Modeling and Computational Learning PASCAL VOC&#xff08;The PASCAL Visual Object Classes &#xff09;是一个经典的计算机视觉数据集&#xff0c;由牛津大学、马里兰大学和微软剑桥研究院的研究人员创建的…

HiveSQL初级题目

文章目录 Hive SQL题库(初级)第一章 环境准备1.1 建表语句1.2 数据准备1.3 插入数据 第二章 简单查询2.1 查找特定条件2.1.1 查询姓名中带“冰”的学生名单2.1.2 查询姓“王”老师的个数2.1.3 检索课程编号为“04”且分数小于60的学生的课程信息&#xff0c;结果按分数降序排列…

chatgpt赋能python:Python如何保存文件到文件夹?

Python如何保存文件到文件夹&#xff1f; Python是一种高级编程语言&#xff0c;广泛应用于数据科学、网络编程、自动化任务等领域。其中&#xff0c;保存文件到文件夹是Python编程中的重要功能。本文将介绍Python如何保存文件到文件夹的方法&#xff0c;包括如何创建文件夹和…

动态网站JSP技术

文章目录 零、本节学习目标一、JSP概述&#xff08;一&#xff09;什么是JSP1、JSP的概念2、JSP的特征&#xff08;二&#xff09;编写第一个JSP1、创建Web项目2、修改Artifact名称&#xff0c;重新部署项目3、创建欢迎JSP页面4、启动服务器&#xff0c;查看结果 二、JSP基本语…

chatgpt赋能python:Python怎么产生方波?

Python怎么产生方波&#xff1f; 随着科技的发展&#xff0c;数字信号处理在各个领域都有广泛的应用&#xff0c;产生方波是其中一个基础的信号处理技术。在Python中&#xff0c;可以通过一些简单的代码来产生方波信号。本文将介绍如何使用Python产生方波。 什么是方波信号&a…

牛客小白赛复盘] 牛客小白月赛74

[牛客小白赛复盘] 牛客小白月赛74 总结A 简单的整除1. 题目描述2. 思路分析3. 代码实现 B 整数划分1. 题目描述2. 思路分析3. 代码实现 C 传送阵1. 题目描述2. 思路分析3. 代码实现 D 修改后的和1. 题目描述2. 思路分析3. 代码实现 E 幼稚园的树21. 题目描述2. 思路分析3. 代码…