20165203 结对编程 四则运算(第一周)
20165206 结对编程项目-四则运算 阶段一总结
一、需求分析
- 通过命令行输入生成题目的数量,随机生成题目。
- 生成的题目不重复。
- 生成的四则运算题目支持整数、支持多运算符。
- 能够根据作答情况统计正确的个数。
二、设计思路
- 设计一个类来实现整数的四则运算。
- 用一个循环结构来生成随机数,生成题目。
- 设计一个类来比较输入的答案与正确答案是否一致。
- 判断做的题是否正确,并返回正确的个数。
- 设计单元测试,对代码进行测试及修改
UML图:

三、核心代码
- 生成随机数:
while(true){
            a=new Random().nextInt(100);
            b=new Random().nextInt(100);
            i=new Random().nextInt(4);
            if(i==1&&a<b){
                continue;
            }
            if(i==3){
                if(b==0){
                    continue;
                }
                if(a%b!=0){
                    continue;
                }
            }
            break;
        }
    }
    ```
    
-生成算式及答案:  
switch(this.operator().toCharArray()[0]){
case '+':result=this.getA()+this.getB();break;
case '-':result=this.getA()-this.getB();break;
case '×':result=this.getA()*this.getB();break;
case '÷':result=this.getA()/this.getB();break;
}
- 输入题目的个数并统计个数:  
Scanner in = new Scanner(System.in);
int i;
i=in.nextInt();
int correct=0;
    Output out;
    while(i>0){
        out=new Output();
        System.out.print(out.getString());
        String s=scanner.nextLine();
        if(out.panduan(s)){
            System.out.println("回答正确!");
            correct++;
        }
        else{
            System.err.println("回答错误!");
        }
        i--;
        System.out.println("还有"+i+"道题未回答");
    }
    System.out.println("恭喜你!,回答完毕,回答正确的为"+correct+"道");
}
[码云代码链接](https://gitee.com/xyx-nice/20165203xyx.git)
## 四、运行截图

## 五、遇到的问题及解决方案
Q1:一开始,不知道如何设置随机数。  
A1:经过小伙伴的指导,并上网查找得知,需要用Math包中的Random()语句,例如:  
a=new Random().nextInt(100);则为a为0到100的随机数。  
Q2:不知道如何输入一个数。  
A2:原来的知识有些遗忘,应该先创建一个类,  
Scanner in = new Scanner(System.in);然后,利用  
    int i;
    i=in.nextInt();
    ```  
进行输入,这是一个常用语句,要记住。
六、结对创意照

七、对结对的小伙伴的评价
我的结对小伙伴是20165206韩啸同学,他踏实努力,办事认真。我们在一起讨论时,先确定一个整体的大致框架,然后再深入细节,将每个方法刻画细致,最后,在主类中加以修饰。虽然,我们本次所编代码还有很多不足,并且真分数的运算还没有实现,相信我们下周会更加努力,完善这个项目代码。

 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号