zoukankan      html  css  js  c++  java
  • 20172325《结对编程——四则运算》第一周总结

    结对编程——四则远算(20172325)

    本周总结

    我的结对伙伴是刘辰20172306,第一周的任务是设计整体思路,构建UML类图。在拿到这个项目的时候,真的是像她说的一脸懵^,对于建几个类,每一个类里面放那些方法,定义那些变量等等都完全没有思路。但是很多的查询之后,求同存异,一步一步理清了思路,与目标也越来越接近。在这一周的任务中,我们有争论,意见出现过分歧,但是在良好的沟通交流下,最终还算完整地完成了这一周的任务,为什么这样说呢,因为在设计类图的时候总觉得要把每一步都考虑好,但是如果不实践出来,根本不知道应该要注意哪些点,所以就很纠结。

    需求分析

    题目运算(判题)

    要求:可独立使用
    实现中缀表达式转为后缀表达式并计算
    判断用户答题正误,并输出正确结果

    • 针对第一个需求,我们选择建一个类,这个类里面首先能够对题目等级进行划分,确定用户所需等级;其次能够随机生成操作符合运算数,形成一个普通的算式;

    自动生成题目

    要求:自动生成题目
    可独立使用(能实现自己编写测试类单独生成题目的功能)
    可生成不同等级题目,类似于:
    1级题目:2 + 5 =
    10 - 5 =
    之类的两个数,一个运算符的题目

    • 第二个需求,主要是表达式转换和后缀表达式运算。建立两个类,一个用于中缀转后缀,一个用于后缀表达式的计算以及答案的判断。

    支持真分数

    可独立使用
    实现分数算式的计算

    • 第三个需求,能独立使用的真分数题目和答案,原本只考虑到在答案中体现真分数,只需要考虑求余运算,但是后来在学长给了一些提示之后才发现,还需要在题目中出现真分数,于是又将考虑如何使栈能够识别分数形式的数,问题比较复杂,后期慢慢琢磨,先把它纳入生成题目的类里面。

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

    要求:可独立使用
    实现对自动生成表达式的去重:如下
    若生成:2 + 5 =
    5 + 2 =
    为同一题目

    • 第五个需求为拓展题,加分项,我们也在考虑这个问题,一开始我想到的是运用数组来搞两个集合,一个存放操作符,一个存放运算数,识别题目中操作符和运算数的个数和位置,相同则为重复,但是这个想法要实践起来可能就会遇到很多问题,所以先待定。

    设计思路

    • 1、设计三个类,一个Test文件。三个类分别是生成题目、中缀转后缀、后缀表达式的计算;
    • 2、在生成题目的类里面声明各种算法、真分数的加入;
    • 3、在中缀转后缀的类里面运用栈进行操作,按照老师上课讲的内容,由于两个人一组,不加入括号;
    • 4、在后缀表达式计算的类里面,通过添加参数吧第二个类最后生成的后缀表达式导入,然后进行计算,同时,在这个类里面加上答案的判断,有用户输入一个值,将它和系统生成的值进行比较,然后输出不同的信息。
    • 5、在Test文件里我将会吧三个类串联起来,然后在最后加上是否继续(Y/N ?)的循环语句。

    UML截图

    遇到的问题及解决方法

    • 问题1:项目已开始,我们在继承上纠结了很久,为此还设计了很多类以为将要继承一个大的父类。

    • 问题1解决方案:学长讲解之后意识到,这次的项目和学到那没有关系,是综合能力的考察,也就是说不一定用到刚学完的继承,于是豁然开朗,我们要根据需求设计不同的类,都能够各自独立完成自己的那一部分任务,然后将他们在Test文件里一起引用。

    • 问题2:我是负责UML类图的设计和中缀转后缀,后缀表达式的计算,在一开始,我的设计就存在问题,UML类图是一个类似提纲的存在,我需要的仅仅是将大致的思路构建在UML类图里面,但是我一直都觉得要将整个项目搞出来,具体实践,才能知道在每一个类里面需要用到什么方法,声明什么变量,很纠结,浪费了不少时间。

    • 问题2解决方案:经过结对同学的提醒,以及和她的良好沟通,我们发现我们的设计思路完全一样,只是在实践的过程中有一些小问题,在相互的提醒下就解决了问题,最后完成任务。

    对结对伙伴20172306的评价

    有些急躁,在完成一件任务的时候不会有一个先思考的过程,大局意识比较弱,感觉只要在做这件任务就够了,但是这样的队友能够促使我尽快的着手去做,而不是一味的只知道想而不去付诸实践。

    参照网站

    PSP

    PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
    Planning 计划 60 70
    Estimate 估计这个任务需要多少时间 60 60
    Development 开发 1680
    Analysis 需求分析 (包括学习新技术) 30 45
    Coding Standard 代码规范 (为目前的开发制定合适的规范) 30 20
    Design UML 设计项目UML类图 120 100
    Coding 具体编码 180
    Code Review 代码复审 180
    Test 测试(自我测试,修改代码,提交修改) 120
    Size Measurement 计算工作量(实际时间) 30
    Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划 60
    合计 2550
  • 相关阅读:
    go操作windows进程相关
    HTML5-格式化
    HTML5-属性
    关于sublime建立python工程的说明
    在Windows系统中安装matplotlib,需要注意的问题
    WPF combobox数据绑定和数据获取
    String的用法——其他功能
    String的用法——获取功能
    String的用法——判断功能
    String的用法——构造方法
  • 原文地址:https://www.cnblogs.com/20172325DYK/p/8977971.html
Copyright © 2011-2022 走看看