关于判断是否重复的解决。函数主要使用了for循环,首先随机出一个算式的两个参数和一个符号,根据符号的不同分为四组,以此减少验证是否重复时的验证次数。每组中有两个数组来存放两个参数。当每获得两个随机数,就和相应组内进行比较,前一个和前一个数组中数值比较,后一个和后一个数组中数值比较,有相同的就continue跳过,不保存在数组中。这种比较方式就忽略了两个参数颠倒产生两个式子的情况,例如5+4和4+5,单这种情况可以当做交换率的考核。
关于出题数量和打印方式的限制解决。使用两个参数num、line,num限制出题数量,line限制输出时每行输出数量。将for循环设为无限循环,在循环的最后让四组数量相加等于num即可break跳出循环。
最后一个限制有很多要求,目前完成了除分数的前几个要求。解决方法就是在for循环刚开始时,两个参数和符号都产生后,加上对各个限制的判断,不符合就continue跳过。数值范围则使用x=min+rand%(max-min)产生符合数值范围的随机数。
分数没有解决,一开始的想法就是用四个数组分别表示两个参数的分子和分母,根据我的分组判断的做法,那就还要再声明16个数组,这十六个数组不能在使用一开始for循环内的产生算式的算法,需要新的代码来实现要求,新的代码其实也就是在以前for循环的算法中加上每个式子加上两个数组进行运算,可有了式子的两个参数后,问题产生,怎么让两个参数满足限制条件,最基本的就是怎么让产生的分数在数值范围内,如果要求有负数又怎么办?因此分数还没有实现。
五、时间记录日志
学生:刘** 日期:2015.3
教师:王** 课程:软件工程
日期
开始时间
结束时间
中断时间
净时间
活动
备注
3/18
6:00
10:30
20
250
没课
明天交作业
3/19
4:20
5:50
90
马上交作业