结对博客

项目 内容
教学班级 006
项目地址 https://github.com/Junhaoo/IntersectProject2.git
作业属于 2020春季计算机学院软件工程(罗杰 任健)
作业要求 结对项目作业
个人课程目标 掌握软件工程基础知识
具体有助方面 双人合作能力提高

PSP表格

Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
计划
·估计任务需要时间 30 30
开发
·需求分析(包括学习新技术) 120 180
·生成设计文档 30 30
·设计复审(和同事审核设计文档) 10 10
·代码规范(为目前的开发制定何时规范) 10 20
·具体设计 40 50
·具体编码 100 --
·代码复审 30 --
·测试(自我测试,修改代码,提交修改) 30 60
报告
·测试报告 30 30
·计算工作量 10 20
·事后总结,并提出过程改进计划 10 10
合计 450 440

扩展计算功能

新增功能的实现

本次作业要求在原有求直线交点的基础上增加对射线线段的交点求解,我的代码想法是:将其都看做对直线,对其交点求解,再根据直线类型判断交点是否在图形上。

实现上利用了工厂模型:

图源菜鸟网站

其中较为重要的函数有:需要重载的函数为 isOnPlot(Dot* dot);
主要类为父类Plot:

单元测试

测试的函数主要有:

  1. 针对不同线性图形的isOnPlot(Dot* dot)函数,针对判断点在是否在射线或线段上;
  2. 工程构造函数能否正确构造相应类型;
  3. 随机数据结合GeoGebra进行验证。

异常处理

错误类型 解释
OutRangedException 输入的数据超出给定的(-100000,100000)范围
DuplicatedDotException 用于确定几何图形的两点重合
UnknownTypeException 除了C,L,R,S之外的其他类型

封装独立模块(未完成)

界面模块(未完成)

原文地址:https://www.cnblogs.com/JunHaoo/p/12560696.html