201671030114 马秀丽 实验四 软件工程结对项目

源代码
项目内容
课程名称:2016级计算机科学与工程学院软件工程(西北师范大学)
课程要求:实验四 软件工程结对项目
课程目的:熟悉软件开发整体流程,提升自身能力
作业意义:第一次体验一个完整的工程

任务一:

    两两自由结对,对结对方的《实验二 软件工程个人项目》的项目成果进行评价。
评价同学
源代码
评价:整体排版清晰,基本上实现了要求功能,但是所画柱状图不能看出效果,没有输出到文本的结果显示,代码写的还可以,命名挺规范,在java方面要在多熟悉、练习,那么应用起来结果会好很多。

结对同学

任务2:

  采用两人合作方式,设计开发一个英文文本统计分析软件。
功能设计

1.实验2要求的功能;
2.单词频数可视化柱状图要求是以下样式:
1616089-20190322094405974-652706179.png
3.统计该文本行数及字符数;
4.各种统计功能均提供计时功能,显示程序统计所消耗时间(单位:ms);
5.可处理任意用户导入的任意英文文本;
6.人机交互界面要求GUI界面(WEB页面、APP页面都可);
7.附加分功能:统计文本中除冠词、代词、介词之外的高频词;

设计实现

1.StatisticalWord()函数,统计指定单词词频个数且显示柱状图;
2.WordList()函数,统计词频个数并输出到文本;
3.Figure()函数,查询K个出现频次最高的单词;
4.Test()函数,统计文本的行数和字符统计数;
5.WordList1()函数,统计文本中除冠词、代词、介词之外的单词输出到文本
6.Main()函数,调用各个功能。

结果展示

1.按按钮调用相应功能
1616089-20190403081807272-1859687150.png

2统计指定单词词频个数且显示柱状图
1616089-20190403082418749-634848687.png

3.统计词频个数并输出到文本
1616089-20190403082436965-782723413.png

1616089-20190403082448035-1521319238.png

4.查询K个出现频次最高的单词
1616089-20190403082505391-1143931416.png

5.统计文本的行数和字符统计数
1616089-20190403082541363-424498943.png

6.统计文本中除冠词、代词、介词之外的单词输出到文本
1616089-20190403082617471-248554624.png

1616089-20190403082627369-232922360.png

合作中
1616089-20190403165136839-903156371.jpg

代码展示

监听按钮调用相应函数

{
Button1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
StatisticalWord frame = new StatisticalWord();
//frame.setBounds(200,300,500,800);
frame.setTitle("统计指定单词词频个数且显示柱状图");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
optStatisticalWord();
}
});
add(Panel,BorderLayout.CENTER);
pack();
}

统计各功能时间

{
long startTime=System.currentTimeMillis();
long lines = Files.lines(Paths.get(new File("src\DATA.txt").getPath())).count();
// System.out.println("行数: " + lines);
long endTime=System.currentTimeMillis();
result.append("字符统计结果为:" + n+"\n行数: " + lines+"\n所消耗时间为:"+ (endTime-startTime)+"ms" );
//System.out.println("所消耗时间为:"+ (endTime-startTime)+"ms" );
}

统计数字或者字符出现的次数

public static int Pross(String str) { 

    char[] charArray = str.toCharArray(); 
    int all = 0;
    TreeMap<Character, Integer> tm = new TreeMap<Character, Integer>(); 
    for (int x = 0; x < charArray.length; x++)
    { 
        if (!tm.containsKey(charArray[x])) 
        { 
            tm.put(charArray[x], 1); 
        } 
        else
        { 
            int count = tm.get(charArray[x]) + 1; 
            tm.put(charArray[x], count); 
            all=all+count;
        } 
      
    }  
    return all;
}
总结:

这次作业是在实验二的基础上进行的,首先我们根据实验二的个人PSP做了分析并在开发和编写代码上增加了时间,在开始开发设计之前我们读了对方的代码并选择了这次作业以对方的代码为基础,因为她的代码命名比较规范,完成过程中会遇到各种各样的问题,双方之间的调解和适当的妥协是很有必要的。

psp
PSP2.1任务内容计划共完成需要的时间(min)实际完成需要的时间(min)
Planning计划1520
Estimate估计这个任务需要多少时间,并规划大致工作步骤1815
Development开发480620
Analysis需求分析 (包括学习新技术2018
Design Spec生成设计文档2035
Design Review设计复审 (和同事审核设计文档1025
Coding Standard代码规范 (为目前的开发制定合适的规范)108
Design具体设计1519
Coding具体编码400600
Code Review代码复审2025
Test测试(自我测试,修改代码,提交修改2047
Reporting报告1527
Test Report测试报告1012
Size Measurement计算工作量45
Postmortem & Process Improvement Plan事后总结 ,并提出过程改进计划58

转载于:https://www.cnblogs.com/xliy/p/10576286.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值