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


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

    任务一:博客互评

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

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

    一、需求分析

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

    附加功能:

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

    二、软件设计:使用类图


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

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

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

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

    三、开发工具

    操作系统
    开发工具
    JDK版本
    web服务器
    Web网页设计
    流程图设计

    四、核心代码展示

    1)词频统计显示在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:ProjectworkspaceCountWebResult.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;
    		}
    

    五、运行截图

      1.主界面

      2.文件上传成功

      3.计时上传

      4.显示统计结果

      5.柱状图显示

      6.result.txt文件

      7.统计行数显示

    六、两人合作

    结对对方姓名
    对方博客链接地址
    对方github链接地址

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

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

    七、psp

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

    八、总结

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

    九、GitHub仓库地址

    该项目仓库地址

  • 相关阅读:
    (五)L-BFGS算法
    (四)BFGS
    (三)DFP算法
    (二)拟牛顿条件
    (一)牛顿法与阻尼牛顿法
    遗传算法求解最优值
    Anaconda(Python3.6)配置OpenCV3.3
    SVM基础知识
    IO流
    webserver服务器优化0.1
  • 原文地址:https://www.cnblogs.com/yaoyuting/p/10569486.html
Copyright © 2020-2023  润新知