vue相关的2个综合案例,网页打字练习

for循环的应用

/* 1. 用for循环控制台打印0到100 */
for (var i = 0; i <= 100; i++) {
    console.log(i)
}
/* 2. 用for循环控制台打印100到0 */
for (var i = 100; i >= 0; i--) {
    console.log(i)
}

网页打字练习案例练习

<template>
    <div class="main">
    <div class="outer">
    <div class="score">当前分数: {{ score }}</div>
    <div class="timer">剩余时间: {{ time }}秒</div>
    </div>
    <div>
        <kbd v-for="(key, index) in currentKeys" :key="index">{{ key.toUpperCase() }}</kbd>
        </div>
    </div>
</template>

<script setup>
import { ref, onMounted } from 'vue';
const score = ref(0);
const time = ref(60);
const gameOver = ref(false);
const currentKeys = ref([]);
const words = ['hello', 'world', 'vue', 'js', 'java', 'python', 'javascript',
    'function', 'const', 'var', 'let', 'ref', 'computed', 'watch', 'v-for', 'v-if', 'v-on',
    'react', 'style', 'html', 'npm', 'run', 'dev', 'vim', 'C++', 'C#', '@',
    'template', 'script', 'event', 'reactive', '114514', '520', 'bigdata', 'hadoop', 'linux',
    'network', 'computer', 'class', 'dom', 'yarn', 'spark', 'scala', 'rust', 'golang', 'value',
    'expression', 'statement', 'boolean', 'string', 'nan', 'undefined', 'number', 'object', 'arrary', 'typeof', 'Math', 'english', 'random', 'push', 'pop', 'map', 'filter', 'foreach',
    'while', 'return', 'framework', 'vonneuman', 'turing', 'backend', 'frontend', 'web', '&',
    '~', '!', '(', ')', '{', '}', '/', '?','<','>',
    'console','log','timeout','window','document','css','vite','install','mustache','button','div',
    'v-bind','v-show','v-else','import','mounted','export','from','node'
];

const getRandomKey = () => {
    const randomWord = words[Math.floor(Math.random() * words.length)];
    currentKeys.value = randomWord.split('');
};

const handleKeyPress = (event) => {
    if (gameOver.value) {
        return;
    }

    if (event.key.toLowerCase() === currentKeys.value[0].toLowerCase()) {
        currentKeys.value.shift();

        if (currentKeys.value.length === 0) {
            score.value++;
            getRandomKey();
        }
    }
};

const startTimer = () => {
    const timer = setInterval(() => {
        time.value--;
        if (time.value === 0) {
            clearInterval(timer);
            gameOver.value = true;
        }
    }, 1000);
};

onMounted(() => {
    getRandomKey();
    startTimer();
    window.addEventListener('keydown', handleKeyPress);
});
</script>


<style scoped>
.main {
    width: 1000px;
    height: 800px;
}

.outer {
    display: flex;

    justify-content: space-between;
    align-items: center;
    height: 300px;
    font-size: 48px;
    margin-bottom: 60px;
    color: #000;
    /* Default text color for light mode */
}


