• 20172304 结对编程--四则运算实验总结


    20172304 结对编程--四则运算

    结对对象

    • 20172301 郭恺
    • 20172328 李馨雨

    需求分析

    以结对小组形式编写代码,实现以下功能:
    1.自动生成题目
    可独立使用(能实现自己编写测试类单独生成题目的功能)
    可生成不同等级题目,类似于:
    1级题目:2 + 5 =
    10 - 5 =
    分析:这个可以用生成随机数的方法来做。

    • 题目运算(判题)
      可独立使用
      实现中缀表达式转为后缀表达式并计算
      分析:这个东西是要将算式转换为计算机理解的形式进行计算。
      判断用户答题正误,并输出正确结果
      分析:这个初步分析是要采用equals加循环的方法
    • 支持真分数
      可独立使用
      实现分数算式的计算
      解析:这个,之前章节的例子中有生成分数的例子,可以直接引用。
    • 题目去重(扩展需求,加分项)
      可独立使用
      实现对自动生成表达式的去重:如下
      若生成:2 + 5 =
      5 + 2 =
      为同一题目。
      解析: 因为是加分项所以本周暂时没有进行考虑,想着如果下周时间充裕就考虑一下。

    代码规范

    我们使用的是IDEA,有自带的缩进格式和代码规范。

    设计思路

    • 生成随机运算式和不同等级: 因为项目需要生成算式。所以我们用随机数方法Random生成了运算数,而将运算符使用char方法储存在了数组中,在定义一个随机数,随机抽取运算符,并且使用了循环,通过确定循环次数来确定题目等级。
      总共分为四个等级
      第一个等级:加减
      第二个等级:乘除
      第三个等级:加减乘除
      第四个等级:含有分数的加减乘除。
    • 题目运算:总共使用了两个栈,一个用来储存符号,一个用来储存数字。通过出栈,进栈的方式来进行将运算式由中缀表达式转为后缀表达式。
    • 支持真分数
    • 使用了第五章的RationalNumber类,并使用随机数来生成分子分母,并通过取余来判断是否生成的是真分数。
    • 生成括号:我尝试了操作,使用的是循环加等值判断,利用charAt方法将字符串中的每一个字符的char值与加减号的char值进行比较,然后将加减号的char值储存在数组中。再通过随机数插入括号,但是在实际运用中发现这种方法在判断两位数的时候会很很麻烦。所以后来放弃了这种方法。

    UML图

    问题统计

    • 问题1:我们在生成的题目前加了题号,但是再生成是发现题号都是9。

    • 问题1解决方案:后来我们做了一个循环。如下图。

    • 问题2:双等号错误,在生成算式的时候带有两个等号。

    • 问题二解决方案:因为双等号一开始放在了循环里,所以会有错误,所以后来,我们将等号加在了结果里。

    小组成员评价

    20172301 郭恺
    这是我们小组的核心和智囊。
    20172328 李馨雨
    这是我们小组的组织者。

    相关过程截图



    PSP时间统计

    PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
    Planning 计划 60 65
    Estimate 估计这个任务需要多少时间 3 2
    Development 开发 2000 3000
    Analysis 需求分析 (包括学习新技术) 350 300
    Coding Standard 代码规范 (为目前的开发制定合适的规范) 60 10
    Design UML 设计项目UML类图 60 60
    Coding 具体编码 1500 2000
    Code Review 代码复审 30 20
    Test 测试(自我测试,修改代码,提交修改) 300 300
    Size Measurement 计算工作量(实际时间 2 2
    Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划 30 10
    合计 4395 5229

    其他

    这周是紧张的一周,各个小组都很紧张认真。我们小组也一样,不过在这种团队的合作下,我更加体会到了互帮互助的优越性以及不同思想碰撞时所产生的智慧的火花。虽然这周的目标只是将设计思路设计出来,但是我们也编写了不少代码。还有一些难点尚未攻克,不过我相信,只要我们通力合作,没有什么是不能被克服的。

  • 相关阅读:
    Functional Programming Contest
    CodeChef--SEPT14小结
    Weekly 10 小结
    CSS中的 REM PX EM
    phoenegap3.5 采坑
    PPT插件 用js制作PPT
    js 代码命名规范系列
    文档列表
    mockjax MOCK.js的拦截ajax请求
    css Tab选项卡
  • 原文地址:https://www.cnblogs.com/15248252144dzx/p/8977588.html
Copyright © 2020-2023  润新知