web实习三_JavaScript编程

  1. 编写 JavaScript 程序实现 输出“九九乘法表”( 左下三角形形式 )。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        for(var i=1;i<=9;i++){
            str='';
            for(var j=1;j<=i;j++){
                str+=j+"*"+i+"="+i*j+"\t";
            }
            console.log(str);
        }
    </script>
</body>
</html>

 

2.编写 JavaScript 程序,测试输入的数是否是素数。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
       var num=17;
       var flag=true;
       if(num>=0){
        if(num==1||num==0){
            flag=false;
        }else if(flag==2)
            flag=true;           
       }else{
        for(var i=2;i<Math.sqrt(num);i++){
            if(num%i==0){
                flag=false;
                break;
            }
        }
       }

       console.log(flag);
    </script>
</body>
</html>

 3.编写函数 isAnagram(str1,str2)用来检查两个字符串是否互为变位词。变位词指不计顺序的情况下两个单词包含完全相同的字母,不多不少。比如“silent”和“listen”互为变位词。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=<device-width>, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        function isAnagram(str1, str2) {    
             if (str1.length !== str2.length) {
                  return false;
             }
              str1 = str1.split('');
              //将str1转为数组!
            for (var i = 0; i < str2.length; i++) {
                 var index = str1.indexOf(str2[i]);
                if (index === -1) {
                     return false;
                } else {
                    str1.splice(index, 1);
                 }
             }
              return str1.length === 0;
        }
        console.log(isAnagram("listen", "slient"));

    </script>
</body>
</html>

4.编写函数 checkPalindrome(str)判断字符串 str 是否为回文字符串。如果一个字符串从前往后读和从后往前读是一样的,那么它就是一个回文字符串。例如,“mom”、“dad”以及“noon”都是回文字符串。如,checkPalinadrome("mom")结果为 true。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        function checkPalindrome(str){
            var flag=true;
            str=str.split('');
            for(var i=0;i<str.length;i++){
                if(i==str.length-1-i)
                    break;

                if(str[i]!=str[str.length-i-1]){
                    flag=false;
                    break;
                }
            }
            return flag;
        }

        console.log(checkPalindrome("mom"));
    </script>
</body>
</html>

 5. 编写 Javascript 程序,找出符合条件的数。

(1)页面的标题是“找出符合条件的数”

(2)页面内容:3 号标题显示“找出 1000 ~ 9999 之间能够被 17和 13 同时整除的整数、个数、累加和”。

(2)输出格式:每行 10 个整数。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>找出符合条件的数</title>
</head>
<body>
    <h3>找出 1000 ~ 9999 之间能够被 17和 13 同时整除的整数、个数、累加和</h3>
</body>
<script>
    let cnt=0;
    let sum=0;
    document.write("区间中符合条件的数有:<br />");
    for(let i=1000;i<=9999;i++){
        if(i%13==0&&i%17==0){
            document.write(i+" ");
            cnt++;
            sum+=i;
            if(cnt%10==0)
                document.write('<br />');
        }
    }
    document.write(`<br />区间中符合条件的数共有${cnt}个`);
    document.write(`<br/>累加和为${sum}<br/>`)
</script>
</html>

6.利用 Date 对象编写程序,判断并输出今天是开学的第几周,星期几。

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
	function calculateWeekday(startDate) {

  const today = new Date();

  const timeDiff = today.getTime() - startDate.getTime();
  const totalDays = Math.ceil(timeDiff / (1000 * 3600 * 24));

  const weeks = Math.floor(totalDays / 7) + 1;

  const days = today.getDay();

  return `今天是开学后的第 ${weeks} 周,星期${days} `;
}

const startDate = new Date(2023, 8, 16); 

const result = calculateWeekday(startDate);
console.log(result);

    </script>
</body>
</html>

 7. 设计一个网页,输入一串用英文逗号分隔的数字字符串。编写程序,输出找出该组数中的最大、最小值、和 。并按从大到小排序后的输出结果(以逗号分隔)。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>数字处理</title>
</head>
<body>

<label for="numbers">输入一串数字(用英文逗号分隔):</label>
<input type="text" id="numbers">

<button onclick="processNumbers()">处理</button>

<p>最大值: <span id="maxValue"></span></p>
<p>最小值: <span id="minValue"></span></p>
<p>总和: <span id="sumValue"></span></p>
<p>排序结果: <span id="sortedResult"></span></p>