kbd {
    display: inline-block;
    padding: 0.8em 1.6em;
    margin-bottom: 30px;
    margin-left: 15px;
    font-size: 2em;
    font-family: Arial Black, sans-serif;
    font-weight: bold;
    line-height: 1.4;
    color: #242729;
    text-shadow: 0 1px white;
    background: linear-gradient(to top, #ddd, #eee 8%, #fff 18%, #e3e3e3);
    border: 1px solid #ccc;
    border-radius: 3px;
    box-shadow:
        0 0 0 1px #fff inset,
        0 1px 0 #ddd,
        0 2px 0 #bbb,
        0 2px 10px rgba(0, 0, 0, 0.2),
        0 10px 20px rgba(0, 0, 0, 0.2);
    /* Add a larger shadow to make it look more 3D */
}

/* Styles for dark mode */
@media (prefers-color-scheme: dark) {
    .outer {
        color: #fff;
    }

    kbd {
        background-color: #555;
        border-color: #888;
    }
}
</style>

效果如下:

当敲对一个单词后就会消失一个,直到屏幕的单词都打完,会加一分,然后更新单词,再次练习。倒计时60秒,快去挑战自己的手速吧。

在这里插入图片描述

网页修饰

代码如下:

<template>
<div id="firstTop"><div id="piao"><img src="src\components\text.html\yh.png" class="moveRight"></div></div>
<body>   
<div class="background">
 
    <!-- 左侧侧边栏内容 -->
    <div id="b1">
        <div class="topLeftAndRight"></div>
    </div>
     <!-- 中间内容填充部分  -->
    <div id="b2">
       <div id="hang1">
         <iframe :src="externalHtmlUrl"></iframe>
       </div>
     
        <div id="hang15"></div>
            <div class="hang2">
                
                <div id="contain">
                    <div id="leftDoor"></div>
                    <div id="rightDoor"></div>
                </div> 
                <div id="left"></div>
                <div id="right"></div>
            </div>
        <div id="hang3">
            <div id="jieguo">
                <div class="outer">当前分数:{{ score }}</div>
                <div class="timer">剩余时间: {{ time }}秒</div> 
            </div>
            <div :class="{'time': atime}">
                <img src="src\components\text.html\time.png" >
            </div>
            <div class="neirong">
                <div :class="{'color1': aColor1}">
                    <span v-for="(key, index) in currentKeys" :key="index">{{ key.toUpperCase() }}</span>
                </div>
                
                <div :class="{'color2': aColor2}">
                    <span v-for="(key, index) in currentKeys2" :key="index">{{ key.toUpperCase() }}</span>
                </div>
                
                <div :class="{'color3': aColor3}">
                    <span v-for="(key, index) in currentKeys3" :key="index">{{ key.toUpperCase() }}</span>
                </div>
                <div :class="{'color4': aColor4}">
                    <span v-for="(key, index) in currentKeys4" :key="index">{{ key.toUpperCase() }}</span>
                </div>
            </div>
            <div class="overAgainGame"><button @click="overAgin">{{ start }}</button></div>
        </div>
    </div>
    <!-- 右边栏的内容 -->
    <div id="b3">
        <div class="topLeftAndRight"></div>
    </div>
</div>
</body>
</template>

<script>

export default {
    
    data () {
      return {
        externalHtmlUrl: './src/components/text.html/cs.html' // 外部HTML文件的链接地址
      }
    }
  }
</script>
<script setup>
import { ref, onMounted } from 'vue';
   
    const score = ref(0);
    const time = ref(60);
    const gameOver = ref(false);
    const start = ref("开始游戏")
    
    const currentKeys = ref([]);
    const currentKeys2 = ref([]);
    const currentKeys3 = ref([]);
    const currentKeys4 = ref([]);
    const words = ['hello', 'world', 'vue', 'js', 'java', 'python', 'javascript',
        'function', 'const', 'var', 'let', 'ref', 'computed', 'watch', 'v-for', 'v-if', 'v-on',
        'react', 'style', 'html', 'npm', 'run', 'dev', 'vim', 'C++', 'C#', '@',
    ];
    
    
    const getRandomKey = () => {
        const randomWord = words[Math.floor(Math.random() * words.length)];
        currentKeys.value = randomWord.split(',');
        
    };
    const getRandomKey2 = () => {
        const randomWord = words[Math.floor(Math.random() * words.length)];
        currentKeys2.value = randomWord.split(',');
        
    };const getRandomKey3 = () => {
        const randomWord = words[Math.floor(Math.random() * words.length)];
        currentKeys3.value = randomWord.split(',');
        
    };const getRandomKey4 = () => {
        const randomWord = words[Math.floor(Math.random() * words.length)];
        currentKeys4.value = randomWord.split(',');
        
    };
    const handleKeyPress = (event) => {
      const key = event.key;
      const wordPress = ref([])
      wordPress.value = key
      console.log(key)

     
      // 如果是删除键,则删除词汇的最后一个字符
      if (key === 'Backspace') {
        inputWord = inputWord.slice(0, -1);
      } else if (key === ' ') { // 如果是空格,则输出整个词汇并清空

        inputWord = '';
      } else if (key === 'Shift'){
        inputWord.replace('Shift', '')
    
      }else {
        inputWord += key; // 否则,将按键字符添加到词汇中
        if (inputWord.length > 0) {
          console.log('Input word:', inputWord);
          
          if (gameOver.value) {
            return;
        }
          if (inputWord.toLowerCase() === currentKeys.value[0].toLowerCase() || inputWord.toLowerCase() === currentKeys2.value[0].toLowerCase() || inputWord.toLowerCase() === currentKeys3.value[0].toLowerCase()|| inputWord.toLowerCase() === currentKeys4.value[0].toLowerCase()) {
            currentKeys.value.pop();
            if (currentKeys.value.length === 0) {
                score.value++;
                inputWord = '';
                getRandomKey();
                getRandomKey2();
                getRandomKey3();
                getRandomKey4();
            }
          }
        }
        aColor1.value = ref(false);
        aColor2.value = ref(false);
        aColor3.value = ref(false);
        aColor4.value = ref(false);
    
      }
    }
     

    const aColor1 = ref(false);
    const aColor2 = ref(false);
    const aColor3 = ref(false);
    const aColor4 = ref(false);
    const sumList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
    function toChangeColor() {
        const items = ref([]);
        let loopIndex = 0;
        const intervalDuration = 3000; // 每次循环的间隔时间(毫秒)
        const maxItems = 19; // 循环的最大次数
        for (let i = 0; i <= maxItems; i++) {
    
        setTimeout(() => {
        var chooseSum = sumList[Math.floor(Math.random() * maxItems)]
        
        console.log(chooseSum)
        if (chooseSum >= 0 && chooseSum <=4) {
            aColor1.value = !aColor1.value
            aColor2.value = ref(true);
            aColor3.value = ref(true);
            aColor4.value = ref(true);
        }else if (chooseSum >= 5 && chooseSum <=9){
            aColor2.value = !aColor2.value
            aColor1.value = ref(true);
            aColor3.value = ref(true);
            aColor4.value = ref(true);
        }else if (chooseSum >= 10 && chooseSum <=14){
            aColor3.value = !aColor3.value
            aColor2.value = ref(true);
            aColor1.value = ref(true);
            aColor4.value = ref(true);
        }else if (chooseSum >= 15 && chooseSum <=20){
            aColor4.value = !aColor4.value
            aColor2.value = ref(true);
            aColor3.value = ref(true);
            aColor1.value = ref(true);
        }else {
            aColor1.value = ref(true);
            aColor2.value = ref(true);
            aColor3.value = ref(true);
            aColor4.value = ref(true);
        }
      
          items.value.push(`Item ${loopIndex++}`);
        }, i * intervalDuration);
      }
    
    }
    const atime = ref(false)
    const startTimer = () => {
        const timer = setInterval(() => {
     
            time.value--;
            start.value = '重新开始'
            if (time.value === 0) {
                atime.value = false
                clearInterval(timer);
                gameOver.value = true;
                clearInterval(toChangeColor)
                aColor1.value = ref(false);
                aColor2.value = ref(false);
                aColor3.value = ref(false);
                aColor4.value = ref(false);
                start.value = '开始游戏'
            }else{
                atime.value = true
            }
        }, 1000);
    };
    
    
    let inputWord = '';
 

    function overAgin(){
        
        window.location.reload();
        timePass ()
        
        if (time === 0) {
            aColor1.value = ref(false);
            aColor2.value = ref(false);
            aColor3.value = ref(false);
            aColor4.value = ref(false);
 
        }
    
        
    }

    onMounted(() => {
        
        getRandomKey();
        getRandomKey2();
        getRandomKey3();
        getRandomKey4();
        startTimer();
        toChangeColor();
       
        window.addEventListener('keydown', handleKeyPress);

    });
      
</script>

<style scoped>
body{
    margin: 0;
    padding: 0;
}
.background{
    display: flex;

}
#firstTop{
    width: 1420px;
    height: 100px;
    background-color: aqua;
    background-image: url("https://img.pptjia.com/image/20181121/9e19f6fef989b1db9c1aa40417860c49.png");
    background-size: cover;
    background-repeat: no-repeat;
    
}
#moveRight{
    width: 150px; /* 设置图片宽度 */
    height: 80px;
    animation: moveRight 2s infinite; /* 应用动画 */
}
#piao{
    margin-left: 0px;
    animation: moveRight 2s infinite; /* 应用动画 */
}
@keyframes moveRight {
  0% {
    margin-left: -1200px; /* 动画开始时位置 */
  }
  100% {
    margin-left: 1300px; /* 动画结束时位置,这里是向右移动100px */
  }
}
/* 写左侧栏的样式 */
#b1{

    width: 300px;
    height: 1600px;
    border: 1px black;
    background-color: aqua;
    background-image: url("https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fc-ssl.duitang.com%2Fuploads%2Fblog%2F201505%2F15%2F20150515203203_AihvS.thumb.400_0.gif&amp;refer=http%3A%2F%2Fc-ssl.duitang.com&amp;app=2002&amp;size=f9999,10000&amp;q=a80&amp;n=0&amp;g=0n&amp;fmt=auto?sec=1719239956&amp;t=5afb6cc097c9e071ca893956158847b6");
}
.topLeftAndRight{
    background-image: url("https://img.pptjia.com/image/20181121/9e19f6fef989b1db9c1aa40417860c49.png");
    width: 300px;
    height: 100px;
    background-size: cover;
    float: left;
}
#b2{

