2020软件工程作业05

软件工程 https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1
作业要求 https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/homework/10619
作业目标 结对编程实现“学术家族树”
作业正文 如下
参考文献 感谢百度

一、指路

二、结对分工

Nothingtolose:代码实现,界面设计,编写博客

Hynan: 找素材,完善博客,测试优化并提出意见

三、PSP表格

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟
Planning 计划 20min 20min
Estimate 估计这个任务需要多少时间 2360 270
Development 开发 600 900
Analysis 需求分析 (包括学习新技术) 600 1120
Design Spec 生成设计文档 60 60
Design Review 设计复审 40 30
Coding Standard 代码规范 (为目前的开发制定合适的规范) 30 20
Design 具体设计 60 120
Coding 具体编码 600 1250
Code Review 代码复审 120 150
Test 测试(自我测试,修改代码,提交修改) 60 30
Reporting 报告 60 80
Test Repor 测试报告 60 50
Size Measurement 计算工作量 40 60
Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划 30 30
合计 2360 2700

四、解题思路描述与设计实现说明

1.思路描述

①设置文本框,获取输入的信息
用text area,并且给出提示输入样例

②分析信息并生成树状结构
以导师为根节点,选出父节点插入子节点可延展到三级等节点,直到文本数据处理完毕

③再次输入新的信息,判断是否关联,否则生成新的树
同样利用导师确认根节点展开

2.代码组织与内部实现设计

  • 组织结构

  • 内部实现

    • 框架

    • 遍历检查

    • 生成树

    • 处理信息

3.算法的关键与关键实现部分流程图

  • 算法关键除了如上所列,还有按钮触发chase()

  • 输入文本框

  • 流程图

五、设计与展示

1.附加特点

  • 页面设置里面有下拉菜单:

    • 个人信息

      写一个.jsp页面可展示个人的信息,包括基础信息、兴趣爱好、现就业/就读单位。

    • 导师信息

      查看导师的基础信息,联系方式等内容。

    • 退出

  • 意义

    • 将树呈现的关系更加详细,也便于联系交流。

2.实现思路

  • 通过光标点击,可跳转页面,查看个人/导师信息

3.界面展示

4.动态图演示

五、目录说明和使用说明

1.说明你的目录是如何组织的

  • bootstrap文件夹:

    • css:自带css样式

    • fonts

    • js以及下载的jquery.js:代码中有引用到这个实现美化

  • html文件夹

    • tree.html:代码实现的页面文件
  • README.md:目录说明和使用说明

2.测试人员如何运行你的网页

1.选择Clone or download(下载ZIP)解压成文件夹

2.文件夹中找到tree.html文件并打开

3.查看页面Tips,按格式输入要生成家族树的信息,点击按钮,可查看您的家族树

六、单元测试

1.测试工具

2.测试图片



3.测试样例

  • 生成一棵树

导师:张三
2016级博士生:天一、王二、吴五
2015级硕士生:李四、王五、许六
2016级硕士生:刘一、李二、李三
2017级本科生:刘六、琪七、司四

  • 将第一棵树父节点作为根节点

导师:李四
2016硕士生:刘一、李二
2017本科生:刘六、琪七

  • 生成多棵树

导师:李四
2016硕士生:刘一、李二...
2017本科生:刘六、琪七...
.....

七、Github的代码签入记录

八、遇到结对困难、解决方法以及收获

(1)困难和解决方法

  • 困难Ⅰ:前端的知识懂得太少,对语言不熟悉

    解决方法:查看老师发布在云班课的资料,看视频,以及看菜鸟教程,里面有对js、html、css等语言的模块的详细介绍,还有在线代码运行,我一般都是在上面查找网页样式的字体的颜色,在线运行查看效果再运用到我的代码中。其中还有对bootstrap框架的说明,非常方便也很直观。用来进行学习和操作非常合适。

  • 困难Ⅱ:树的形态到底用哪个

    做过的尝试:首先我优先考虑用ztree插件,表现出来的树占用空间小且内容详尽,但是我下载完ztree并且在代码里调用的时候,消除所有bug后,在代码实现的网页上树显示不出来,重新反复地检查,再试也没有解决,于是作罢。

    解决方法:我们用了D3框架的树,直接在网上找到了脚本文件,修改放入我们的代码,成功显示了。

  • 困难Ⅲ:如何获取text area的数据生成树

    做过的尝试:之前我们用的ztree,但是发现只能依靠我们在代码输入的数据生成,一旦获取数据,树就显示不出来。

    解决方法:D3框架里面我们初始化函数,在进行数据传送接受,以导师为关键字成为根节点,再把文本输入的子节点名字加入,通过“count++”可以加分级节点以及产生多棵树。

  • 困难Ⅳ:怎样可以不删除文本框已输入的信息,直接添加数据生成树

    解决方法:暂时没有解决,如果不删除旧数据,直接加入新的导师数据会报错,所以我们添加了一条Tips内容提醒用户。

(2)心酸三连 感想和收获

发现问题:为什么?怎么了?为什么这样不行?👇

解决问题:这是啥?学过......吧?呼~加油加油👇

最终感悟:我累了。👇

九、对于队友的评价

@Nothingtolose:

  • 值得学习的地方

真好真棒,心态好心态好,墨水不够我都夸不过来~

  • 需要改进的地方

我们一样的问题:容易被困难打败

posted @ 2020-04-17 13:30  hynan  阅读(222)  评论(0编辑  收藏  举报