<script>
  function processNumbers() {
    const numbersInput = document.getElementById('numbers');
    const numbersArray = numbersInput.value.split(',').map(num => parseInt(num.trim(), 10));

    const maxValue = Math.max(...numbersArray);
    const minValue = Math.min(...numbersArray);
    const sumValue = numbersArray.reduce((acc, curr) => acc + curr, 0);
    const sortedResult = numbersArray.sort((a, b) => b - a).join(', ');

    document.getElementById('maxValue').innerText = maxValue;
    document.getElementById('minValue').innerText = minValue;
    document.getElementById('sumValue').innerText = sumValue;
    document.getElementById('sortedResult').innerText = sortedResult;
  }
</script>

</body>
</html>

8.要求用户在文本框中年份,点击判断按钮,用 alert 函数输出该年是否是闰年的结果。

 

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>判断闰年</title>
</head>
<body>

<input type="text"  name="txtYear" id="txtyear" >

<input type="button" value="判断" onclick="testLeapYear()">

<script>
  function testLeapYear(){
    // 获取用户输入的年份
    const yearInput = document.getElementById('txtyear');
    const year = parseInt(yearInput.value);

    // 判断是否为闰年
    const isLeapYear = (year % 4 === 0 && year % 100 !== 0) || (year % 400 === 0);

    // 显示结果
    const resultMessage = isLeapYear ? `${year}年是闰年!` : `${year}年不是闰年。`;
    alert(resultMessage);
  }
</script>

</body>
</html>

 9.直接使用 Javascript 的计时器、DOM 模型操作,将当前目录下的 10 张图片循环显示在网页上。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <img id="displayedImage" src="" alt="image">
  
    <script>
      let currentIndex = 1; 
      const totalImages = 10;
  
      function displayNextImage() {
        const imageElement = document.getElementById('displayedImage');
        const imagePath = `./image/image${currentIndex}.jpg`;
  
        imageElement.src = imagePath; 
  
        currentIndex = (currentIndex % totalImages) + 1; 
  
        setTimeout(displayNextImage, 2000); 
      }
  
     
      window.onload = function() {
        displayNextImage();
      };
    </script>
</body>
</html>

 10.制作“随机密码生成”程序,完成如图 1 所示界面,JavaScript 编程实现“生成密码”的功能。密码长度为:1~16 位,密码数量:1~10 个。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=<device-width>, initial-scale=1.0">
    <title>Document</title>
    <style>

   table {
      border-collapse: collapse;
      font-size: 12px;
      width: 400px;
      height: 350px;
    }

    td{
      border: 1px solid gray;
      padding: 8px; 
    }
    #bt{
        background-color:cyan;
        color: white;
        border: 0;
    }
    #paichutext{
       background-color:darkgray;
       border: 1px solid gray;
    }
    #otherchar{
        width: 45px;
        background-color: darkgrey;
        border: 1px solid gray;
    }
    </style>