width: 820px;
height: 1600px;
border: 1px black;
background-color: white;

}


/* 中间上边栏 */
#top{
    background-image: url("./src/assets/yun1.jpg");
    background-repeat: no-repeat;
    background-size: cover;
    width: 820px;
    height: 400px;
   
}
#logo{

    width: 500px;
    height: 240px;
    padding-top: 120px;
    margin-left: 160px;
    background-image: url("./src/assets/logo.png");
    background-repeat: no-repeat;
    background-position: center;
    
}

#hang1{
    width: 800px;
    height: 500px;
    border: 0px;
}
iframe {
  
  border: 0;
  width: 100%; /* takes precedence over the width set with the HTML width attribute */
  height: 100%;
}
   

#hang15{
    width: 820px;
    height: 160px;
    background-color: blue;
    margin-top: 30px;
    
    background-image: url("./src/assets/tou1.png");
    background-size: 820px 160px;
  

    
}
#contain {
            width: 410px;
            height: 310px;
            position: absolute;
            background-image: url("./src/assets/gz1.png");
            background-size: 410px 310px;
            perspective: 800px;
            transform-style: preserve-3d;
            margin-left: 410px;
            margin-top: 155px;
            transform: translateY(-50%) translateX(-50%);
            cursor: pointer;
            
        }
    
    
        #leftDoor {
            position: absolute;
            width: 50%;
            height: 100%;
            top: 0;
            left: 0;
            transition: .5s;
            background-image: url("./src/assets/hqq2.png");
            background-size: cover;
            backface-visibility: visible;
            transform-origin: left;
            /* 需要注意3D动画的 transform-orign 的改变 */
        }
        
    
        #rightDoor {
            position: absolute;
            width: 50%;
            height: 100%;
            right: 0;
            top: 0;
            transition: .5s;
            background-image: url("./src/assets/hqq3.png");
            background-size: cover;
            backface-visibility: visible;
            transform-origin: right;
        }
    
        #contain:hover #leftDoor {
            transform: rotateY(-120deg);
        }
    
        #contain:hover #rightDoor {
            transform: rotateY(120deg);
        }
    
        #leftDoor::before,
        #rightDoor::after {
            content: '';
            display: block;
            position: absolute;
            width: 10px;
            height: 10px;
            border-radius: 50%;
            border: 1px slategrey solid;
            top: 50%;
            transform: translateY(-50%);
            /* 当内部无元素时,两个伪元素指的是同一个 */
        }
    
        #leftDoor::before {
            right: 20px;
        }
    
        #rightDoor::after {
            left: 20px;
        }
