20165210 结对编程练习:四则运算(二)
20165210 结对编程练习:四则运算(二)
题目需求:
- 四则运算:
- 自动生成
- 要求有加减乘除
- 支持真分数
- 统计正确率
需求分析:
- 首先我们可以把除法和分数归为一类
- 有一个类进行随机生成数
- 有一个类进行随机生成符号
- 主类进行四则运算和统计正确率
- 四则运算的计算式
- 分数的计算式
设计思路:
计算类:
public class Calculate{ //进行计算,利用栈的相关知识
public int caculate(String Question,int choose){
Rational result=new Rational();
MiddleToBehind BQuestion=new MiddleToBehind();
BQuestion.setNormal(Question);
BQuestion.change();//把算式改成后序。
OutOfStack calculate=new OutOfStack();
result=calculate.evaluate(BQuestion.Behind); //运算出结果
int a=result.getNumerator();//获得结果的分子
int b=result.getDenominator();//获得结果的分母
Scanner scanner = new Scanner(System.in);
String answer=scanner.nextLine();//输入答案
获得算式:
switch (language) {
case 0:
System.out.println("选择运算数最大为:");
range=scanner.nextInt();//获得四则运算中数字的上限。
break;
case 1:
System.out.println("Choose The maximum number of operands is");
range=scanner.nextInt();//获得四则运算中数字的上限。
break;
case 2:
System.out.println("選擇運算數最大為");
range=scanner.nextInt();//获得四则运算中数字的上限。
break;
}
真分数运算:
- 设置分子:
void setNumerator(int a){//设置分子
int c=f(Math.abs(a),denominator);//计算最大公约数
numerator=a/c;
denominator=denominator/c;
if (numerator<0&&denominator<0) {
numerator=-numerator;
denominator=-denominator;
}
}
- 设置分母:
void setDenominator(int b){//设置分母
int c=f(numerator,Math.abs(b));//计算最大公约数
numerator=numerator/c;
denominator=b/c;
if (numerator<0&&denominator<0) {
numerator=-numerator;
denominator=-denominator;
}
else if (numerator>0&&denominator<0){
numerator=-numerator;
denominator=-denominator;
}
}
截图
结对感受
经过两次的结对学习,我发现了两个人一起学习的学习效率高过于独自学习的学习效率,在学习中两个人可以进行知识互补,其实思想什么的更多的是我的小伙伴想的,我只是提提意见,但是我相信在之后的结对学习中我会变得和他一样。