美文网首页
编程与数学 利用随机数,编三年级暑假数学计算题2023-07-0

编程与数学 利用随机数,编三年级暑假数学计算题2023-07-0

作者: 一粟01 | 来源:发表于2023-07-01 06:57 被阅读0次

利用PHP编程,编三年级暑假数学计算题

【作者:一粟】

设计每天6种题型各2道题,共59天。
1.三位数除以一位数,两位数乘两位数或三位数乘一位数,这2种题型,复习三年级学的竖式计算。
2.三位数(或一位小数、两位小数)连加/连减(其中两个数可以凑整),两位数乘一位数再乘一位数,两位数乘两位数加上两位数乘两位数,这4种题型渗透运算率。

编程思考

这道题,要先设置好每种题型的题,每个数字的取值范围

代码
<?php       
    date_default_timezone_set('Etc/GMT-8');//设置时区
    $r1=mktime(0,0,0,7,2,2023);//第1次日期,时间戳,2023年7月2日
    for($k=0;$k<59;$k++){//59天
        //6种类型的运算,生成12道题 开始
        $ss = array();//算式数组
        $s1 = rand(1,9)*100;
        $s2 = rand(10,$s1);
        $sa = array($s2,rand(50,999),$s1-$s2);          
        $xz = pow(10,rand(0,-2));
        $ss[] = $sa[0]*$xz."+".$sa[1]*$xz."+".$sa[2]*$xz;
        $ss[] = $sa[0]*$xz."+".$sa[2]*$xz."+".$sa[1]*$xz;   
        $s1 = rand(49,99)*10;
        $s2 = rand(20,$s1/10)*10;           
        $s4 = rand(20,$s2);
        $sa = array(rand($s1,999),$s4,$s2-$s4);         
        $xz = pow(10,rand(0,-2));
        $ss[] = $sa[0]*$xz."-".$sa[1]*$xz."-".$sa[2]*$xz;
        $ss[] = $sa[0]*$xz."-(".$sa[1]*$xz."+".$sa[2]*$xz.")";
        $s2 = rand(2,9);
        if($s2>8) $s1 = rand(49,101)*$s2;
        else if($s2>5) $s1 = rand(49,141)*$s2;
        else $s1 = rand(101,199)*$s2;       
        $ss[] = $s1."÷".$s2."=";
        $s2 = rand(2,9);
        if($s2>8) $s1 = rand(49*$s2,999);
        else if($s2>5) $s1 = rand(101*$s2,141);
        else $s1 = rand(101*$s2,199);
        $ss[] = $s1."÷".$s2."=";
        $sa = array(rand(11,99),rand(2,9),rand(2,9));
        $ss[] = $sa[0]."×".$sa[1]."×".$sa[2];
        sort($sa);
        $ss[] = $sa[0]."×".$sa[1]."×".$sa[2];
        $s1 = rand(11,99);
        $s2 = rand(2,9)*10;
        $s3 = rand(10,$s2-10);
        $xz = rand(1,2);//选择
        if($xz == 1) $ss[] = $s1."×".$s3."+".$s1."×".($s2-$s3);
        else $ss[] = $s3."×".$s1."+".($s2-$s3)."×".$s1;
        if($xz == 1) $ss[] = $s1."×(".$s3."+".($s2-$s3).")";
        else $ss[] = "(".$s3."+".($s2-$s3).")×".$s1;
        $sa = array(rand(11,99),rand(101,999),rand(2,9),rand(10,99));
        $xz = rand(1,2);//选择
        if($xz == 1) $ss[] = $sa[0]."×".$sa[3];else $ss[] = $sa[1]."×".$sa[2];  
        $sa = array(rand(11,99),rand(101,999),rand(2,9),rand(10,99));
        $xz = rand(1,2);//选择
        if($xz == 1) $ss[] = $sa[0]."×".$sa[3];else $ss[] = $sa[1]."×".$sa[2];
        //6种类型的运算,生成12道题 结束
        echo "<table><tr><td colspan='4'>";     
        echo '计算天天练';
        echo '&nbsp;&nbsp;&nbsp;&nbsp;';
        echo date("n月j日",strtotime($k.'day',$r1));
        echo '&nbsp;&nbsp;&nbsp;&nbsp;';
        echo '姓名:';
        echo '____________';
        echo '&nbsp;&nbsp;&nbsp;&nbsp;';
        echo '得分:';
        echo '____________';    
        echo "</td></tr><tr><td>";
        for($i=0;$i<12;$i++){//每天12题
            echo "(".($i+1).") ".$ss[$i];
            if((($i+1) % 4) == 0) echo "</td></tr><tr><td>";else echo "</td><td>";
        }
        echo "</td></tr></table>";
    }
?>
代码优化设想

以上代码,对每天12道题出现的顺序没有进行处理。可以让每天12道题以随机的顺序出现(有需要对比的题,要连续出现)。

设计初衷

本来的设想是每次呈现1天的题,作为一个在线网页,发布到个人网站,供学生每天在线答题、实时判分。去年也试着买了一年的域名,做了二年级暑假计算题,给本班学生使用了。但后来对备案要求严格了,个人网站需要备案,加上对域名、主机等管理不熟悉,只好搁浅。

现实做法

使用这个程序,一次生成59天的练习,复制到excel表格中,发给家长,让学生抄写或打印下来,在纸上进行练习。


本地网页,生成题目 题目复制到Excel中,排好版,便于家长直接打印

相关文章

网友评论

      本文标题:编程与数学 利用随机数,编三年级暑假数学计算题2023-07-0

      本文链接:https://www.haomeiwen.com/subject/qjntudtx.html