• 2020软件工程作业05


    软件工程https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/
    要求 https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/homework/10619
    目标 实现家庭树
    作业正文 下文
    其他参考文献

    https://blog.csdn.net/github_38924695/article/details/81166820

    https://blog.csdn.net/weixin_41298484/article/details/80990591

    https://www.runoob.com/nodejs/nodejs-tutorial.html

    Github项目地址:https://github.com/zengyao14/20166978-20177687

    博客地址:

    https://home.cnblogs.com/u/zengyao14/

    https://www.cnblogs.com/drinkmorehotwater/

    分工:

    刘志:家族树逻辑代码的实现,博客编写。

    曾尧:家族树界面代码的实现,博客编写。

    PSP表格

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

    一解题思路

    输入要求:

    学术家族树以文本形式输入,web页面需要提供一个文本框;

    输出要求:

    文本的呈现方式没有强制要求,可以自定义为普通格式或XML格式;树的节点,鼠标点击后是可以缩放的。同时,支持呈现多棵树并存、两棵关联树共存等形式。

    二详细设计

    流程图

                

    get函数

     function getJsonLength(jsonData) {
              var jsonLength = 0;
              for (var item in jsonData) {
                  //alert("Son is " + item);
                  jsonLength++;
              }

    check函数

    function check(nodes, find_name, may_need, keke) {
              var fanhui1 = 0;
              var fanhui2 = 1;
              var length_now = getJsonLength(nodes.children);
              // alert("chang = " + length_now)
              for (var ll = 0; ll < length_now; ll++) {
                  //alert(nodes.children[ll].name);
                  if (nodes.children[ll].name == find_name) {
                      nodes.children[ll] = may_need;
                      //alert("add success");
                      return fanhui2; 
     
                  } else {
                      check(nodes.children[ll], find_name, may_need, keke);
                    
                  }
              }

              return fanhui1;
          }

    生成树型结构函数

     for (var j = 0; j < model_data.length; ++j) {
                     count = 0;
                     flag = 0;
                     count_shu = 0;
                     sclice_data = model_data[j].split(" ");
                    
                     for (var i = 0; i < sclice_data.length; ++i) {
                       var head_tmp = "";
                          var body_tmp = "";
                          var hb = sclice_data[i].split(":"); 
                          head_tmp = hb[0];
                   
                          body_tmp = hb[1];
                  

    判断树关联

     var tree_tmp = treeData[j];
                     var name_tmp = treeData[j].name;
                     for (num_tmp = 0; num_tmp < j; num_tmp++) {
                        
                         //alert("flag = " + flag);
                      flag = check(treeData[num_tmp], name_tmp, tree_tmp, num_tmp);
                     }
                     if (!flag) count_shu++;
                
                 }
                 for (var i = 0; i <= count_shu; i++) {
                  
                     treeInit(i)
                 }
                       

    三特点设计与展示

    设计的创意独到之处,这个设计的意义:界面简洁

    初始界面

    生成家族树界面

    节点收缩展开

    四目录说明和使用说明

    下载到本地,解压后用浏览器打JSP文件,在右侧文本框输入文本。学术家族树以文本形式输入,点击提交文本框。

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

    五单元测试

    六结对困难及解决方法

    问题:

    1如何分割字符串?

    2如何读取文本框中的数据?

    3D3框架不熟悉?

    解决方案:通过查找百度,都已解决。

    心得:要学的东西还很多

    七评价你的队友

    对刘志的评价:刘志在这一次的过程中,每当遇到困难时,积极地从网上或者朋友处得到帮助,这使得项目得以推进,其乐于求助的精神值得我学习

    对曾尧的评价:在这次的项目过程中,曾尧每每能想到一些独特的解决问题的方法,有些问题在对外求助的过程中就能被解决,曾尧的想法很多,值得学习

     

  • 相关阅读:
    FCKEditor使用说明
    如何查看索引或table所佔用的實際空間
    java字节输入流
    文件的读写操作
    利用JProfiler
    javascript面向对象技术基础(五)
    深刻理解Linux进程间通信(IPC)
    JAVA中操作数据库方式与设计模式的应用 2
    javascript面向对象技术基础(六)
    FCKeditor在线编辑器
  • 原文地址:https://www.cnblogs.com/zengyao14/p/12721634.html
Copyright © 2020-2023  润新知