查看原文
其他

案例:指定位数随机计算题测试试卷与交互式自我测试程序

刘哥 考研竞赛数学 2024-04-26

点“考研实验数学” 关注可每天“涨姿势”哦

小孩寒假作业要求自己出题做乘除运算练习,根据她的要求做了一个打印版本和和直接在电脑上测试的,交互式自我检测的版本,希望给有需求的朋友提供参考,表达式没有优化,按照直观涵义与需求编写!


EXCEL输出版本:

nmax = 10;(*题数*)

Grid[Table[{ToString[RandomInteger[{100, 999}]] <> "×" <> 

    ToString[RandomInteger[{10, 99}]] <> "=", "", 

   ToString[RandomInteger[{100, 999}]] <> "÷" <> 

    ToString[RandomInteger[{10, 99}]] <> "=", ""}, {nmax}], 

 Spacings -> {6, 2}, ItemStyle -> Directive[20, Italic], Frame -> All]

Export["练习题.xls", %]

计算完成后显示如下结果:


默认状态下,在“我的文档”文件夹中可以找到EXCEL文件“练习题.xls”。


简单的交互式自我检测程序:

下面这个是自己直接打开Mathematica程序后,实时进行检测,并统计最终做题结果和分数的小程序:

list = {{"x+y=", "正确答案", "您的答案"}};

n = 10;(*设置题数*)

T = 0;

F = 0;

While[n > 0,

 x = RandomInteger[{1, 9}];

 y = RandomInteger[{1, 99}];

 z = x*y;

 problem = ToString[x] <> "\[Times]" <> ToString[y] <> "=?";

 temp = {problem, z};(*试题与正确答案列表*)

 answer = 

  Input[Row[{Style["题目为:", 20, Bold], Style[problem, 20, Red, Bold], 

     Style["   做完这个还有" <> ToString[n - 1] <> "个!", 20, 

      Bold]}]];(*答题对话框*)

 If[answer == z, AppendTo[temp, z]; T = T + 1(*答题正确*), 

  AppendTo[temp, Style[z, Red, Bold]]; F = F + 1(*答题错误*)]; 

 AppendTo[list, temp](*把一个题目的完整信息添加到列表*); n = n - 1]

Grid[Append[

  list, {"总题数:" <> ToString[T + F], "正确:" <> ToString[T], 

   "错误:" <> ToString[F], "得分:" <> ToString[Round[T*100/(T + F)]]}], 

 Frame -> All]

执行以上表达式,会弹出如下对话框,在编辑框中输入答案,点击“确定”按钮可以进入下一题,直到全部答完,然后给出最终结果,如下面的第二个图!



微信公众号:考研实验数学(ID: xwmath)

我们的大学数学公共基础课程分享交流平台!长按二维码关注公众号!

继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存