标签:
四则运算2之设计思路篇
对于四则运算程序的新要求:
1、题目避免重复;
2、可定制(数量/打印方式);
3、可以控制一下参数:
是否有乘除法、数值范围、加减有无负数、除法有无余数、是否支持分数(真分数,假分数,...)
要求一、
首先解决第一个要求:题目避免重复。第一件事就是优化得到随机数的算法,在每次生成算式的循环中,首先排除被除数为0的除法算式,将得到的算式分别赋给四个字符串数组,根据本次随机得到的运算符分别在四个字符串数组中进行比较,默认交换律得到的两个式子满足要求,可以作为交换律的考察。
要求二、
数量和打印则定义两个参数分别代表需要输出的算式数量和输出的格式。
要求三、
对于各种参数的限制,该如何让各个参数限制进行组合,下面先分块给出了各个问题的解决思路:
1). 是否有乘除法,如果不要乘除法,则抛弃随机出乘除法的算式,跳过此循环。
2).数值范围,第一个参数作为求随机数的范围参数。
3).加减有无负数,如果可以有负数,则设计一个参数来随机随机数的正负,如果为负,则让产生的随机数减去2倍的本身产生相反数。
4).除法是否有余数,如果不可以有余数,则将除不尽的算式抛弃即可。
5).是否支持分数(真分数,假分数,...),如果支持分数,不区分分数的种类,满足分数的条件即可,和加减有无负数类似,设置一个参数来随机是否要产生一个分数,然后重新设置两个随机数来产生分数的分子和分母。
对于各种参数限制的组合,可以让每个算式中的参数产生时,先依次对上述5个限制进行判断和约束,得到满足所有参数限制的参数后组合成为一个算式,再对新要求的第一个要求进行判断。
标签:
原文地址:http://www.cnblogs.com/little-clever/p/4334892.html