问答详情
源自:7-23 编程练习

编程题,计算某班成绩?

各位大大,这道编程题小白做了很久,终于做出来了。

可是感觉思维有点混乱。还有最后一个语句不知道怎么回事报错了。

so,小白只好来请教各位大大了。

( ╯□╰ )。。( ╯□╰ )。。麻烦各位热心的||好心的||有信心的大大给小白看一下。

请多多指教啦!

提问者:墨小漓 2016-08-31 20:49

个回答

  • qq_乜许不懂_03883685
    2016-09-01 01:23:28
    已采纳

    <!DOCTYPE  HTML>

    <html >

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <title>系好安全带,准备启航</title>


    <script type="text/javascript">


      //通过javascript的日期对象来得到当前的日期,并输出。

      var mydate=new Date();

      var time=mydate.getFullYear()+"年"+mydate.getMonth()+"月"+mydate.getDate()+"日";

      var myday=mydate.getDay();

      var weekday=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]; 

      //weekday[myday]实现数字和星期几的转换

      //成绩是一长窜的字符串不好处理,找规律后分割放到数组里更好操作哦

      var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";

      var newscore=scoreStr.split(";"); //分割字符串成字符串数组。

      document.write("分割后得到的字符串数组:"+"<br/>"+newscore+"<br/>");//测试代码

      //document.write(newscore[0]+"<br/>");//测试代码

      document.write("数组长度:"+newscore.length+"<br/>");

      function resul(){

        var sum = 0;

      for(var i=0;i<newscore.length;i++){

         newscore[i]=newscore[i].substring(3);//提取数组元素中的分数,重新给数组赋值

        //document.write(newscore[i]+"<br/>");

        sum=sum+parseInt(newscore[i]);//计算班级总分;parseInt(newscore[i])从数组中将成绩撮出来。然后求和取

        return sum;

    return newscore[i];

    //使用parseInt()函数可解析一个字符串,并返回一个整数。

      }

     //document.write("新数组:"+newscore+"<br/>");

     var priscore=Math.round(sum/newscore.length);//计算平均分

     document.write("- -班级平均分:"+priscore+"<br/>");

      }


      //从数组中将成绩撮出来,然后求和取整,并输出。

     document.write(time+"&nbsp"+weekday[myday]);

       resul();//调用计算平均分函数

      // document.write(resul());//( ╯□╰ )( ╯□╰ )正确代码

    错了。</script>

    </head>

    <body>

    </body>

    </html>



  • 墨小漓
    2016-09-02 10:34:08

    在各位大大的帮助下,这题小白终于弄出来了。谢谢大家。

    <!DOCTYPE  HTML>

    <html >

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <title>系好安全带,准备启航</title>


    <script type="text/javascript">


      //通过javascript的日期对象来得到当前的日期,并输出。

      var mydate=new Date();

      var time=mydate.getFullYear()+"年"+mydate.getMonth()+"月"+mydate.getDate()+"日";

      var myday=mydate.getDay();

      var weekday=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]; 

      //weekday[myday]实现数字和星期几的转换

      //成绩是一长窜的字符串不好处理,找规律后分割放到数组里更好操作哦

      var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";

      var newscore=scoreStr.split(";"); //分割字符串成字符串数组。

      document.write("分割后得到的字符串数组:"+"<br/>"+newscore+"<br/>");//测试代码

      document.write("数组长度:"+newscore.length+"<br/>");

      function resul(){

        var sum = 0;

      for(var i=0;i<newscore.length;i++){

         newscore[i]=newscore[i].substring(3);//提取数组元素中的分数,重新给数组赋值

        //document.write(newscore[i]+"<br/>");

        sum=sum+parseInt(newscore[i]);//计算班级总分;parseInt(newscore[i])从数组中将成绩撮出来。然后求和取

         //使用parseInt()函数可解析一个字符串,并返回一个整数。

        

      }

     //document.write("新数组:"+newscore+"<br/>");

     var priscore=Math.round(sum/newscore.length);//计算平均分

    return priscore;//平均分

      }


      //从数组中将成绩撮出来,然后求和取整,并输出。

     document.write(time+"&nbsp"+weekday[myday]);

      document.write("- - - 班级平均分:"+resul());//o(^▽^)o,这回终于没有报错了

    </script>

    </head>

    <body>

    </body>

    </html>


  • qq_乜许不懂_03883685
    2016-09-01 00:47:35

    <!DOCTYPE  HTML>
    <html >
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>系好安全带,准备启航</title>
    
    <script type="text/javascript">
    
      //通过javascript的日期对象来得到当前的日期,并输出。
      var mydate=new Date();
      var time=mydate.getFullYear()+"年"+mydate.getMonth()+"月"+mydate.getDate()+"日";
      var myday=mydate.getDay();
      var weekday=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]; 
      //weekday[myday]实现数字和星期几的转换
      //成绩是一长窜的字符串不好处理,找规律后分割放到数组里更好操作哦
      var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
      var newscore=scoreStr.split(";"); //分割字符串成字符串数组。
      document.write("分割后得到的字符串数组:"+"<br/>"+newscore+"<br/>");//测试代码
      //document.write(newscore[0]+"<br/>");//测试代码
      document.write("数组长度:"+newscore.length+"<br/>");
      function resul(){
        var sum = 0;
      for(var i=0;i<newscore.length;i++){
         newscore[i]=newscore[i].substring(3);//提取数组元素中的分数,重新给数组赋值
        //document.write(newscore[i]+"<br/>");
        sum=sum+parseInt(newscore[i]);//计算班级总分;parseInt(newscore[i])从数组中将成绩撮出来。然后求和取
         //使用parseInt()函数可解析一个字符串,并返回一个整数。
      }
     //document.write("新数组:"+newscore+"<br/>");
     var priscore=Math.round(sum/newscore.length);//计算平均分
     document.write("- -班级平均分:"+priscore+"<br/>");
      }
    
      //从数组中将成绩撮出来,然后求和取整,并输出。
     document.write(time+"&nbsp"+weekday[myday]);
       resul();//调用计算平均分函数
      // document.write(resul());//( ╯□╰ )( ╯□╰ )小白不知道为什么,这个语句报错了。
    </script>
    </head>
    <body>
    </body>
    </html>


  • 深夜迷妹
    2016-08-31 22:33:13

    你的resul()函数以document.write("- -班级平均分:"+priscore+"<br/>");结尾,并没有return返回值,所以该函数完成后就是“--班级平均分:81”,然而document.write输出内容是字符串或者是一个变量值,所以说要想用document.write去调用函数,这个函数必须是返回值或字符串的。这样你用document.write调用没有返回值的函数就会报错,对于没有返回值的函数就要直接调用,如resul();

  • imalwayshere
    2016-08-31 22:28:59

    给你看看我的思路,希望能对你有帮助:

    <script type="text/javascript">
      Days = ["星期一","星期二","星期三","星期四","星期五","星期六","星期日"]
      //通过javascript的日期对象来得到当前的日期,并输出。
      var date = new Date();
      document.write(date.getFullYear()+"年"+date.getMonth()+"月"+date.getDate()+"日 "+Days[date.getDay()]);
    
      //成绩是一长窜的字符串不好处理,找规律后分割放到数组里更好操作哦
      var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
      var students = scoreStr.split(";"); //把每个人分开放到数组里面
      var tot=0;
      for(var i=0; i<10;++i){ //取成绩,剔除掉名字和冒号
          students[i] = students[i].substring(3,5);
      }
      //从数组中将成绩撮出来,然后求和取整,并输出。
      for(var i=0; i<10;++i){ //算总分,成绩还是字符串,所以注意把字符串转换为整数
          tot = tot + parseInt(students[i]);
      }
      document.write("--班级总分为:"+tot/10)
    
    </script>


  • qq_lemontree_19
    2016-08-31 22:04:44

    你的resul()函数都没有返回值啊