</head>
<body>
    <table border="1" >
        <tr> 
            <td style="background-color:darkgray;">所用字符</td>
            <td colspan="3">
            <input type="checkbox" name="need" id="az">a-z
            <input type="checkbox" name="need" id="AZ">A-Z
            <input type="checkbox" name="need" id="09">0-9
            <input type="checkbox" name="need" id="oz">
            <input type="text" id="otherchar" value="!@#$%">
             </td>
        </tr>

        <tr>
            <td style="background-color:darkgray;">排除字符</td>
            <td colspan="3">
                <input type="checkbox" id="paichu"> 
                <input type="text"  id="paichutext" value="illo0O">
            </td>
        </tr>

        <tr>
            <td style="background-color:darkgray;">密码长度</td>
            <td>
                <select id="selen" >
                    <option value="len1">1</option>
                    <option value="len2">2</option>
                    <option value="len3">3</option>
                    <option value="len4">4</option>
                    <option value="len5">5</option>
                    <option value="len6">6</option>
                    <option value="len7">7</option>
                    <option value="len8">8</option>
                    <option value="len9">9</option>
                    <option value="len10">10</option>
                    <option value="len11">11</option>
                    <option value="len12">12</option>
                    <option value="len13">13</option>
                    <option value="len14">14</option>
                    <option value="len15">15</option>
                    <option value="len16">16</option>
                </select>
                位
            </td>
            <td style="background-color:darkgray;">密码数量</td>
            <td>
                <select id="secnt" >
                    <option value="op1">1</option>
                    <option value="op2">2</option>
                    <option value="op3">3</option>
                    <option value="op4">4</option>
                    <option value="op5">5</option>
                    <option value="op6">6</option>
                    <option value="op7">7</option>
                    <option value="op8">8</option>
                    <option value="op9">9</option>
                    <option value="op10">10</option>
                </select>
                个
            </td>
        </tr>
        <tr>
           <td colspan="4" align="center">
            <button id="bt" onclick="generatepasswd()">生成密码</button></td> 
        </tr>
        <tr>
           <td colspan="4" align="center" >
            <textarea id="textarea" style="height: 70px;">
            </textarea>
           </td> 
        </tr>
    </table>
    <script>
        function generatepasswd(){

            var len= document.getElementById("selen");
            var lenop=len.options[len.selectedIndex].text;
            var numlen=parseInt(lenop);

            var cnt= document.getElementById("secnt");
            var cntop=cnt.options[cnt.selectedIndex].text;
            var numcnt=parseInt(cntop);

            const lowercaseChars = 'abcdefghijklmnopqrstuvwxyz';
            const uppercaseChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
            const numberChars = '0123456789';
            const otherChars=document.getElementById("otherchar").value;
            const paichuChars=document.getElementById("paichutext").value;
            let allChars='';
            let passwd='';
            
            if(document.getElementById('az').checked){
                allChars+=lowercaseChars;
            }
            if(document.getElementById('AZ').checked){
                allChars+=uppercaseChars;
            }
            if(document.getElementById('09').checked){
                allChars+=numberChars;
            }
            if(document.getElementById('oz').checked){
                allChars+=otherChars;
            }
            if(document.getElementById('paichu').checked){
                allChars= allChars.replace(new RegExp('[' + paichuChars + ']', 'g'), '');
            }
            
            console.log(otherChars);
            console.log(paichuChars);


            var val=document.getElementById("textarea");
            for(let i=0;i<numcnt;i++){
                passwd='';
                for (let j= 0; j< numlen;j++) {
                    const randomIndex = Math.floor(Math.random() * allChars.length);
                    passwd += allChars.charAt(randomIndex);
                }
                val.value += passwd+'\n';
            }
        }
    </script>
</body>
</html>

11. 使用 JavaScript 和 HTML 设计一个简单的整数四则运算测试程序(如图 2 所示),要求实现以下功能:

(1) 用户可以在页面上选择题目类型和题目数量。

(2) 用户单击“开始答题”按钮来开始答题。

(3) 页面上需要显示题目和用户的答案。

(4) 单击“提交答案”按钮来提交答案,系统显示用户得分。

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
     #quiz-container {
      margin: 20px;
    }

    .question-container {
      margin-bottom: 10px;
      padding: 5px;
    }

    .correct {
      background-color: green;
    }

    .incorrect {
      background-color: red;
    }
    </style>
</head>
<body>
    <h2>整数四则运算测试</h2>
    <p>
        题目类型:
    <select id="question_type">
        <option value="add">加法</option>
        <option value="reduce">减法</option>
        <option value="mul">乘法</option>
        <option value="chu">除法</option>
    </select>
    </p>
    <p>
        题目数量:
        <input type="number" id="question_number" min="1">
    </p>
    <p>
        <button id="start" onclick="startQuiz()">开始答题</button>
        <button id="submit" onclick="submitAnswers()" >提交答案</button>
    </p>
    <div id="quiz"></div>
    <div id="score"></div>

    <script>
         let currentQuestion = 0;
        let score = 0;
        let questions = [];

        function startQuiz(){
            currentQuestion = 0;
            score = 0;
            questions = generateQuestions();

            showQuestions();
        };

        function generateQuestions(){
           
            questionType=document.getElementById('question_type').value;
            questionNumber=document.getElementById('question_number').value;
            const generatedQuestions = [];
            
            
          for (let i = 0; i < questionNumber; i++) {
            const num1 = Math.floor(Math.random() * 10);
            const num2 = Math.floor(Math.random() * 10);

            switch (questionType) {
             case 'add':
                 correctAnswer = num1 + num2;
                 generatedQuestions.push({
                    question: `${num1} + ${num2} = `,
                    correctAnswer: correctAnswer.toString(),
                    userAnswer: ''
                 });
              break;
             case 'reduce':
                 correctAnswer = num1 - num2;
                 generatedQuestions.push({
                    question: `${num1} - ${num2} = `,
                    correctAnswer: correctAnswer.toString(),
                    userAnswer: ''
                 });
              break; 
              case 'mul':
                 correctAnswer = num1 * num2;
                 generatedQuestions.push({
                    question: `${num1} * ${num2} = `,
                    correctAnswer: correctAnswer.toString(),
                    userAnswer: ''
                 });
              break; 
              case 'chu':
                 correctAnswer = num1 /num2;
                 generatedQuestions.push({
                    question: `${num1} / ${num2} = `,
                    correctAnswer: correctAnswer.toString(),
                    userAnswer: ''
                 });
              break; 
            }
         }
         return generatedQuestions;
        }
        function showQuestions() {
         const quizContainer = document.getElementById('quiz');
         quizContainer.innerHTML = '';

         for (let i = 0; i < questions.length; i++) {
            const questionContainer = document.createElement('div');
            questionContainer.className = 'question-container';
            questionContainer.innerHTML = `${questions[i].question} <input type="text" id="answer${i}" onchange="updateUserAnswer(${i})">`;
            quizContainer.appendChild(questionContainer);
             }
        }
        function updateUserAnswer(index) {
         questions[index].userAnswer = document.getElementById(`answer${index}`).value;
        }

        function submitAnswers() {
    for (let i = 0; i < questions.length; i++) {
      const questionContainer = document.querySelector(`#quiz .question-container:nth-child(${i + 1})`);

      if (questions[i].userAnswer === questions[i].correctAnswer) {
        questionContainer.classList.add('correct');
        score++;
      } else {
        questionContainer.classList.add('incorrect');
      }
    }

    showScore();
  }

  function showScore() {
    const scoreContainer = document.getElementById('score');
    scoreContainer.innerHTML = `得分: ${score} / ${questions.length}`;
  }

    </script>