#left{
    width: 212px;
    height: 310px;
    background-color: aqua;
    background-image: url("./src/assets/hqq1.png");
    background-size: 210px 310px;
    background-repeat: no-repeat;
}
#right{
 
    width: 210px;
    height: 310px;
    background-color: aqua;
    margin-left: 610px;
    margin-top: -312px;
    background-image: url("./src/assets/hqq4.png");
    background-size: 212px 310px;
    background-repeat: no-repeat;
}
#hang3{
    width: 820px;
    height: 600px;
    background-color: bisque;
}
#jieguo{
    width: 820px;
    height: 60px;
    background-color: aqua;
    
}
.time{
    width: 80px;
    height: 80px;

    animation: moveRight2 60s infinite; /* 应用动画 */
}

@keyframes moveRight2 {
  0% {
    margin-left: 790px; /* 动画开始时位置 */
  }
  100% {
    margin-left: -60px; /* 动画结束时位置,这里是向右移动100px */
  }
}
 /* 单词的样式 */
 span {
        display: inline-block;
        padding: 1.8em 2.6em;
        margin-bottom: 30px;
        margin-left: 15px;
        font-size: 15px;
        font-family: Arial Black, sans-serif;
        font-weight: 0px;
        line-height: 1.2;
        color: rgb(36, 41, 39);
    
        /* background: linear-gradient(to top, #ddd, #eee 8%, #fff 18%, #e3e3e3); */
        border-radius: 3px;
        box-shadow:
            0 2px 10px rgba(0, 0, 0, 0.2),
            0 10px 20px rgba(0, 0, 0, 0.2);
           
        /* Add a larger shadow to make it look more 3D */
    }

