• 结对编程(java实现)


    项目成员:林剑峰3117004621   陆君健3117004624

    一、Github项目地址

          https://github.com/luk66666/Formula-generator

    二、PSP表格

    PSP2.1

    Personal Software Process Stages

    预估耗时(分钟)

    实际耗时(分钟)

    Planning

    计划

     20

     20

    · Estimate

    · 估计这个任务需要多少时间

     20

     20

    Development

    开发

     1090

     1260

    · Analysis

    · 需求分析 (包括学习新技术)

     60

     60

    · Design Spec

    · 生成设计文档

    50

    40 

    · Design Review

    · 设计复审 (和同事审核设计文档)

    30

     30

    · Coding Standard

    · 代码规范 (为目前的开发制定合适的规范)

    40

     30

    · Design

    · 具体设计

    60 

     60

    · Coding

    · 具体编码

    720

     900

    · Code Review

    · 代码复审

    60

     60

    · Test

    · 测试(自我测试,修改代码,提交修改)

     100

     80

    Reporting

    报告

     130

     150

    · Test Report

    · 测试报告

     60

     60

    · Size Measurement

    · 计算工作量

     30

     40

    · Postmortem & Process Improvement Plan

    · 事后总结, 并提出过程改进计划

     40

     50

    合计

     1240

     1430


    三、设计实现过程

    代码总共分为5大类:1、Mark类(分数) 2、Generate类(生成表达式)3、Calculator类(计算)
    4、IO类 5、MyApp类(主类)
    (1)、Mark类定义了针对分数运算的加减乘除方法,同时还有分数输出形式(Markprint())、分数计算分析
    (analyse)以及分数计算方法的调用函数(Markcalculate)。
    计算时先经过Analyse方法,然后将在Analyse方法里面调用Markcalculate方法,同时也在Markcalculate方法
    里面调用分数的加减乘除方法。
    (2)、Generate类 定义了一个setNum方法,用来存放用户输入的计算范围的最大值,
    然后还有一个generation方法用来生成表达式
    (3)、Calculator类 定义了一个calculate的方法,在calculate方法里面调用了removeSpace方法,将字符串
    中的空格去掉,同时还调用了isStandard和compare方法,一个用来判断表达式是否标准,一个用来比较当前运算符与栈顶元素运算符的优先级。
    同时还写了一个getResult方法。
    (4)IO类 创建了setOutBufferedWriter、CreateFile、WriteToFile还有CloseOutBufferedWriter的方法
    (5)MyApp类 在main方法中调用其他四个类的方法,来实现表达式的生成以及文件的建立。

    四、代码说明

     

    将输入的字符串进行分析,用contains的方法判断字符串中是加减乘除哪种运算,然后用split方法将字符串中
    的运算符号除掉,再接着调用Markcalculate方法(后面0、1、2、3就是对应加减乘除四种运算),在Markcalculate
    里面调用Mark类中的加减乘除方法。

     

     用来生成表达式,在用户所输入的数字范围里面生成所需要的表达式,同时用for循环确保表达式的长度。

     用栈来存放数字和符号

     比较当前运算符和栈顶元素运算符之间的优先级

    五、测试运行

    1)用命令行运行的主界面,生成1道题,数值范围1以内,

    生成10道题,数值范围10以内,

     生成10000道题,数值范围100以内,

     

    六、项目小结

    这次结对项目,让我们对合作开发有了更深的认识。两个人的想法总是比一个人的想法更全面,结伴项目让我们有了更多的沟通和思想上的碰撞,在编程中,相互讨论,可以更快更有效地解决问题,互相请教对方,得到能力上的互补,不像个人项目般枯燥乏味。特别是当一方出现问题时,另一个可以协助解决,大大地提高了效率。同时我们互相监督,保持热情,不容易偷懒。

  • 相关阅读:
    【全网最优方法】JAVA初学:错误: 找不到或无法加载主类HelloWorld
    Anaconda官网下载太慢/出错,以及Anaconda下载包又慢又出错的总体方法,应该如何快速下载,使用上海科技大学的开源镜像站即可
    认识git的简单命令
    CSS、Bulma介绍
    IDEA问题java: -source 1.6 中不支持diamond、 lambda 表达式
    认识HTML语言(CodePen)
    【Java笔试】对数据库中的分解是否为无损连接和是否保持函数依赖的判定-由牛客网试题引申-保姆式教学
    【大唐杯经验2019】大唐杯全国移动通信大赛 国赛二等奖经验分享
    【Java笔试】OYO校招Java工程师|牛客平台,算法:字符串翻转。附选择题解析
    【Java面试宝典】正则表达式
  • 原文地址:https://www.cnblogs.com/Lin-J/p/11689657.html
Copyright © 2020-2023  润新知