• 结对项目


    项目成员:3117004631 魏建雄

                    3117004623 卢悦盛

    一 、Github项目地址:https://github.com/Yueson-Lu/Myapp1.0

    二、PSP表格

    PSP2.1Personal Software Process Stages预估耗时(分钟)实际耗时(分钟)
    Planning 计划 30 30
    · Estimate · 估计这个任务需要多少时间 30  30
    Development 开发  1150  1420
    · Analysis · 需求分析   60  60
    · Design Spec · 生成设计文档  60  70
    · Design Review · 设计复审   60  50
    · Coding Standard · 代码规范  50  60
    · Design · 具体设计  90  100
    · Coding · 具体编码(包含第一次错误的代码设计)  720  960
    · Code Review · 代码复审  50  60
    · Test · 测试(自我测试,修改代码,提交修改)  60  60
    Reporting 报告  120  160
    · Test Report · 测试报告  60  90
    · Size Measurement · 计算工作量  30  30
    · Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划  30  40
    合计    1300  1710

    、设计实现过程

            浏览结对项目之后,我们对问题进行需求分析,主要解决题目生成、结果计算、题目判重以及文件处理4个问题。因为最多出现三个运算符,也就是实现四元运算,我们枚举出二元运算、三元运算以及四元运算,然后随机生成运算式。因为乘法、除法的优先级高于加减法,我们打算运用枚举的方式将所有的运算可能枚举出来,就不用考虑优先级运算,程序只需要匹配枚举的运算情况,然后调用方法,进行运算就能得出结果。因为不能直接对分数进行运算,我们打算程序随机生成double型参数,然后进行四则运算,然后将double转化成分数输出,但由于分数转小数会有精度的缺失(例如1/3只能转化为0.33),而且0.33转化不了1/3。题目判重我们越想越复杂,我们打算先暴力解决,运用结果判重,如果结果相同就舍去,看项目后续完成情况,再进行修改完善。我们已经解决了大部分问题,可是我们不能分数形式的题目与结果的输出,以项目要求不符,所以我们打算重新编程,一开始就生成分数,用分数去进行四则运算。

           我们打算随机生成参数与运算符生成字符串完成题目的生成。难点在于操作符的运算,我们发现了中缀转后缀的方法解析算术表达式,由于后缀表达式的运算符在两个操作数的后面,那么计算机在解析后缀表达式的时候,只需要从左向右扫描,也就是只需要向前扫描,而不用回头扫描,遇到运算符就将运算符放在前面两个操作符的中间,一直运算到最右边的运算符,那么就得出运算结果了。因为运算数可能包含的类型有整数和分数,那么就有三种运算的形式:整数和整数运算,分数和整数运算,分数和分数运算。为了方便运算,将整数也转化为分数,整数作为分子,分母设为1,这样就能将三类运算化为一类。

    、 代码说明

    1.从控制台传入生成题目和生成范围的参数

     

    2.文件生成的方式,固定生成位置为D盘

    题目和答案的名称由myapp类调用传入参数

     3.符号的生成使用了随机生成,1-4个数字平均分到加减乘除四个符号

    4.处理统一分母的时候使用了辗转相除法

    5.使用栈的方法处理符号的判断

     

    、测试运行

    1.生成100道题目:

     2.生成10000题:

    、项目小结

    1.第一次尝试两个人一起进行程序开发,一起进行需求分析、算法设计,发现会比一个人独自进行更为快捷有效。在遇到困难时,一起想办法解决,互相勉励,共同进步。

    2.本次结对项目,我们在第一次需求分析、设计复审时,并没有那么细致,没有考虑好实现基本运算后操作数的转换,导致编程时才发现小数转分数存在问题,增加了工作量,减低了效率,浪费了很多时间。在今后的编程前,应该更加细致地做好需求分析以及算法复审,一切准备好之后,再进行具体编程,这样能够增加编程效率,节省时间。

    3.由于前期浪费了挺多时间,导致我们并没有完成答案文件的校对,还有一些地方还能进行完善,例如进行图形界面的设计。

  • 相关阅读:
    可变参数宏...和__VA_ARGS__
    gitolite
    CentOS 6.4 搭建git 服务器
    github简单使用教程
    【Github教程】史上最全github使用方法:github入门到精通
    redis安装与参数说明
    如何解决redis高并发客户端频繁time out?
    Redis配置文件参数说明
    Redis系列-存储篇hash主要操作函数小结
    Redis常用命令解析——INFO, MONITOR, SLOWLOG
  • 原文地址:https://www.cnblogs.com/twistww/p/11681691.html
Copyright © 2020-2023  润新知