• Java结对编程四则运算一周小结


    Java结对编程四则运算一周小结

    需求分析

    • 对于四则运算来说最主要的就是要计算出产生的式子(字符串的形式)。

    设计思路

    • 总体可将这个项目分解为几个部分:产生式子,计算式子,判断对错并记录;
    • 具体的思路:
      1. 要产生随机数;
      2. 在产生随机数的时候就要产生随机的运算符;
      3. 在产生数字与运算符时最后一个数字之后就不能再产生运算符(运算符的数量始终比数字少1);
      4. 在一个式子中要多次产生随机数与运算符因此要用到循环;
      5. 在循环结束时就产生了一个式子就要求进行计算与输入;
      6. 在输入完之后就要判断对错,统计正确率;
      7. 又因为要产生多个式子就有需要一个循环,加上产生式子的循环,就需要一个双循环。

    实现过程中的关键代码解释

    • 1.产生式子时的循环

    for (int i = 0; i < num1; i++) {
    for (int j = 0; j < num2; j++) {
    //产生20及其以内的数字
    Random a = new Random();
    int p = a.nextInt(20);
    System.out.print(p);
    Problem += p + "";
    //产生运算符
    String peo[] = {"+", "-", "*", "/"};
    //最后一个数字之后没有运算符。
    int p2 = a.nextInt(4);
    if (j < num2 - 1) {
    System.out.print(peo[p2]);
    Problem += peo[p2];
    }
    }

    这段代码花费了大量的时间主要是第一点在双循环是情况比较复杂在计数要用哪个循环的变量,还有语句放置的问题都存在较大的问题.其中的if语句是用来判断是否输出的的式子时最后一个如果是就不再产生运算符.还有一个变量String类型的Problem这个变量是很重要的变量它将产生的数字与运算符一一记录下来最后生成一个式子,用于计算.

    • 2.实现的类

    import java.util.Scanner;
    public class Calc extends Calculate
    {
    public static void main(String[] args) {
    //确定输出的式子的个数。
    Scanner scan = new Scanner(System.in);
    System.out.println("你想输出几个式子:");
    int num1 = scan.nextInt();
    //确定几个数字参加运算
    System.out.println("你想要几个数字参加运算;");
    int num2 = scan.nextInt();
    //输出式子
    Problem problem =new Problem();
    problem.Problem(num1,num2);
    }
    }

    这个类是最终运行时运行的类里面有主函数主要用于确定几个数字参加运算与式子的个数。

    运行过程截图

    代码托管地址

    遇到的问题及其解决方法。

    • 问题1 如何记录产生的式子
      解决:我去网上找了很多类似的代码之后没有发现好的方法,最后我在计算加法时得到启示就用来类似求和时的办法来求出最后的式子。
    • 问题2 如何解决无法产生括号的问题,就是当除不尽时的计算的误差大?
      这个问题还没有找到很好的方法来解决。

    对结对的小伙伴做出评价

    • 结对伙伴: 20162312 张家铖
      结对伙伴的思维比较活跃,在写代码遇到困难时有助于我做出突破;
      但是也是比较粗心,而且对于时间的把握还有待改善。最主要的是在写代码的注释的时候有些时候有些难懂;

    PSP

    PSP2.1 Personal Software Process Stages 预估耗时(小时) 实际耗时(小时)
    Planning 计划 1 1
    · Estimate · 估计这个任务需要多少时间 20 20
    · Analysis · 需求分析 (包括学习新技术) 1 3
    · Design Spec · 生成设计文档 0.5 0.5
    · Design Review · 设计复审 (和同事审核设计文档) 1 0.5
    · Coding Standard · 代码规范 (为目前的开发制定合适的规范) 1 0.5
    · Design · 具体设计 2 3
    · Coding · 具体编码 2 4
    · Code Review · 代码复审 2 1
    · Test · 测试(自我测试,修改代码,提交修改) 2 1
    Reporting 报告 1 1.5
    · Test Report · 测试报告 2 2.5
    · Size Measurement · 计算工作量 0.5 0.5
    · Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 1 1
  • 相关阅读:
    命令行打开无线网络设置
    WebView2 的使用记录
    QT-Mac:在Mac下实现QT程序的打包及公证
    QT:CEF实现js函数与C++函数的异步调用
    QT-Mac:QT Creator 中QT Versions显示无效的QT版本的解决办法
    QT-Mac: Undefined symbols for architecture x86_64
    全局键盘钩子失效与WebRTC的关系分析
    第十二届蓝桥杯决赛 大学 B 组 C/C++ 做题记录
    Luogu P2671 求和 | 数学奇偶性&前缀和
    2021铁三决赛 PWN cardstore | 格式化字符串 & ret2libc
  • 原文地址:https://www.cnblogs.com/CHUNWANG/p/6852676.html
Copyright © 2020-2023  润新知