20172316 结对编程-四则运算 第二周 阶段总结 20172316 结对编程-四则运算 第二周 阶段总结


1.项目内容

以结对小组形式编写代码,实现以下功能:

1.自动生成题目

2.题目运算(判题)

3.支持真分数

4.生成题目添加括号

5.题目去重(扩展需求,加分项)

6.文件处理(扩展需求,自行学习,加分项)


相关过程截图

  • 最开始的代码名称十分不规范,有的使用拼音,有的使用英文,有的不知所云,其他组员第一次看见名称时不容易理解和衔接起来;
    20172316 结对编程-四则运算 第二周 阶段总结
20172316 结对编程-四则运算 第二周 阶段总结

  • 出现了两个程序之间符号表示的差异,对于式子的值的计算有很大影响;
    20172316 结对编程-四则运算 第二周 阶段总结
20172316 结对编程-四则运算 第二周 阶段总结20172316 结对编程-四则运算 第二周 阶段总结
20172316 结对编程-四则运算 第二周 阶段总结


结对评价

唐才铭敲代码时间太长、太晚,影响正常休息和第二天的学习生活,身体是革命本钱。
王文彬博客中“关键代码解释”和“生成题目的相关代码”重复,篇幅上占用较大,建议合并。


关键代码解释

下面是生成n级计算式的方案之一,解释写在代码对应位置的注释中:

import java.util.Scanner;

public class Compute2 {
    protected int a;
    String s1, str = "";
    int level;

    public Compute2(){
        String s1 = "", str = "";
        int level = 1;
    }

    public String Computing(int x){
        level = x;
        int a1 = (int) (Math.random()*100);//形成一级式,数值是0~100之间
        int a2 = (int) (Math.random()*100);//的闭开区间的整数
        int t1 = (int) (Math.random()*4);  //随机变量t1决定两数之间的符号
        switch (t1){                       //通过switch语句实现int值到字符的转换
            case 0:{
                s1 = " + ";
                break;
            }
            case 1:{
                s1 = " - ";
                break;
            }
            case 2:{
                s1 = " * ";
                break;
            }
            case 3:{
                s1 = " / ";
            }
        }
        for (int i = 0; i < level - 1; i++){//循环,将一级式添加为多级
            int a = (int) (Math.random()*100);
            int t = (int) (Math.random()*4);
            String s = "";
            switch (t){
                case 0:{
                    s = " + ";
                    break;
                }
                case 1:{
                    s = " - ";
                    break;
                }
                case 2:{
                    s = " * ";
                    break;
                }
                case 3:{
                    s = " / ";
                }
            }
            str += a + s;
        }
        str += a1 + s1 + a2 + " = ";//通过这个操作在原本的一级式前
        return str;                 //加上(n-1)个“‘整数’+‘运算符’”
    }

    public String getStr(){         //测试时用来甄别错误的方法,可略去
        return str;
    }



    public void formulaXX(int x){   //实现人机交互输出对应等级要求的式子,
        String string = " ";        //参数x是输出式子的个数 
        int y;
        for (int i = 0; i < x; i++){
            Scanner scan = new Scanner(System.in);
            y = scan.nextInt();
            Compute2 com = new Compute2();
            string = "题" + (i + 1) + ": " + com.Computing(y) + "	
";
            System.out.println(string);
        }
    }

    public void setLevel(int n){    //level是式子的级数,为了适应计算和判断而创建
        level = n;
    }
    
    public int getLevel(){
        return level;
    }
    
}



遇到的困难及解决方法

如果困难的定义是花了许多许多功夫去克服的问题,那么在这个阶段还没有遇到大的困难。


写出项目中自己负责的部分

1.自动生成题目


个人贡献度划分

20172316 结对编程-四则运算 第二周 阶段总结
20172316 结对编程-四则运算 第二周 阶段总结


码云链接


小组结对编程照片

20172316 结对编程-四则运算 第二周 阶段总结
20172316 结对编程-四则运算 第二周 阶段总结