</body>
</html>

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

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

相关文章

qiankun中子系统变化透传到主系统调用主系统方法

1、首先在主系统中qiankun启动前把变动的参数初始化 2、初始化之后就可以通过全局状态通信把参数透传为全局 3、在微应用子系统main.js的qiankun的mount中获取到全局设备参数属性并是设置为子系统全局 4、在微应用子系统中需要去调主系统方法时就在那个地方改变透传过来的参数 …

如何性能测试中进行业务验证?

在性能测试过程中&#xff0c;验证HTTP code和响应业务code码是比较基础的&#xff0c;但是在一些业务中&#xff0c;这些参数并不能保证接口正常响应了&#xff0c;很可能返回了错误信息&#xff0c;所以这个时候对接口进行业务验证就尤其重要。下面分享一个对某个资源进行业务…

ros2+在Ubuntu上安装gazebo

Binary Installation on Ubuntu(Ubuntu上binary方式安装gazebo) Harmonic binaries are provided for Ubuntu Jammy (22.04) and Ubuntu 24.04 (when its released). &#xff08;在Ubuntu22.04或者24.04上都是安装Harmonic版本的gazebo&#xff09;The Harmonic binaries are…

issue unit

The Issue Unit issue queue用来hold住&#xff0c;已经dispatched&#xff0c;但是还没有执行的uops&#xff1b; 当一条uop的所有的operands已经ready之后&#xff0c;request请求会被拉起来&#xff1b;然后issue select logic将会从request bit 1的slot中&#xff0c;选择…

指令寻址(顺序寻址和跳跃寻址)

目录 一. 顺序寻址1.1 定长指令字结构1.2 变长指令字结构 二. 跳跃寻址 \quad 指令寻址:如何确定下一条指令的存放地址? \quad 一. 顺序寻址 \quad 1.1 定长指令字结构 \quad 主存按字编址 \quad 按字节编址 1.2 变长指令字结构 \quad 同种颜色代表一条指令 由于无法判断当前…

制衣厂生产ERP系统怎么样?制衣厂生产ERP软件哪个好

有很多的制衣厂在订单处理、物料、仓储、销售、仓储、物料编码、车间成本核算、计件工资核算等方面还存在不少改进空间。 而经过多年的发展&#xff0c;现如今制衣行业的竞争比较激烈&#xff0c;如何提升各业务部门协同效率&#xff0c;减少车间物料损耗&#xff0c;简化生产…

idea的快捷键

1.调整字体的大小 文件夹的循序:setting-Editor-Font 界面: 2.删除当前行 文件夹的循序:setting-Keymap-DeleteLine 界面: 3.导入该行需要的类 文件夹的循序:setting-Editor-General-Auto import 界面: 4.格式化代码 文件夹的循序:setting-keymap-Reformat 界面: 5.快速…

【MySQL】——数据类型及字符集

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

loki 如何格式化日志

部署 grafana-loki 首先介绍一下如何部署 官方文档&#xff1a;部署 grafana-loki 部署命令 设置集群的存储类&#xff0c;如果有默认可以不设置设置命名空间 helm install loki oci://registry-1.docker.io/bitnamicharts/grafana-loki --set global.storageClasslocal -n …

