软件工程实践2019第五次作业

part1-结对信息

项目 地址
作业内容 https://edu.cnblogs.com/campus/fzu/2019FZUSEZ/homework/8736
GitHub项目 https://github.com/huang-sy/031702602-031702609
结对成员1 https://www.cnblogs.com/huang-sy/
结对成员2 https://www.cnblogs.com/clown123/

part2-具体分工

黄淑云:代码编写,测试,Github相关
阿说阿加:代码编写,ui设计,博客撰写

part3-PSP表格

PSP2.1 Personal Software Process Stages 预估耗时(h) 实际耗时(h)
Planning 计划 0.5 0.5
Estimate 估计这个任务需要多少时间 0.5 0.5
Development 开发 5 5.5
Analysis 需求分析 (包括学习新技术) 15 17
Design Spec 生成设计文档 0.5 0.5
Design Review 设计复审 1 1
Coding Standard 代码规范 (为目前的开发制定合适的规范) 1 1.5
Design 具体设计 1 1
Code 具体编码 17 18
Code Review 代码复审 2 1
Test 测试(自我测试,修改代码,提交修改) 1 1
Reporting 报告 0.5 0.1
Test Repor 测试报告 0.5 0.5
Size Measurement 计算工作量 0.5 0.5
Postmortem & ProcessImprovement Plan 事后总结, 并提出过程改进计划 0.5 0.5
合计 46.5 49

part4-解题思路描述与设计实现说明

  • 说明算法的关键与关键实现部分流程图
    1、算法的关键:判断输入文本不为空;循环添加树形数据,遇到空行时,设置空行为true,方便下一行添加一个大节点;当上一行为空行时,添加一个大节点(并且为大节点设置一个标志比如0),同理也需要对空行设置标志比如false;最后生成树的函数是关键。
    2、简单流程图:
    软件工程实践2019第五次作业_第1张图片

  • 解题思路
    解题思路说难不难,实现方式倒是难倒门外汉了。简单描述就是先做一棵树,以导师为根节点,历届学生(包括博士生,硕士生等)为子节点。实现方式是在已有脚本和框架的基础上添加关键代码,完善脚本的具体功能。具体每一步的实现方式代码有所注释。
  • 有价值的代码片段及其注释部分如下:

function makeTree()
{
    var txt=document.getElementById("txt1").value
    if(txt=="")
    {
        alert("输入文本不能为空!");
    }
    else
    {
        var array=txt.split("\n")//分割行数组
        var treeData=[];//树形数据
        var nullLine=false;//是否为空行
        var num=0;//一行元素的唯一id
        var pid1=0;//子节点数据
        for(var i=0; i
  • 具体实现效果图
    输入为一棵树:
    软件工程实践2019第五次作业_第2张图片
    输入为多棵树:
    软件工程实践2019第五次作业_第3张图片

part5-附加特点设计与展示

1、考虑输入为空的情况,可跳出提示框进行提示,并且无法生成任何树。
代码片段如下:

var txt=document.getElementById("txt1").value;
    if(txt=="")//提示输入不能为空
    {
        alert("输入文本不能为空!");
    }

结果展示如下:
软件工程实践2019第五次作业_第4张图片

2、输入文本框里有提示文字,输出文字时消失,和文本框的其他样式方面的设置。
代码如下:

结果展示如下:
软件工程实践2019第五次作业_第5张图片

part6-目录说明和使用说明

  • 目录组织
    软件工程实践2019第五次作业_第6张图片

  • 目录说明和使用说明
    软件工程实践2019第五次作业_第7张图片

  • 可能出现的情况:
    软件工程实践2019第五次作业_第8张图片
    点击“允许阻止的内容“。其他问题待发现。

part7-单元测试

  • 选用的测试工具
    用的是Google浏览器F12快捷键,通过console.log()进行测试:
    软件工程实践2019第五次作业_第9张图片
  • 如何学习单元测试的(未完)
    构建之法书本内容+网上教程+同学交流

能出一份你自己的简易教程吗?【4'】
展示出项目部分单元测试代码,并说明测试的函数【3'】

说明构造测试数据的思路,你是如何考虑各种情况的?你如何考虑将来测试人员的刁难?【3'】
ps:上一次编程作业是比较欠缺的部分,请同学们认真完成此次单元测试,请看附录部分说明。

part8-Github的代码签入记录

软件工程实践2019第五次作业_第10张图片

part9-遇到的代码模块异常或结对困难及解决方法

  • 问题描述
    这次的代码着实难办,要学习使用新的语言和新的工具,工具的使用和语言的学习都可以通过视频教程实现,花时间就行。但是代码的实现问题比较大了。本次作业对于我们来说最大的困难应该是将输入文本框的内容进行处理后输出到节点上。刚开始找的网上的树形图模板只有固定的文本框,输入和输出都是固定的,一开始我们的思想比较简单就是像换参数一样把输入换成可变的就可。
  • 做过哪些尝试
    尝试过用简单的字符判断方式,比如写一个函数,可以将“导师:”到“\n”中间的文字输出到根节点,”2016级博士生:“到”\n"的内容里再选子节点。
  • 是否解决
    已解决
  • 有何收获
    有时候思路好理解,代码实现会磕磕碰碰的,需要不断学习不断测试不断改进,更有耐心。

part10-评价你的队友

阿说阿加:

  • 值得学习的地方: 咬定青山不放松,钻研精神杠杠的,要搁小时候绝对是立志做科学家的人儿。对于新知识有很大的学习欲望,值得学习!
  • 需要改进的地方:学习效率需要再提高一丢丢,当然互相交流,合作的也越来越有默契,以后也要一起加油!

黄淑云:

  • 值得学习的地方:遇事不慌不乱,全局意识强,交流和谐。
  • 需要改进的地方:小小的一点地方可能需要再一丢丢的严谨(附:多吃点饭吧,坐旁边“压力大”)

软件工程实践2019第五次作业_第11张图片

你可能感兴趣的:(软件工程实践2019第五次作业)