软件工程基础-结对项目

选题:项目2 - 四则运算题目生成

参见 My Github:https://github.com/1773262526/Software-Foundation/tree/master/doublework

一、PSP表格

Personal Software Process Stages         预估耗时(分钟)       实际耗时(分钟)      
计划 30  30 
估计这个任务需要多少时间
开发  120  60
需求分析(包括学习新技术)  150  180
生成设计文档  120  120
设计复审(和同事审核设计文档)  60  60
代码规范  60  30
具体设计  90 90 
具体编码  1440  1200
代码复审  120  180
测试  300  600
报告  120  180
测试报告  90  120
计算工作量  30  30
事后总结,并提出过程改进计划  45 30 
合计  2775 2910 

二、改进历程

  • 最初选定这个题目,首先是因为对于求解算式,可以使用python中z3约束求解器,实现以简洁的代码,迅速实现对算式的求解。
  • 经过同学的建议,我们放弃了使用python的第三方库,转而使用C++自行构造类和相关函数,使用栈完成对算式的解析和计算。
  • 最初我们计划全部采用浮点数进行运算,最后通过遍历分子分母,找到最接近的解,确定最终结果。
  • 最终抛弃了近似计算法,而是新建了分时fraction类,实现了对分数运算的符号重载,能够直接进行分数类型数据之间、和整数的直接运算。最后直接得到结果的分子分母。

三、学习感悟

  • 这是第一次采用C++类的方法解决问题,之前一直都是使用STL库,调用各种函数,通过这次实践,我们都进一步熟悉了C++中类的使用方法,体验了面向对象编程的“对象”的含义。
  • 在最初的计划中,我打算使用python进行算式的求解,python编译成exe程序之后,在C++中实现调用外部exe,而z3库对Windows系统的支持不是很完善,所以一直在linux下进行测试。
    • 对linux基本操作有了一定的了解。
    • 学习了使用system函数实现C++调用外部exe程序并得到返回值。

猜你喜欢

转载自www.cnblogs.com/ZHijack/p/9119726.html