当前位置: 代码迷 >> 综合 >> JavaScript程序设计训练 Day3
  详细解决方案

JavaScript程序设计训练 Day3

热度:88   发布时间:2023-11-30 11:23:41.0

1、编写程序,根据用户输入的数值,计算其平方、平方根和自然对数

    <script>var input_num=Number(prompt("请输入一个数字:"));var sqrt_num=Math.sqrt(input_num);//开方var pow_num=Math.pow(input_num,2);//平方var log_num=Math.log(input_num);//ln,即e的多少次方等于input_numvar log10_num=Math.log10(input_num);//以10为底,10的多少次方等于input_numdocument.write(input_num+"的平方根为"+sqrt_num+",平方为"+pow_num+",自然对数为"+log_num+",对数为"+log10_num);</script>

在这里插入图片描述

2、使用Math对象的random()方法编制一个1~100之间的随机整数的函数

    <script>       function Random_hun(){
    for(var i=1;i<=100;i++){
    if(i%15==0) //满15个换行document.write(Math.floor(Math.random()*100+1)+"<br>"); //random产生[0,1)之间的数,乘以100后范围在[0,100),所以要+1else{
    var r=Math.floor(Math.random()*100+1);//将随机数存到r里,避免打印时又变换随机数if(Math.floor(r/10)!==0) //即如果r不是一位数,是两位数或三位数{
    if(Math.floor(r/100)!==0) //如果是一百document.write(r+"&nbsp;");elsedocument.write(r+"&nbsp;&nbsp;&nbsp;");}elsedocument.write(r+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");}       }               }Random_hun();</script>

在这里插入图片描述

3、设计一个页面,在页面上显示信息“现在是xx年xx月xx日xx点xx分xx秒(星期xx),欢迎你的到来”。

    <script>       function time_v(){
    var date=new Date();document.write("现在是"+date.getFullYear()+"年"+(date.getMonth()+1)+"月"+date.getDate()+"日"+date.getHours()+"点"+date.getMinutes()+"分"+date.getSeconds()+"秒"+"(星期"+date.getDay()+"),欢迎你的到来!");}time_v();</script>

在这里插入图片描述
然而以上代码有个小问题,星期天会显示星期0,根据此问题做出以下修改。

<script>var date=new Date();var year=date.getFullYear();var month=date.getMonth()+1;var day=date.getDate();var hour=date.getHours();var min=date.getMinutes();var sec=date.getSeconds();var week=date.getDay();switch(week){
    case 0:week='七';break;case 1:week='一';break;case 2:week='二';break;case 3:week='三';break;case 4:week='四';break;case 5:week='五';break;case 6:week='六';break;}document.write("现在是"+year+"年"+month+"月"+day+"日"+hour+"点"+min+"分"+sec+"秒"+"(星期"+week+"),欢迎你的到来");</script>

4、设计一个程序,使用数组接收用户输入的7门功课的成绩,然后在页面上显示其总成绩和平均分,并列出小于60的成绩。

    <script>function f01(){
    var score_arr=new Array();//括号里不能直接写7,不然会自动创建7个为空的元素var score_60=new Array();var grade_sum=0,grade_avg;for(var i=0;i<7;i++){
    var score=Number(prompt("请输入第"+(i+1)+"门课的成绩:")); score_arr.push(score);grade_sum+=score_arr[i];if(score_arr[i]<60){
    score_60.push(score_arr[i]);}}grade_avg=grade_sum/7;//document.write("总成绩为"+grade_sum+",平均分为"+grade_avg);document.getElementById("show").innerHTML="总成绩为"+grade_sum+",<br>平均分为"+grade_avg+",<br>小于60分的成绩为"+score_60;}</script>
</head>
<body><p id="show" onclick="f01()">点击输入成绩</p>
</body>

在这里插入图片描述

5、为Date对象添加一个自定义方法getDayYear(),用来返回日期是所在年份的第几天。

方法1:

    <script>function getDayYear(){
    var now_date=prompt("请输入当前日期,格式为xxxx/x/x:"); //输入2022/4/15var date=new Date(now_date);var month=date.getMonth(),year=date.getFullYear(),day=0; //getMonth()返回0~11for(var i=0;i<month;i++){
    switch(i){
                        case 0:day+=31;break;case 1:if(year%4==0&&year%100!=0||year%100==0){
    day+=29;break;}                            else{
    day+=28;break;}                            case 2:day+=31;break;case 3:day+=30;break;case 4:day+=31;break;case 5:day+=30;break;case 6:day+=31;break;case 7:day+=31;break;case 8:day+=30;break;case 9:day+=31;break;case 10:day+=30;break;//case 11:day+=31;break; 相当于12月的总天数,在循环结束后加即可}}         day+=date.getDate();document.write("现在是"+date.getFullYear()+"的第"+day+"天");}getDayYear();</script>

在这里插入图片描述
方法2:

	<script>function IsLeapYear(year){
    if(year%4==0&&year%100!=0||year%400==0){
    return true;}else{
    return false;}}function DayOfYear(d){
    var date=new Date(d);var year=date.getFullYear();var month=date.getMonth();var day=date.getDate();if(IsLeapYear(year)){
    months=new Array(31,29,31,30,31,30,31,31,30,31,30,31);}else{
    months=new Array(31,28,31,30,31,30,31,31,30,31,30,31);}for(var i=0;i<month;i++){
    day+=months[i];}document.write("现在是"+year+"的第"+day+"天");}var d=prompt("请输入一个日期:");DayOfYear(d);</script>

6、实现输入位数n,输出n位随机数

    <script>var n=Number(prompt("请问你想打印多少位的随机数?"));var s="";for(var i=0;i<n;i++){
    s+=Math.floor(Math.random()*10);}document.write(s);</script>

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

以上代码也会有一个问题,即第一位可能为0,即做出以下修改:

<script>var n=Number(prompt("请问要产生几位随机数?"));   var res=Math.ceil(Math.random()*9); //以防第一位为0的情况var num=""+res;for(var i=0;i<n-1;i++){
    num+=Math.floor(Math.random()*10);} document.write("<h1>"+num+"</h1>");
</script>
  相关解决方案