zoukankan      html  css  js  c++  java
  • 结对项目(与陈超国)

    1.Github项目地址:https://github.com/inimble/calculate.git

    2.估算耗费的时间(如右表)

    PSP2.1

    Personal Software Process Stages

    预估耗时(分钟)

    实际耗时(分钟)

    Planning

    计划

     10

     5

    · Estimate

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

     600

    Development

    开发

     20

     20

    · Analysis

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

     60

     70

    · Design Spec

    · 生成设计文档

     10

     15

    · Design Review

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

     10

     15

    · Coding Standard

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

     5

     5

    · Design

    · 具体设计

     10

     10

    · Coding

    · 具体编码

     500

     550

    · Code Review

    · 代码复审

     30

    20

    · Test

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

     100

     120

    Reporting

    报告

     30

     25

    · Test Report

    · 测试报告

     10

     20

    · Size Measurement

    · 计算工作量

     10

     10

    · Postmortem & Process Improvement Plan

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

     15

     20

    合计

     840

     935

    3.解题思路

       运用随机数来生成一个四则运算的算式,然后将算式改为后缀表达式,并利用栈完成四则运算的计算,考虑到结果需要用真分数的形式表示,所以专门定义了一个结构体用于存储结果。最后再对结果进行约分。

    4.设计实现过程

       首先设计一个函数进行随机函数的生成,这里面用到了函数rand()进行随机数的生成,然后先将生成的结果分为数字和运算符分别存入了两个数组中,接着进行了对生成的算式进行分析是否符合题目的要求,如计算结果是否为负数,如果是则改变其中的运算符。用另一个函数进行计算,然后把结果放到存储答案的结构体中。最后再设计一个用于约分结果的函数。

    5.代码说明

        

       用于存放结果的结构体,分别是带分数的整数部分以及分数部分的分子和分母。

       

       此函数用于约分最终结果。

      

       

       这个循环利用随机数生成随机的算式并且存放到两个数组中,生成符号的部分也是用生成随机数字,并使用switch()语句来转化为字符串。

      

       

       该循环判断了生成的式子是否正确,如减号前面的数如果小于后面的数,则减号前后两个数对调。这部分更主要用于把随机生成的四则运算算式用fprintf()打开并写入到对应的文件中。

      

       

       这部分用于计算,方法比较低级,因为考虑到结果必须存放在result结构体中,所以计算的时候只能采用逐个判断的方法。遇到不同符号需要不同的处理方式,并且同一符号中也有一些细节的处理,如除号除完后若能与上面的数整除则删除分数部分增加整数部分。

    6.测试运行

      (1)正确运行的结果:

        计算部分:

         

        对答案部分:

         

      (2)输入指令错误

      

    7.实际耗费的时间(如上表)

    8.项目小结

       本次结对项目属于双方的第一次结对,感觉有点陌生,同时又有点新奇。我们主要采用一人编译同时讲解,然后换另一人编译和讲解的方式来完成本次的结对项目。在进行结对项目的过程中,双方都有所学习,有所收获,最主要的是体现在一些常用函数方面的学习,如and()等。当然也会出现两个人同时不会的情况,这时候就借用到了百度等工具进行学习和了解。本次的结对项目完成过程比较顺利,一些不会的点在询问对方或网上学习后都能有所突破。但是还是存在一些不足之处,比如程序的完整性仍然不够,可能还存在一些未被我们发现的bug,这主要来源于我们对于做项目的经验不足,对项目的分析能力还有待提升。总体来说,结对项目确实会比个人项目更加轻松,如果双方使用的语言和编译器相同那会更加方便。同时结对项目也能让我们学习到一个人工作时学习不到的知识。

  • 相关阅读:
    文件处理
    集合 字符编码
    3-11作业
    win 10 在vs2017下对mpi的安装以及认识
    java中二维数组的排序
    java中Arrays的用法
    java中随机二维数组中寻找最大值并输出坐标
    用java打印图形
    面向对象object与constructor
    for each in for in 与for of
  • 原文地址:https://www.cnblogs.com/inimble/p/12682572.html
Copyright © 2011-2022 走看看