zoukankan      html  css  js  c++  java
  • 结对编程四则运算-第二阶段报告

    结对编程四则运算第二阶段总结(在第一阶段基础上扩充)

    课程:程序设计与数据结构

    班级: 1623

    姓名: 王译潇

    学号:20162314

    担任角色

    驾驶员:林臻

    副驾驶:王译潇

    搭档-20162310林臻的博客

    码云上公共项目的链接

    一、需求分析

    • 我们这门课是讲面向对象的程序设计,以对象为主,以使用者即以人为本是我们数据结构和程序设计的出发点
    • 需要一个给测试对象自主选择的对象:难度level、确定concontinue或output等。
    • 需要一个针对每个level设计出的计算method,一个循环器
    • 需要一个统计accuracy的循环器
    • 需要一个针对除法及真分数计算的一个class
    • 我们的设计思路不是固定做多少道题,而是让对象随时选择是否继续做题还是更换难度还是查看已有的accuracy
    • 他可以随时选择停止做题然后给出accuracy,被给予了较大的freedom

    二、设计mentality

    • 使用if (else-if) 语句 去实行自主选择level1-level6的难度
    • 使用( while(**.equalsIgnoreCase("y")) ) 来给使用者一个自主选择题目难度及数量的method
    • 借助循环器记录并统计计算用户的正确率

    遇到的问题及关键代码解释(与搭档20162310林臻一起遇到并解决的,故这点我俩博客是相同的)

    第一个遇到的问题是:

    因为设计了两个( while(**.equalsIgnoreCase("y")))来达到内层外层的能循环的目的。但是实际操作的时候出现了错误程序竟然没等我输入是否要再选一个难度时就已经结束了程序的运行

    解决方案: 我发现两层的循坏在**位置上不能用同一个字符串,得换一个,如此达成目的。

    第二个遇到的问题是:

    在设计实现准确率的过程之中,我在每次的运算中都进行了正确的题和错误的记录,所以我怕在程序的结尾打了一行[tf = t / (t + f);]但是程序并没有朝着我所预期的方向运行,不管用户端的操作者答对了多少题目,最后的准确率依然为0.0。

    解决方案:由于我之前定义[t和f]:int t = 0;我就意识到了可能在各个难度循环中得到的[t和f]值并没能出来,所以最后那一段代码只能得到我定义的初始值,于是我在着一行代码前打了t = t;;f = f;如此即可以正常运行了。

    第三个遇到的问题是:

    判题问题:判题方面的问题是上周遗留下来的问题,上周一直纠结"="和"equals"这两个方法,但是实在无法实现想要的结果,本周在百度中寻找答案,发现了一个错误,就是equals方法虽然是自带的,但每次使用一般都会重写这个类,以达到想要实现的目标。同时还记起来了曾经学习到的compareTo方法,于是重写了一个适用程序的compareTo方法。

    conceptual design:

    impression drawing:

    新增的独有的时间限制答题模式(Java中自带的timer方法)

    目前实现了倒计时结束后的提醒,并没有完全实现自动判别该题按错误类型处理的能力,尚有待解决。

    conceptual design:

    impression drawing:

    实现多语言

    conceptual design:

    impression drawing:

    As same as the up

    Fixing the BUG (这一部分inspiration来源于我)
    BUG-1

    由于没有考虑到如果用户输入了Level1-6范围之外的值怎么应对,如果没有采取措施的话,这个程序只能重新运行,所以做了一些处理

    conceptual design:

    impression drawing:

    BUG-2

    没有考虑到如果用户一题都没有回答怎么办,也就是说当程序最后计算正确率的时候变成了0/0,分母出现了0就会出现了问题。于是对程序进行了修改和完善。

    conceptual design:

    impression drawing:

    三、JUnit测试

    • 测试结果

    结对评价

    在这周的实验和结对编程过程中,20162310林臻表现很勤奋,积极思考,有创新意识,这一点很好,让我感到很欣慰。
    就是思维模式有些僵硬,如果在思考上再更进一步那就更好了。

    PSP2.2

    PSP2.2

    PSP2.2 Personal Software Process Stages 预估耗时(小时) 实际耗时(小时)
    Planning 计划 1 1
    · Estimate · 估计这个任务需要多少时间 5 10
    · Analysis · 需求分析 (包括学习新技术) 2 2
    · Design Spec · 生成设计文档 1 1
    · Design Review · 设计复审 (和同事审核设计文档) 1 1
    · Coding Standard · 代码规范 (为目前的开发制定合适的规范) 1 1
    · Design · 具体设计 2 3
    · Coding · 具体编码 5 6
    · Code Review · 代码复审 1 1
    · Test · 测试(自我测试,修改代码,提交修改) 1 1
    Reporting 报告 1 1
    · Test Report · 测试报告 2 2.5
    · Size Measurement · 计算工作量 0.5 0.5
    · Postmortem & Process · 事后总结, 并提出过程改进计划 3 2
  • 相关阅读:
    Linux 02
    Linux 01
    React 函数式组件的 Ref 和子组件访问(useImperativeHandle)
    排序算法之 Java插入排序算法
    排序算法之 Java选择排序算法
    排序算法之 Java冒泡算法
    类加载的过程---验证和准备
    类加载的过程---加载
    mysql explain 查询处理的结果详解
    springboot整合分布式缓存hazelCast
  • 原文地址:https://www.cnblogs.com/CS162314/p/6886262.html
Copyright © 2011-2022 走看看