.neirong{
    display: flex;
    margin-left: -6px;
    margin-top: 100px;
    height: 500px;
}



/* 开始游戏按钮的样式 */
.overAgainGame{
    margin-top: -200px;
}
 button {
     
     --bg: #e74c3c;
     --text-color: #fff;
     position: relative;
     width: 200px;
     height: 80px;
     border: none;
     background: var(--bg);
     color: var(--text-color);
     padding: 1em;
     font-size: 30px;
     font-weight: bold;
     text-transform: uppercase;
     transition: 0.2s;
     border-radius: 5px;
     opacity: 0.8;
     letter-spacing: 1px;
     box-shadow: #c0392b 0px 7px 2px, #000 0px 8px 5px;
     padding-top: 20px;
     margin-top: -220px;
   }
    
   button:hover {
     opacity: 1;
   }
    
   button:active {
     top: 4px;
     box-shadow: #c0392b 0px 3px 2px,#000 0px 3px 5px;
   } 

   /* 覆盖物 */
   .color1{
      
      width: 500px;
      float: left;
      margin-left: 10px;
      background-image:url("https://gd-hbimg.huaban.com/f7edc6d1befd31a5ff3facac33fda064c710b73342fff-V45epE_fw658"); /* 红色背景 */
    transition: background-color 0s ease; /* 背景色变化的过渡效果 */
    background-repeat: no-repeat;
    background-size: 100%;
  }  
    .color2 {
        width: 500px;
        float: left;
        margin-left: 10px;
      background-image:url("https://gd-hbimg.huaban.com/f7edc6d1befd31a5ff3facac33fda064c710b73342fff-V45epE_fw658"); /* 红色背景 */
      transition: background-color 0s ease; /* 背景色变化的过渡效果 */
      background-repeat: no-repeat;
      background-size: 100%;
    }
    .bg-blink-enter-from,
    .bg-blink-leave-to {
      background-color: transparent; /* 初始/结束时的背景色 */
    }
    .bg-blink-enter-active,
    .bg-blink-leave-active {
      transition: background-color 0s ease; /* 过渡效果 */
    }
    .color3{
    
        width: 500px;
        float: left;
        margin-left: 10px;
        background-image:url("https://gd-hbimg.huaban.com/f7edc6d1befd31a5ff3facac33fda064c710b73342fff-V45epE_fw658"); /* 红色背景 */
      transition: background-color 0s ease; /* 背景色变化的过渡效果 */
      background-repeat: no-repeat;
      background-size: 100%;
    }
    .color4{
        width: 500px;
        float: left;
        margin-left: 10px;
        background-image:url("https://gd-hbimg.huaban.com/f7edc6d1befd31a5ff3facac33fda064c710b73342fff-V45epE_fw658"); /* 红色背景 */
      transition: background-color 0s ease; /* 背景色变化的过渡效果 */
      background-repeat: no-repeat;
      background-size: 100%;
    }

   /* 右边栏 */
#b3{

width: 300px;
height: 1600px;
border: 1px black;
background-color: red;
background-image: url("https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fc-ssl.duitang.com%2Fuploads%2Fblog%2F201505%2F15%2F20150515203203_AihvS.thumb.400_0.gif&amp;refer=http%3A%2F%2Fc-ssl.duitang.com&amp;app=2002&amp;size=f9999,10000&amp;q=a80&amp;n=0&amp;g=0n&amp;fmt=auto?sec=1719239956&amp;t=5afb6cc097c9e071ca893956158847b6");
}


