黄淑云:代码编写,测试,Github相关
阿说阿加:代码编写,ui设计,博客撰写git
PSP2.1 | Personal Software Process Stages | 预估耗时(h) | 实际耗时(h) |
---|---|---|---|
Planning | 计划 | 0.5 | 0.6 |
Estimate | 估计这个任务须要多少时间 | 0.5 | 0.5 |
Development | 开发 | 5 | 8 |
Analysis | 需求分析 (包括学习新技术) | 15 | 20 |
Design Spec | 生成设计文档 | 0.5 | 0.8 |
Design Review | 设计复审 | 0.8 | 1 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 1 | 1.5 |
Design | 具体设计 | 1 | 1.5 |
Code | 具体编码 | 17 | 20 |
Code Review | 代码复审 | 1 | 2 |
Test | 测试(自我测试,修改代码,提交修改) | 1 | 1.5 |
Reporting | 报告 | 0.5 | 1 |
Test Repor | 测试报告 | 0.5 | 0.8 |
Size Measurement | 计算工做量 | 0.5 | 0.5 |
Postmortem & ProcessImprovement Plan | 过后总结, 并提出过程改进计划 | 0.5 | 0.5 |
合计 | 45.3 | 59.1 |
说明算法的关键与关键实现部分流程图
一、算法的关键:判断输入文本不为空;循环添加树形数据,遇到空行时,设置空行为true,方便下一行添加一个大节点;当上一行为空行时,添加一个大节点(而且为大节点设置一个标志好比0),同理也须要对空行设置标志好比false;最后生成树的函数是关键。
二、简单流程图:
github
有价值的代码片断及其注释部分以下:算法
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<array.length; i++)//循环添加树形数据 { if(i==0) { var obj={};//第一行添加一个大节点,如导师节点 num++;//惟一节点标记加1 obj.id=num;//设置节点id obj.title=array[i].split(":")[0]+"_"+array[i].split(":")[1]//设置节点标 obj.pid=0;//设置为0时候,表明是大节 pid1=num;//记录子节点的pid treeData.push(obj); } else { if(array[i].length<1) { nullLine=true;//遇到空行时,设置空行为true,方便下一行添加一个大节点 } else { if(nullLine) { var obj={};//当上一行为空行时,添加一个大节点 num++;//惟一节点标记加1 obj.id=num;//设置节点id obj.title=array[i].split(":")[0]+"_"+array[i].split(":")[1] //设置节点标题 obj.pid=0;//设置为0时候,表明是大节点 pid1=num//记录子节点的pid treeData.push(obj)//添加大节点 } else { var obj={}; num++;//惟一节点标记加1 obj.id=num;//设置节点id obj.title=array[i].split(":")[0]//设置节点标 obj.pid=pid1;//设置子节点的pid为父节点的pid treeData.push(obj)//添加子节点 var arr1=array[i].split(":")[1].split("、");//添加子节的子节点 var pid2=num; //记录父节点的pid for(var j=0;j<arr1.length;j++)//循环添加子节点 { var obj={}; num++; obj.id=num; obj.title=arr1[j] obj.pid=pid2; treeData.push(obj) } } nullLine=false;//空行设置为false; } } } document.getElementsByClassName("f-tree").item(0).innerHTML="";//设置容器内容为空 config.tree({type:0,wrapper:'.f-tree',data:treeData});//生成树节点 } //console.log(array); //console.log(arr1); }
一、考虑输入为空的状况,可跳出提示框进行提示,而且没法生成任何树。
代码片断以下:数组
var txt=document.getElementById("txt1").value; if(txt=="")//提示输入不能为空 { alert("输入文本不能为空!"); }
结果展现以下:
浏览器
二、输入文本框里有提示文字,输出文字时消失,和文本框的其余样式方面的设置。
代码以下:app
<textarea style="height:300px; width:300px;background-image:url(images/3.jpg);border-color:#191970;" id="txt1" placeholder="请在这里输入文字"></textarea>
结果展现以下:
框架
目录组织
函数
目录说明和使用说明
工具
可能出现的状况:
点击“容许阻止的内容“。其余问题待发现。单元测试
阿说阿加:
黄淑云: