201671010415+金生芳+《英文文本统计分析》结对项目报告
一、博文简要信息表
||||||||||||||||||||||||||
|:----|:----|
| 项目| 内容|
| 这个作业属于哪个课程 |http://www.cnblogs.com/nwnu-daizh/|
| 这个作业的要求在哪里 | https://www.cnblogs.com/nwnu-daizh/p/10569690.html|
| 课程学习目标 | 熟悉软件开发整体流程,提升自身能力。|
| 本次作业在哪个具体方面帮助我们实现目标 | 第一次体验一个完整的工程|
二、任务一
|||||||||||
|:----|:----|
| 点评作业博文地址| https://www.cnblogs.com/123456wyq/p/10545154.html|
| 博文结构 |博文排版清晰,能一目了然看到老师的要求。|
| 博文内容 | 博客内容实验要求功能表示有所欠缺,没有看到psp、流程图等结构性东西。|
| 博文结构与PSP中“任务内容”列的关系 | 博客中为附PSP,无法评价。 |
| 点评内容 | 评价博客排版以及博客内容是否充实,以及github中代码的运行和测试,通过测试发现代码功能不全,对老师所要求的功能只是蜻蜓点水地提了一下,对同学的代码进行了改进并且踢了一些可供参考的建议。|
| 点评心得 | 在阅读完你的博客后发现你的博客还是有很多需要改进的地方,希望能认真对待每次作业。希望在以后能够自觉接受一些新事物,学会Markdown的一些附加功能,这样就会使你的博文更加完美了|
三、任务二
1、具体说明
结对项目源码在Github的仓库主页链接地址: https://github.com/jinshengfang123/jiedui|
需求分析 :
(1)实验2要求的功能;
(2)单词频数可视化柱状图;
(3)统计该文本行数及字符数;
(4)各种统计功能均提供计时功能,显示程序统计所消耗时间(单位:ms);
(5)可处理任意用户导入的任意英文文本;
(6)人机交互界面要求GUI界面(WEB页面、APP页面都可)|
软件设计说明 :
本次项目主要目的是实现可导入任意英文文本文件,统计该英文文件中单词数和各单词出现的 频
率(次数),并能将单词按字典顺序输出;将单词及频率写入文件;实现GUI界面;将单词及频
率写入指定位置
2、核心功能代码展示
ackage fangfa.a;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.TreeMap;
public class jsf {
// 统计数字或者字符出现的次数
public static TreeMap<Character, Integer> Pross(String str) {
char[] charArray = str.toCharArray();
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);
}
}
return tm;
}
public static void main(String[] args) {
BufferedReader br = null;
int line = 0;
String str = "";
StringBuffer sb = new StringBuffer();
try {
br = new BufferedReader(new FileReader("c:\\1.txt"));
while ((str = br.readLine()) != null) {
sb.append(str);
++line;
}
System.out.println("\n文件行数: " + line);
System.out.println("\n文件内容: " + sb.toString());
TreeMap<Character, Integer> tm = Pross(sb.toString());
System.out.println("\n字符统计结果为:" + tm);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
package a.a;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.LineNumberReader;
public class hangshu
{
public static void main(String[] args)
{
try{
File file =new File("src/word.txt");
if(file.exists()){
FileReader fr = new FileReader(file);
LineNumberReader lnr = new LineNumberReader(fr);
int linenumber = 0;
while (lnr.readLine() != null){
linenumber++;
}
System.out.println("此文本的行数为: " + linenumber);
lnr.close();
}else{
System.out.println("File does not exists!");
}
}catch(IOException e){
e.printStackTrace();
}
}
}
3、程序运行:程序运行时每个功能界面截图
a、统计文本单词数
b、统计单词数
c、统计文本行数
d、统计单词出现最高频率及GUI界面
e、输出到文件result.txt中
f、结对编程图片
四、提供此次作业的psp
|||||||||||
|:----|:----|:----|:----|
| psp2.1| 任务内容| 计划总共需要完成的时间(min)| 实际完成需要的时间(min)|
| Planning | 计划| 10| 20|
| Estimate| 估计需要时间| 并计划大致工作步骤| 10| 10|
| Development| 开发| 200| 240|
| Analysis| 需求分析| 10| 15|
| Design| Spec 生成设计文档| 30| 25|
| Design Review| 设计复审| 10| 8|
| Coding Standard| 代码规范| 20| 25|
| Design| 具体设计| 20| 30|
| Coding| 具体编码| 360| 420|
| Code Review| 代码复审| 30| 40|
| Test| 测试| 15| 20|
| Reporting| 报告| 8| 10|
| Text Report| 测试报告| 5| 8|
| Size Measurement| 计算报告量| 5| 5|
| Postmortem&Process Improvement plan| 总结并提出改进计划| 15| 20|
五、实验心得
通过本次结对项目实验深刻体会到思想交换的重要性,以前我们所有的实验基本上都是一个人完成,所以每次实验做到中途就会自动停止,然后以不懂的心态敷衍塞责。这次通过两个人的交流,能更多地实现老师所要求的功能。但是由于我们基础有限,在完成某些功能代码时还是存在很大的困难,在接下来的学习中我们应该能够借助某些平台自主学习编程设计。也希望老师在实验课上能够给每次试验所需用的代码对我们适当地进行分析与讲解,这样我们完成作业的质量就会更加高效,学习到的东西也更多。