软件工程 | 17级计科一班 |
---|---|
作业要求 | https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/homework/10619 |
作业目标 | 需要在网页页面上呈现树形结构形式的师门树 |
作业正文 | 如下 |
参考文献 | http://www.treejs.cn/v3/api.php https://www.cnblogs.com/xing901022/p/4787625.html |
结对信息
朱旭炜20177596:https://www.cnblogs.com/RCJames/
刘涛20177569:https://www.cnblogs.com/liutaodashuaige/
Github仓库:https://github.com/zxw0621/20177596-20177569
具体分工
朱旭炜:负责前端编写,Ajax和servlet,编写博客园博文
刘涛:负责后台JavaBean的编写
PSP表格
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 60 | 90 |
Estimate | 估计这个任务需要多少时间 | 600 | 1200 |
Development | 开发 | 300 | 200 |
Analysis | 需求分析 (包括学习新技术) | 30 | 20 |
Design Spec | 生成设计文档 | 30 | 30 |
Design Review | 设计复审 | 60 | 30 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 30 | 20 |
Design | 具体设计 | 30 | 30 |
Coding | 具体编码 | 60 | 60 |
Code Review | 代码复审 | 60 | 20 |
Test | 测试(自我测试,修改代码,提交修改) | 30 | 10 |
Reporting | 报告 | 20 | 20 |
Test Repor | 测试报告 | 20 | 20 |
Size Measurement | 计算工作量 | 20 | 20 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 30 | 30 |
合计 | 1380 | 1730 |
解题思路&设计实现
-
流程图
-
public List jiexi(String wb){ List<HashMap<String, Object>> shu = new ArrayList<HashMap<String, Object>>(); //分解为单行 String[] fenlei = wb.split(" "); for (int i=1;i<=fenlei.length;i++){ //分解父节点和子节点 String[] jiedian = fenlei[i-1].split(":"); if(jiedian[0].equals("导师")){//当检索到导师字段时 HashMap<String,Object> jd = new HashMap<String,Object>(); jd.put("id",i); jd.put("pId",0); jd.put("name","导师"); shu.add(jd); //导师子节点 HashMap<String,Object> jd1 = new HashMap<String,Object>(); jd1.put("id",i*10); jd1.put("pId",1); jd1.put("name",jiedian[1]); shu.add(jd1); }else{//类别目录 HashMap<String,Object> jd = new HashMap<String,Object>(); jd.put("id",i); jd.put("pId",1); jd.put("name",jiedian[0]); shu.add(jd); //分解所有子节点 String[] xjd = jiedian[1].split("、"); for (int j=0;j<=xjd.length-1;j++){//学生目录 HashMap<String,Object> xs = new HashMap<String,Object>(); xs.put("id",i*10+j); xs.put("pId",i); xs.put("name",xjd[j]); shu.add(xs); } } } return shu; }
遇到的困难及解决方法
-
textarea标签中换行符是如何保存
解决:在浏览器的开发者工具查看textarea的取值,换行符不保存,而保存了一些空格
-
JSON如何从servlet返回给前端处理
解决:导入fastjson包,用JSON.toJSONString转成json字符串,在前端用eval方法再把json字符串转json对象
评价队友
@波兰杜兰特:在结对过程中,十分曲折,困难重重,但是通过我们共同学习和协作,完成了一个十分简陋的版本,对JSON和zTree的使用还要进一步的学习,我们在结对时,一有问题或者想法就会马上连线沟通,培养默契,提高了我们完成作业的效率,这种结对编程的方式让我们获益匪浅,共同进步。
@不负真人:在本次的软件工程作业的完成过程中,我与朱旭炜同学再次亲密合作,有了上次结对编程的经验,这次结对编程我更加深刻的体会到了结对编程的优点,加强了和朱旭炜同学的沟通交流,加快了我们合作工作的效率,同时,在对家族书功能的实现中,我负责后台代码部分,这使我对于构建代码过程中的分工有了清晰的认识,收获颇丰!