</style>

修饰后网页效果如下

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

洛谷P1305 新二叉树(树的基本遍历)

题目描述 输入一串二叉树&#xff0c;输出其前序遍历。 输入格式 第一行为二叉树的节点数 &#x1d45b;。(1≤&#x1d45b;≤26) 后面 &#x1d45b; 行&#xff0c;每一个字母为节点&#xff0c;后两个字母分别为其左右儿子。特别地&#xff0c;数据保证第一行读入的节点…

IPTCP知识

1. IP&#xff1a; IP地址是一个32位的二进制数&#xff0c;通常被分割为4个“8位二进制数”IP地址分类&#xff1a;A类地址、B类地址、C类地址、D类地址、E类地址 A类地址分配给规模特别大的网络使用&#xff0c;B类地址分配给一般的中型网络&#xff0c;C类地址分配给小型网…

STM32无法烧写程序的故障排除

如果你在使用STM32微控制器时遇到无法烧写程序的问题&#xff0c;可以按以下步骤进行故障排除&#xff1a; 1. 确认硬件连接 检查电源&#xff1a;确保STM32板子正确供电。调试器连接&#xff1a;确认ST-LINK调试器或其他编程工具与STM32开发板的连接无误&#xff0c;尤其是S…

如何基于 Python 快速搭建 QQ 开放平台 QQ 群官方机器人详细教程(更新中)

注册 QQ 开放平台账号 账号注册 QQ 机器人&#xff1a;一个机器人可以被添加到 群聊/频道 内对话&#xff0c;QQ 用户也可以直接跟机器人 单独对话。 开发者账号主体要求 单聊对话&#xff1a;【定向邀请】 群聊场景&#xff1a;仅支持企业主体【个人主体暂不支持】 频道场…

基于uni-app与图鸟UI打造的各领域移动端模板大赏

随着移动互联网的迅猛发展&#xff0c;各类移动端应用层出不穷&#xff0c;为了帮助企业快速搭建高效、美观的移动平台&#xff0c;我们基于强大的uni-app与图鸟UI&#xff0c;精心打造了不下于40套覆盖多个领域的移动端模板。今天&#xff0c;就让我们一起领略这些模板的风采吧…

淘宝镜像地址失效

1. 使用nvm安装node时候报错 报错内容 Get "https://npm.taobao.org/mirrors/node/latest/SHASUMS256.txt": tls: failed to verify certificate: x509: certificate has expired or is not yet valid:报错原因 淘宝镜像地址的证书过期了 解决 找到nvm安装的根目…

Java-集合类-Arrays.asList()使用需要注意的大坑

Arrays.asList使用需要注意的大坑 大坑1.不可修改列表大小&&原始数组与列表共享数据2.对于基本类型数组的使用限制 两个错误案例wrong1wrong2 ​ Arrays.asList() 是 Java 中一个常用的方法&#xff0c;它 用于将数组转换为列表&#xff08;List&#xff09;。这个方…

Bybatis动态SQL的绑定和公共sql语句片段

Mybatis除了大部分动态标签&#xff0c;最后还有三个标签&#xff0c;分别是bind&#xff0c;sql和include&#xff1a; ①bind&#xff1a;这个标签作用就是将OGNL标签里的值&#xff0c;进行二次加工&#xff0c;在绑定到另一个变量里&#xff0c;供其他标签使用 调用getUse…

Java—集合简述

集合类继承结构图 Collection|---------------------| | | Set List Queue| | | SortedSet ArrayList Deque| LinkedList | NavigableSet Vector ArrayDeque| Stack | TreeSet …

数据结构笔记-2、线性表

2.1、线性表的定义和基本操作 如有侵权请联系删除。 2.1.1、线性表的定义&#xff1a; ​ 线性表是具有相同数据类型的 n (n>0) 个数据元素的有限序列&#xff0c;其中 n 为表长&#xff0c;当 n 0 时线性表是一个空表。若用 L 命名线性表&#xff0c;则其一般表示为&am…

【软件工程导论】——期末复习(冲刺篇)

