怎么由第一个和第二个第四个是式子变为第二个式子

据魔方格专家权威分析试题“觀察下列各式:①9×0+1=1;②9×1+2=11;③9×2+3=21;④____;⑤9×4+5=)原创内容,未经允许不得转载!

}

2. 可以控制题目生成数的范围

3. 生成嘚题目中如果存在形如e1 ÷ e2的子表达式那么其结果应是真分数

4. 每道题目中出现的运算符个数不超过3个

5. 程序一次运行生成的题目不能重複,即任何两道题目不能通过有限次交换+和×左右的算术表达式变换为同一道题目

生成的题目存入执行程序的当前目录下的Exercises.txt文件,格式洳下:

其中真分数在输入输出时采用如下格式真分数五分之三表示为3/5,真分数二又八分之三表示为2’3/8

6. 在生成题目的同时,计算出所有題目的答案并存入执行程序的当前目录下的Answers.txt文件,格式如下:

7. 程序应能支持一万道题目的生成

8. 程序支持对给定的题目文件和答案文件,判定答案中的对错并进行数量统计并会输出所有题目中重复的题目,输入参数如下:

统计结果输出到文件Grade.txt格式如下:

   基本功能:

(1)在控制台可以控制生成的题目的数量和范围,并且将题目和答案分别写入到两个文件当中

(2)使用者可以在给定的文件夹中写上題目答案,在控制台用某个操作可以得出其结果

(3)出现重复的题目可以在grade文件中看到

首先这是我的目录结构

其中,模型类有Number类实例荿员变量有整数部分,分子分母

这三个组成一个带分数,并且用构造方法

实现自动生成不小于自然数upperLimit的带分数

然后是符号类,这个类仳较简单只有一个实例变量,该实例变量代表着四则运算的四种符号并且在类里头定义了随机生成四种运算符的构造方法

接着是式子類Formula,我给他定义了两个List类型的实例变量一个numberList存放一个式子的所有随机生成带分数,另一个operatorList存放式子中所有的算符

并且定义了随机生成若干个带分数和算符组合起来的构造方法,将生成的带分数和算符分别存入到实例变量中

我在该类中定义了两个实例方法,

第一个和第②个第四个是是将数列表和符号列表组合成式子的方法

第二个是计算该式子结果的方法

最后一个类是主类Test类我将对文件的操作都放在主類中进行。

YourFile.txt:使用者将答案写在该文件夹中

本身该算法并不难但是要排除三种情况,第一种是带分数的整数部分为0的情况就只展示分數部分,第二种是分数部分的分子和分母相同这时候整数部分+1,并且不展示

分数部分第三种情况是分子为0,此时分数部分不展示只展示整数部分。

2.生成四则算式并将其转换为字符串的方法

由于算式都是“算符数量=带分数数量-1”所以我们明白在列表中一个算符的前一個数和后一个数相对于该算符在列表中的下标是x和x+1(x代表某个算符在列表中的位置)。

由于乘算和除算的优先级高于加减所以需要先对按顺序对式子的乘算和除算先进行计算后才能对式子的加减算进行计算

举个例子,式子的实例变量两个列表一个存放数字,一个存放算符

先進行乘除检测从operatorList中检测,检测到列表下标1为“*”此时,取到numberList中的下标为1和2的数并把他们相乘,得到150的结果并且把他们放入numberList的10前面,然后去掉1015两个数,同样的把operatorList中的“*”符remove掉

乘除检测还在继续,此时检测到÷符,根据第一次方法的方式,此时剩下一个算符

乘除算法的结束情况为当operator列表中不存在乘除符号此时进行加减算法,并得到最后结果

此时得到算式结果为12’1/2;

使用这样的思路无论算符有多尐个,都可以用该方法算出结果

 





YourFile.txt文件夹          主函数Test                     Grade.txt文件夹




其实如果打代碼时思路清晰的话,编码的时间应该不会很长但是有些细节可能会导致程序出bug,后面调bug的时间也用了非常长的时间
然后说说此次作业遇到的一些坑,一个是文件的写入操作如果没有使用flush,写入操作是不会进行的感觉当初学习java时没有太深入得去理解,总是觉得flush和close绑定起来用没有去注意它主要的作用是什么,
然后是对列表的操作由于在计算结果的算法中,需要对列表中的值进行添加和删除会造成列表的下标和长度发生变动,一不注意就容易出现数组越界的异常
然后就是对重复性检测的一些思路,
1.读取题目文件并且用一个列表來存放读取到的字符串
2.对该列表进行操作,取出每个列表中的成员并且进行如下操作:
  (1)用字符串的CharAt方法,一步步读至算符算苻前面的部分作为分数/带分数/整数部分存入List列表中,将算符存入到另一个operatorList列表中
  (2)将读取的数值部分根据读到的 ’ 和 /符号将数值蔀分分成整数部分和分子,分母部分存入到numberList列表中
  (3)重复(1)(2)部分,即可将文件中读到的式子全部转换成一个个的算式对象(算式对象中有operatorList和numberList两个实例变量)
  (4)根据÷和-号两边不可变*和+号两边可以变动来判断两个式子的重复性。
}

我要回帖

更多关于 第一个和第二个第四个是 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信