201671010450姚玉婷-实验四结对项目

项目 内容
所属科目 软件工程http://www.cnblogs.com/nwnu-daizh
做业要求 http://www.javashuo.com/article/p-bjcswxqf-ma.html
课程目标           1)体验软件项目开发中的两人合做,练习结对编程(Pair programming)。
2)熟练掌握Github上增量发布软件操做方法,参考文章(点击此连接)
3)掌握人机交互界面的实现(如GUI界面实现,WEB页面,APP页面等)

任务一:博客互评

  • 点击博客连接:http://www.javashuo.com/article/p-bjcswxqf-ma.html
  • 点评github连接地址:https://github.com/MLS123456/WordCount
  • 点评内容:首先,提交到Github上的项目必须包含src文件夹,你的没有符合要求。还有,功能也暂时未实现全,好比柱状图的实现。还有若是在博客内容上添加用到的类,函数,以及每一个函数实现的功能,就更好了。截图欠缺了你result.txt的截图,看到你的此功能已经实现,能够加一下此张截图。代码部分还有待提升,努力。可是,从博文的总体效果来看,仍是比较好的,词频的统计,字典排序,输出到Result.txt这些功能都已经实现,可是你的类只有一个,你能够分几个类,分别实现对应功能,而后一个测试类或者主函数类。这样代码结构就比较清晰完美。程序是在控制台输出运行结果,但愿在下次结对做业中,可以实现人机交互。加油!
  • 评价心得:看到她的博客,一样,我也出现了跟他一样的问题,提交到Github上的项目必须包含src文件夹,没有把每一个实现功能的截图都放入博客,个人柱状图也为实现,尝试着写代码去实现此功能,可是程序出错,未能修改为功。但愿在此次结对做业中可以尽本身最大的努力去作好这次实验。

任务二:《英文词频统计》结对项目

1、需求分析

  • 实验2要求的功能;
  • 单词频数可视化柱状图要求是如下样式:
  • 统计该文本行数及字符数;
  • 各类统计功能均提供计时功能,显示程序统计所消耗时间(单位:ms);
  • 人机交互界面要求GUI界面(WEB页面、APP页面均可);

附加功能:html

1)统计文本中除冠词、代词、介词以外的高频词;
2)统计前10个两个单词组成的词组频率。前端

2、软件设计:使用类图


1)在本次项目中所用到的类git

  • ByValueComparator:该类实现次品的比较。
  • FileProccessing:用于文件的处理,如文件的上传,显示等。
  • WordFrequencyCount:此类实现字频数的统计。

2)在本次项目中所用到的Jsp界面github

  • FileUpload.jsp:这是这次项目的主界面,用于柱状图的显示,文件的选择,时间的显示等
  • FileDownload.jsp:文件上传成功界面,用于显示词频统计的结果。

3、开发工具

操做系统 Widnows 7
开发工具 Eclipse
JDK版本 1.8
web服务器 Tomcat 8.0
Web网页设计 HBulider PS sublime
流程图设计 迅捷流程图制做软件

4、核心代码展现

1)词频统计显示在web界面web

<% String juge = (String)request.getAttribute("message");
    if(!juge.startsWith("Error")) {%>
    统计结果:<br />
    <%FileReader filePrint = new FileReader("D:\\Project\\workspace\\CountWeb\\Result.txt");
    BufferedReader br = new BufferedReader(filePrint);
    for(int i = 0;i<14;i++){%>
        <%=br.readLine()%><br />
    <% }
    br.close();
    filePrint.close();
    %>
    <br>
    <a href="D:\Project\workspace\CountWeb\Result.txt">查看Result文件</a>
    <%} %>

2)词频比较(高频单词显示)编程

public class ByValueComparator implements Comparator<Entry<String,Integer>> {
    Map<String, Integer> hashmap;
    public ByValueComparator(Map<String, Integer> hm) {
        this.hashmap = hm;
    }

    @Override
    public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) {
        // TODO Auto-generated method stub

        if (o1.getValue().compareTo(o2.getValue()) == -1) {
            return 1;
        } else if (o1.getValue().compareTo(o2.getValue()) == 0) {
            return o1.getKey().compareTo(o2.getKey());
        } else {
            return -1;
        }

3)上传数据及保存文件服务器

protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // 检测是否为多媒体上传
        if (!ServletFileUpload.isMultipartContent(request)) {
            // 若是不是则中止
            PrintWriter writer = response.getWriter();
            writer.println("文件类型有误: 表单必须包含 enctype=multipart/form-data");
            writer.flush();
            return;
        }

5、运行截图

  1.主界面
jsp

  2.文件上传成功ide

  3.计时上传
函数

  4.显示统计结果

  5.柱状图显示

  6.result.txt文件

  7.统计行数显示

6、两人合做

结对对方姓名 马丽莎
对方博客连接地址 地址:http://www.javashuo.com/article/p-yitvtbkg-mq.html
对方github连接地址 地址:https://github.com/MLS123456/CountWeb

结对项目过程:
 1)项目开发过程照片

 2)项目开发过程
在此次结对项目中,两我的作了需求分析,而后使用web编程的方式来实现英文词频的统计。个人结对人马丽莎主要负责前端的设计(jsp)界面的设计,而我负责后台代码的编写,在这次实验中,花费的时间要比上次实验要多。可是此次是结对项目,相对而言,要比我的项目省时省力。

7、psp

PSP2.1 任务内容 计划共完成须要的时间(min) 实际完成须要的时间(min)
Planning 计划 10 8
Estimate 估计这个任务须要的时间,并规划大体工做步骤 10 15
Development 开发 180 280
Analysis 需求分析(包括学习新技术) 6 5
Design Spec 生成设计文档 30 35
Design Review 设计复审 15 20
Coding Standard 代码规范(为目前的开发制做合适的规范) 3 5
Design 具体设计 10 15
Coding 具体编码 300 320
Code Review 代码复审 5 6
Test 测试(自我测试、修改代码,提交修改) 8 9
Reporting 报告 9 10
Test Report 测试报告 30 35
Size Measurement 过后总结,并提出过程改进计划 5 5

8、总结

  这次结对项目是在实验二的基础上增长一些新的功能要求,以及使用人机交互界面的形式展示出来。因为我两对GUI编程都不熟悉,因此,最后使用了web界面的形式来展示。在此次结对项目中,使用了前台跟后台的交互,以及Tomcat的使用。总之,花费了许多时间来完成这次项目的实现。相对于上次我的项目的开发,这次结对项目就相对而言比较省时省力。但与此同时,也取决于两人的合做跟默契程度。

9、GitHub仓库地址

该项目仓库地址

相关文章
相关标签/搜索