&#x1f4d6; 前言&#xff1a;快考试了&#xff0c;做篇期末总结&#xff0c;都是重点与必考点。 题型&#xff1a;材料分析题、简答题、看图分析题 课本&#xff1a; 目录 &#x1f552; 1. 软件生存周期与软件过程&#x1f558; 1.1 软件生存周期&#x1f558; 1.2 传统…

Java老人护理上门服务类型系统小程序APP源码

&#x1f338; 老人上门护理服务系统&#xff1a;温暖与专业并存 &#x1f338; 一、&#x1f3e0; 走进老人上门护理服务系统 随着社会的快速发展&#xff0c;我们越来越关注老年人的生活质量。老人上门护理服务系统应运而生&#xff0c;它结合了现代科技与人性化服务&#…

webpack代码分割

webpack代码分割方式 entry配置&#xff1a;通过多个 entry 文件来实现动态加载(按需加载)&#xff1a;通过主动使用import来动态加载抽取公共代码&#xff1a;使用splitChunks配置来抽取公共代码 基础概念 概念含义Entry入口&#xff0c;Webpack 执行构建的第一步将从 Entr…

Adobe Illustrator (AI)小技巧总结

AI2024(64bit) Adobe Illustrator 软件安装包下载地址&#xff1a; 百度网盘下载https://pan.baidu.com/s/1C10-2JVN1rxFF5VFRuV2Yw?pwdSIMS 1.效果-扭曲与变换-变换&#xff0c;两个图形组合&#xff08;CtrlG&#xff09;中心点在中间 例&#xff1a;角度7.5副本24半圆48格…

pdf格式转成jpg图片,pdf格式如何转jpg

pdf转图片的方法&#xff0c;对于许多人来说可能是一个稍显陌生的操作。然而&#xff0c;在日常生活和工作中&#xff0c;我们有时确实需要将pdf文件转换为图片格式&#xff0c;以便于在特定的场合或平台上进行分享、展示或编辑。以下&#xff0c;我们将详细介绍一个pdf转成图片…

网工内推 | 外企、上市公司运维工程师,有软考中高项证书优先

01 优尼派特&#xff08;苏州&#xff09;物流有限公司 &#x1f537;招聘岗位&#xff1a;软件运维测试工程师 &#x1f537;任职要求&#xff1a; 1、负责公司自主研发的软件售后服务工作, 包括软件的安装, 调试, 升级,培训, 参数配置, 需求与Bug的处理; 2、负责数据库升级及…

Joplin Typora 粘贴图片 | 当使用Typora作为Joplin编辑器时,如何粘贴图片并上传到Joplin服务器,替换链接

一、背景 当我们使用Joplin时&#xff0c;上传图片时会自动上传到Joplin服务器并替换链接 但是Joplin的编辑器不好用&#xff0c;我更习惯用Typora来编辑&#xff0c; 然而Typora中上传的图片只能在本地&#xff0c;无法上传到Joplin服务器&#xff0c;在其他客户端也看不到图片…

快速理解 Node.js 版本差异:3 分钟指南

Node.js 是一个广泛使用的 JavaScript 运行时环境&#xff0c;允许开发者在服务器端运行 JavaScript 代码。随着技术的发展&#xff0c;Node.js 不断推出新版本&#xff0c;引入新特性和改进。了解不同版本之间的差异对于开发者来说至关重要。以下是一个快速指南&#xff0c;帮…

什么是相对路径?什么是绝对路径?打包时路径怎么搞?

简单点说&#xff1a; 绝对路径&#xff1a;绝对路径是一个完整的路径&#xff0c;从根目录开始一直到目标文件或目录的路径。通常我们直接使用"/ "代表从根目录开始的目录路径。它提供了文件或目录在文件系统中的确切位置&#xff0c;与当前工作目录无关。绝对路径…

华媒舍:15种媒体推广普遍不正确及解决方法

做为新闻媒体推广的重要一环&#xff0c;主流媒体推广在这个时代仍然发挥着重要的作用。由于种种原因&#xff0c;大家在主流媒体推广中常常做出各种各样不正确。为了能帮助广大推广工作人员们更好地进行主流媒体推广&#xff0c;本文可能详细介绍15种常见的错误&#xff0c;并…