案例:指定位数随机计算题测试试卷与交互式自我测试程序
点“考研实验数学” 关注可每天“涨姿势”哦
小孩寒假作业要求自己出题做乘除运算练习,根据她的要求做了一个打印版本和和直接在电脑上测试的,交互式自我检测的版本,希望给有需求的朋友提供参考,表达式没有优化,按照直观涵义与需求编写!
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)
我们的大学数学公共基础课程分享交流平台!长按二维码关注公众号!