程序员退一步的海阔天空,是考公还是烤冷面?

打败一个志向坚定的程序员只需要一个简单的年龄危机、身体预警.......钱难挣、屎难吃。996的钱更是伤身体&#xff0c;或者是被裁员、劝退的无力。算了~这份工作也不是非要不可&#xff0c;劳资不干了&#xff01;&#xff08;hahahahaha....bushi)人生在世&#xff0c;进可攻、…

Soul 推出“SoulX”AI人工智能模型,已应用于旗下 App“苟蛋”AI聊天机器人

Soul社交平台最近发布了名为”SoulX“的AI人工智能模型&#xff0c;SoulX将作为Soul “AIGC社交”布局的重要基建&#xff0c;具备prompt驱动、条件可控生成、上下文理解、多模态理解等能力&#xff0c;垂直应用于平台上多元社交互动场景&#xff0c;如智能对话机器人、AI辅助聊…

模拟微信、QQ、支付宝那样的随机红包

随机拆分给定金额为给定个数红包&#xff0c;像微信、QQ、支付宝随机红包那种&#xff0c;要求红包总金额绝对与给定金额相等。 (笔记模板由python脚本于2023年12月14日 12:37:58创建&#xff0c;本篇笔记适合熟悉Python随机数模块random的整型随机方法randint&#xff0c;能熟…

卫浴企业做网站的效果如何

卫浴产品无论工程还是家庭中都有较高需求度&#xff0c;相关品牌或经销商也不少&#xff0c;然而在实际经营中&#xff0c;卫浴品牌商家也面临着一些痛点&#xff1a; 1、品牌宣传拓客难 卫浴产品并不缺客户&#xff0c;但大小品牌众多&#xff0c;商家想要突围绝非易事&…

国产数据库适配-人大金仓(kingbase V8R3)

金仓数据库是基于POSTGRE_SQL 参考资料 国产数据库人大金仓踩坑记录和函数适配_金仓数据库关系不存在-CSDN博客 Springboot工程 适配人大金仓 kingbase V8R3 引入驱动包和方言包 hibernate-5.2.17.Finaldialect.jar kingbase8-8.2.0.jar application.yml文件 driver-cla…

计算机网络安全原理习题参考答案

1.9习题 一、单项选择题 1. ISO 7498-2从体系结构的角度描述了5种可选的安全服务&#xff0c;以下不属于这5种安全服务的是&#xff08;  D  &#xff09; A. 数据完整性   B. 身份鉴别   C. 授权控制   D. 数据报过滤 2. ISO 7498-2描述了8种特定的安全机制&…

破局创新,天翼云HBlock如何以小见大、以柔克刚?

引言&#xff1a;另辟蹊径开拓创新 不走传统存储厂商的“寻常路” 【全球存储观察 &#xff5c; 科技热点关注】 在分布式块存储领域&#xff0c;大部分厂商的安装软件套件大小都在GB级。然而&#xff0c;天翼云破天荒地将存储资源盘活系统HBlock的软件安装包浓缩到了170MB&a…

SFP3006-ASEMI大电流快恢复二极管SFP3006

编辑&#xff1a;ll SFP3006-ASEMI大电流快恢复二极管SFP3006 型号&#xff1a;SFP3006 品牌&#xff1a;ASEMI 封装&#xff1a;TO-247 最大平均正向电流&#xff1a;30A 最大重复峰值反向电压&#xff1a;600V 产品引线数量&#xff1a;3 产品内部芯片个数&#xff1…

【前端学习记录】记一次分片上传逻辑的调试过程

前言 在项目开发的过程中&#xff0c;经常会遇到上传和下载&#xff0c;对于上传来说&#xff0c;如果是小文件的话&#xff0c;接口响应会比较快&#xff0c;但是对于大文件&#xff0c;则需要对其分片以减少请求体的大小和上传时间。 小文件上传 以Vue框架使用<el-uplo…

微信小程序map视野发生改变时切换定位点

<!--地图--> <view><map id"myMap" style"width: 100%; height: 300px;" latitude"{{latitude}}" longitude"{{longitude}}"scale"{{scale}}" markers"{{markers}}" controls"{{controls}}&q…

VUE篇之日历组件

1.简单日历组件展示 思路&#xff1a;根据当前月的第一天是星期几&#xff0c;来显示日期 <template><div class"wrap"><el-button click"preMonth">上个月</el-button><el-tag>当前年份{{ curYear }}</el-tag><e…
最新文章