作业:https://edu.cnblogs.com/campus/nenu/SWE2017FALL/homework/997
文档下载:https://coding.net/u/Dawnfox/p/f4/git/tree/master/doc

Vesion 开始时间 结束时间 备注
(V1.0) 2017/10/4 9:44:22 2017/10/4 11:33:12 初稿总结
(V1.1) 2017/10/4 15:57:08 2017/10/4 16:00:57 补充题目自动生成,并非用户手动输入
备忘:用于最后检验代码的功能是否完善,有遗漏的地方之后再补充。

一、正文

可执行文件(.exe)的文件名为f4,“>”表示可执行文件所在的文件目录,四则运算的题目是由程序生成而并非用户手动输入,用户只输入题目数量或者计算的结果。

功能1

仅支持四则基础运算,此时不支持括号。

a. 四则基础运算是指加(+),减(-),乘(*),除(/)。
b. 操作数的范围题目没明确指出,此处限定操作数的范围为-9999~9999,操作数应为整数或分数。
c. 功能1限定题目数量为20道。
d. 输入格式
在控制台输入“f4 回车”(无命令行参数)。
用户计算出的表达式结果的输入格式为“?a”,a为正确答案。如“?10”。
e. 输出格式
如果用户输入答案与题目正确的答案相等,则输出“答对啦,你真是天才!”,否则输出“再想想吧,答案似乎是(正确答案数字)喔!”。
用户答完20道题后,最后输出“你一共答对a道题,共b道题”。a为答对的题数量,b为题的总数,此时为20。还需注意最后这句话上面有一行空行。
f. 分数
1/3 != 0.33333333333333333333333333333333,而是无限长。该段话说明分数能够除尽时则可以用小数表示,否则应为分数形式。

功能2

在功能1基础上进行拓展,支持括号。

a. 括号此处只包括小括号(),不包括中括号[]与大括号{}。
b. 其他注意事项见功能1。

功能3

可定制题目数量,生成的题目两两之间不相同,将题目与正确答案打印到控制台与txt文件中。

a. 参数意义
两个命令行参数,参数1为-c,参数2代表题目数量。例:f4 -c 5 回车,该命令表示生成5道题目。
b. 参数格式
代表题目数量的参数2必须为正整数,如果为负数、小数、字符串、0或其他格式的不合法参数,输出“题目数量必须是 正整数。”。例:

f4 -c -200
题目数量必须是 正整数。
c. 相同题目的定义
普遍认为的相同题目是指题目A与题目B的操作符与操作数数量、顺序与形式都一致,如:题目A为1+2+3+4,而题目B为1+2+3+4。此处还需对“相同题目”进行定义,指看起来不一样的表达式通过交换律、结合律、分配律变换成另一道题目。如:题目A为12+32,题目B为2(1+3)+0。
d. 输出方式
“你忘记怎么调用打印机了,就把答案与题目横向对齐,输出在文件的右边。告诉老师txt文件可以用WORD打开,也能打印。”从这句话推断出,功能3不仅需要在控制台输出题目与正确答案,同时需要将题目与正确答案记录在相应的txt文件中。
e. 输出格式
答案与题目横向对齐,输出在文件的右边。需要注意题目是左对齐,而答案则是题目水平右侧且答案的第一个数字竖直方向对齐。例:
f4 -c 3
1+2
(3+4)= 15
(1+2)3+5= 14
((1/2)-4)
5= 17.5

功能4

待定,附加题,暂不考虑