| 项目 | 内容 |
|---|---|
| 这个作业属于哪个课程? | 北航软工2019班级博客 |
| 这个作业的要求在哪里? | 结对项目-最长单词链 |
| 我在这个课程的目标是? | 按时完成老师给的任务 |
| 这个作业在哪个具体方面帮助我实现目标 ? | 让我了解该课程的基本内容 |
GitHub - HansBug/pair_program_word_chain
| PSP2.1 | Personal Software Process Stages | 预估耗时(小时) | 实际耗时(小时) |
|---|---|---|---|
| Planning | 计划 | 1 | 0.5 |
| · Estimate | · 估计这个任务需要多少时间 | 10 | 50 |
| Development | 开发 | 20 | 22.7 |
| · Analysis | · 需求分析 (包括学习新技术) | 6 | 5.43 |
| · Design Spec | · 生成设计文档 | 0.5 | 2 |
| · Design Review | · 设计复审 (和同事审核设计文档) | 3 | 1 |
| · Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 0.5 | 3 |
| · Design | · 具体设计 | 0.5 | 4 |
| · Coding | · 具体编码 | 10 | 13 |
| · Code Review | · 代码复审 | 1 | 3 |
| · Test | · 测试(自我测试,修改代码,提交修改) | 1 | 3 |
| Reporting | 报告 | 3 | 2 |
| · Test Report | · 测试报告 | 1 | 3 |
| · Size Measurement | · 计算工作量 | 1 | 3 |
| · Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 1 | 2 |
| 合计 | 38 | 82.3 |
基本设计过程
我们把代码分成3个部分:
core.dll中的接口
接口定义在文件core.h中,EXPORT关键字是我们自己定义的 DLL函数导出前缀。
EXPORT int TEST_LIB_PLUS(int a, int b);
EXPORT int gen_chain_word(char *words[], int len, char *result[], char head, char tail, bool enable_loop);
EXPORT int gen_chain_char(char *words[], int len, char *result[], char head, char tail, bool enable_loop);
上手就是埋头写代码,哪有时间来设计?


这些做法非常棒!我们
下图就是计算模块的部分单元测试啦:

异常我们采用负数返回值表示,定义在 core.h 里面。
// This is all the possible return value for exported dll function
#define CORE_WORDS_HAS_CIRCLE (-1)
#define CORE_WORDS_HAS_EMPTY (-2)
#define CORE_WORDS_HAS_INVALID (-3)
#define CORE_NO_WORD_CHAIN (-4) // no word chain
#define CORE_NO_MATCHED_WORD_CHAIN (-10) // we found word chains, but they don't match start or end characters.
界面设计
画界面用的是 QT 自带的 QT Designer 设计工具。这个工具灰常好用,所见即所得,操作又略略繁琐,虽然耗费了我们大量的时间来熟悉这个鬼东西,但最终还是取得了不错的效果。
QT Designer 设计的界面是保存在一个名字为.ui文件中的,这个文件采用 xml 语言描述了界面设计。在编译QT App时,QT会自动将这个 .ui 文件转换成一个 .h 文件,我们可以直接在代码中使用这个文件,特别方便。
界面特色
我们的 GUI 是采用 QT 框架实现的,它具有以下特色:

界面模块与计算模块的对接最后进行的几个步骤,此时我们已经完成了核心模块的编写,因此,直接在代码中调用核心模块的头文件即可正常编写代码,再配合上cmake,就能自动进行动态链接。
所以,对接就这样完成啦。
我们同心协力,携手并进,有说有笑的完成了结对。
图片记录:

| 我 | 张少昂 | |
|---|---|---|
| 优点 | 听大佬的话 | 技术666 |
| 缺点 | 技术水平太菜了 | (大佬没有缺点) |
原文:https://www.cnblogs.com/fondoger/p/10534444.html