网络四则运算结对编程

一、结对信息

项目组合 郭炜埕 201521123065 郑晓丽 201521123066

项目地址 (https://gitee.com/vicheng/four_operations/tree/master)

二、结对编程

1、需求分析

原来的代码只实现简单的两位数之间的加减乘除,而我们为需要改进其功能,实现了三位数的计算,并加了括号

改进后界面:

改进前类图:

改进后类图:

2、程序设计

3、代码展示

关键代码展示:

···

double g(double a, double b, String m) {

    double v = 0;
    switch (m) {
    case "+":
        v = a + b;
        break;
    case "-":
        v = a - b;
        break;
    case "×":
        v = a * b;
        break;
    case "÷":
        v = a / b;
        break;
    }
    return v;

}

private  List<Object> trans(String s) {
    Stack<Character> op = new Stack<Character>();

    ArrayList<Object> list = new ArrayList<Object>();
    Pattern P = Pattern.compile("[0-9]+(\\.[0-9]+)?"); // 正则表达式来处理带小数点的数字
    int i = 0;

    while (i < s.length()) {
        char c = s.charAt(i);
        if (c >= ‘0‘ && c <= ‘9‘) {
            String s1 = s.substring(i);
            Matcher m = P.matcher(s1);
            if (m.find()) { // 取匹配到的第一个数字
                s1 = m.group();

                list.add(s1);
            }
            i = i + s1.length();
            continue;
        } else if (c == ‘(‘) {
            op.push(c);
        } else if (c == ‘)‘) {
            char p = op.pop();
            while (p != ‘(‘) {
                list.add(p);
                p = op.pop();
            }
        } else if (c == ‘+‘ || c == ‘-‘) {
            while (!op.isEmpty()
                    && (op.peek() == ‘+‘ || op.peek() == ‘-‘ || op.peek() == ‘ב || op.peek() == ‘÷‘)) {

                list.add(op.pop());
            }
            op.push(c);
        } else if (c == ‘ב || c == ‘÷‘) {
            while (!op.isEmpty() && (op.peek() == ‘ב || op.peek() == ‘÷‘)) {
                list.add(op.pop());
            }
            op.push(c);
        }
        i++;
    }

    while (!op.isEmpty()) {
        list.add(op.pop());
    }
    return list;
}

}

```

4、程序运行

输入习题数,有选择语言的功能

简体中文

d

繁体中文

英文

开始

进入运算界面,开始计时

输入答案

5、测试

(1)、对原先的代码进行的代码覆盖率的测试

(2)、对改进后的代码进行单元测试(主要测试算法)

测试代码:

测试结果:

(3)、对改进后的代码进行覆盖率测试

解读:类似与于Arithmetic里面switch语句部分执行,选择性语句

或者检测异常,如果没有异常,里面的语句便不会执行

诸如此类的会降低覆盖率

6、PSP表格

PSP2.1 个人开发流程 预估耗费时间(分钟)
Planning 计划 18
· Estimate 明确需求和其他相关因素,估计每个阶段的时间成本 10
· Analysis 需求分析 (包括学习新技术) 6
· Design Review 设计复审 4
· Coding Standard 代码规范 5
· Design 具体设计 20
· Coding 具体编码 36
· Code Review 代码复审 7
· Test 测试(自我测试,修改代码,提交修改) 22
· 并提出过程改进计划 10

7、码云提交记录

8、小结感受

我们的功能还待完善,在输入答案栏需要输入一位小数,如果答案是无限不循环小数,还没法实现保留几位小数的功能。两个人结对编程相当于合作,

要互相了解,并完成自己的任务。在团队中认识到自己的不足,也能看到队友身上的优点。继续努力学习

附上图片

原文地址:https://www.cnblogs.com/zxl3066/p/8643902.html

时间: 2024-07-31 09:53:55

网络四则运算结对编程的相关文章

20165326 四则运算-结对编程 总结

四则运算-结对编程 总结 一.需求分析 能随机生成n道四则运算题目,n由使用者输入 支持整数和分数 支持多运算符 能够判断正误,错误时能提醒并输出正确答案 能计算出正确率 能多次生成题目,直到使用者选择退出 文件: 处理生成题目并输出到文件 完成题目后从文件读入并判题 二.设计思路 基于之前的工作,这一阶段的主要重心放在了生成txt文件,对文件进行输入输出等操作,此处设计了两个主类Questions和Results分别实现这两个操作.输出题目放在Exercisies.txt中,结果放在Exerc

软件工程网络15结对编程作业

Deadline: 2018-3-25 10:00PM,以提交至班级博客时间为准. 请在两周时间内完成结对编程练习,注意时间的合理安排. 参考来自http://www.cnblogs.com/xinz/p/7417960.html 题目要求: 1.改进现有代码 分析网络14部分现有程序代码(请选择其中一个) 个人博客地址1:http://www.cnblogs.com/weihui-01 ,源代码:https://coding.net/u/weh/p/software-testing/git 个

软工网络15结对编程练习(201521123007谭燕)

链接 学号:201521123006:博客链接: http://www.cnblogs.com/KimHeechul/p/8644402.html 学号:201521123007:博客链接: http://www.cnblogs.com/ty1213/p/8644960.html 码云地址: https://gitee.com/KimHeechul/pair_programming/commits/master 题目要求: 1. 改进现有代码 1.1 分析网络14部分现有程序代码 个人博客地址4

软工网络15结对编程练习 201521123056 吴剑通

0.结对编程成员: 吴剑通博客地址:https://www.cnblogs.com/wjt960310/ 杨均宇博客地址:http://www.cnblogs.com/GOB8023/ 码云地址:https://gitee.com/jmu201521123056/four_operations 源代码:https://coding.net/u/Belong033/p/java-third/git 原题目要求 http://www.cnblogs.com/happyzm/p/6472120.htm

软件工程网络15结对编程作业(201521123115)

结对编程 改进现有代码2 团队成员: 梁林 201521123119 码云地址:https://gitee.com/ll119 龚厦彬 201521123115 码云地址:https://gitee.com/handsomecat/events clone项目,在开发环境中运行该应用程序,修改完毕最后上传至码云,并在博客中给出链接 检查大部分主要类之间的关系,画出类图 核心代码展示 private static int GCD(int m, int n) {//最大公约数 // TODO Aut

软件工程网络15结对编程作业(201521123062)

0.结对编程成员: 吴剑通博客地址:https://www.cnblogs.com/wjt960310/ 杨钧宇博客地址:http://www.cnblogs.com/GOB8023/ 码云地址:https://gitee.com/jmu201521123056/four_operations 源代码:https://coding.net/u/Belong033/p/java-third/git 原题目要求 http://www.cnblogs.com/happyzm/p/6472120.htm

软件工程网络15结对编程作业(201521123045)

一.结对编程成员: 郑子熙(201521123045): 陈文俊(201521123047): 二.对原有程序分析: 三.改进现有代码: 四.代码展示: 五.PSP: 六.实验小节: 原文地址:https://www.cnblogs.com/zhengizixi/p/8645259.html

软工网络16结对编程

1.码云项目地址 陈瑀博客地址 侯湘宁博客地址 码云地址 2.PSP表格 PSP2.1 个人开发流程 预估耗费时间(分钟) 实际耗费时间 Planning 计划 30 35 · Estimate 明确需求和其他相关因素,估计每个阶段的时间成本 40 50 Development 开发 350 430 · Analysis 需求分析 (包括学习新技术) 150 180 · Design Spec 生成设计文档 30 30 · Design Review 设计复审 40 50 · Coding St

四则运算 结对编程

基本功能:1.一个带有用户界面的四则运算程序2.用户可以自己输入数据3.支持负数运算4.中间结果同样符合用户参数要求 界面效果:1.主界面 2.参数设置界面 原理分析:程序的大致流程为:用户进入主界面,点集“生成题目”,跳转到参数设置界面,用户设置完成后点击确定,主窗口从子窗口对象中提取各个参数生成算式,用户点击“打印题目”后将算式在listbox控件中输出. 为了方便起见,将生成算式的功能独自封装为一个类,在读取参数后直接调用这个类所实例化的对象的不同方法来生成算式. 生成算式的类主要包括三个