结对编程项目-最长英语单词链

作业信息

教学班级:周五班
项目地址:https://github.com/buaddd/buaa_SE_2022_Pair_Program

PSP表格

Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
计划 60 120
估计这个任务需要多少时间 30 30
开发 1200 1500
需求分析 (包括学习新技术) 180 120
生成设计文档 180 120
设计复审 (和同事审核设计文档) 30 60
代码规范 (为目前的开发制定合适的规范) 30 60
具体设计 180 180
具体编码 600 600
代码复审 180 120
测试(自我测试,修改代码,提交修改) 300 300
报告 180 180
测试报告 120 120
计算工作量 30 60
事后总结, 并提出过程改进计划 60 60
合计 56 * 60 60.5 * 60

项目设计与实现

项目结构与UML图

输入输出,建图,异常检查
本项目采用面对对象的思路进行设计,将不同的部分封装成不同类,结构如下所示

  • MyIO: 负责文件的读取与计算结果的输出,保存读入的所有字符串
  • Node, Word_vertex: 分别针对不允许环路与允许环路的情况,保存单词相关的信息,例如首尾的字母,后继节点等内容
  • Generator:根据字符串与参数情况生成Node与Word_vertex对象,建图
  • Checker: 进行环路检测,对于非-r的情况,如果检测到了环路,需要退出程序并报错
    在这里插入图片描述

Core相关计算类
在这里插入图片描述

  • Core: 封装本次作业的计算接口
  • Node_chain_builder与Word_chain_builder: 负责构建单词链,使用graph中的信息,构建单词链
  • Node_graph与Word_graph:保存所有节点,存储相关的信息,供生成者调用,辅助生成单词链
  • Node_chain与Word_chain:存储计算得到的单词链结果
  • Word_tarjan_vertex:代表计算过程中某一类Word_vertex的特殊情况

UML图
在这里插入图片描述

接口设计与实现

Information Hiding,Interface Design,Loose Coupling

  • Information Hiding:类只开放对应的功能接口,但隐藏其数据和实现细节。
  • Interface Design:一个好的接口设计可以使项目的结构更加条理有序。
  • Loose Coupling:处理好类与类之间的通信,避免出现一个类直接出现在另一个类中来及进行数据的交换

计算模块接口的设计与实现过程
本次作业要实现的计算模块接口如下:

int gen_chain_word(char
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值