实验要求 实验二 软件工程个人项目
GitHib链接 https://github.com/Z-zt/Count

一.需求分析

通过分析实验二题目要求,得出的用户需求主要为:

  • 程序可读入任意英文文本文件,该文件中英文词数大于等于1个;
  • 程序需要很健壮,能读取容纳英文原版《哈利波特》10万词以上的文章;
  • 程序可以实现用户指定单词词频统计功能;
  • 用户从键盘输入高频词输出的个数k,运行程序统计功能,可按文本中词频数降序显示前k个单词的词频及单词;
  • 统计该文本所有单词数量及词频数,并能将单词及词频数按字典顺序输出到文件result.txt。

二.功能设计

基本功能

  • 功能一:程序在读入英文文本的基础上能实现统计用户指定单词出现的频率的功能;
  • 功能二:在功能一的基础上用柱状图显示出单词出现频率的高低;
  • 功能三:用户从键盘输入高频词输出的个数k,运行程序统计功能,可按文本中词频数降序显示前k个单词的词频及单词;
  • 功能四:统计出文本中所有单词的数量并将单词输出到文件result.txt中

三.设计与实现

  • 该程序中通过count.java来实现文本的单词统计功能,指定单词的统计及将单词输出到文件result.txt中;
  • 在设计程序的读入任意英文文本的设计中使用bufferedreader,其作用是从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取;
    BufferedReader br = new BufferedReader(new FileReader("test.txt"));
    bufferedwriter:将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入;

四.测试运行

程序运行结果如下图所示:

  • 单词总个数为:
  • 单词出现频数为:

  • 指定查找单词个数为:

五.代码片段

  • 单词的词频统计
Map<String, Integer> wordsCount = new TreeMap<String, Integer>(); // 存储单词计数信息,key值为单词,value为单词数
for (String li : lists) {if (wordsCount.get(li) != null) {wordsCount.put(li, wordsCount.get(li) + 1);} else {wordsCount.put(li, 1);}
  • 指定单词进行查找
String f = find.next();String word="";int index=1;int value=0;for (Map.Entry<String, Integer> entry : list) {if(entry.getKey().equals(f)){//word=entry.getKey();value=entry.getValue();index=1;break;}else{index=0;}}if(index==1){System.out.println("所查询的单词"+word+"出现的次数为:"+value);  }else{System.out.println("对不起没有查询到该单词!");}

六.总结

  • 这次的实验看似是一个简单的个人项目,但是对于编程基础薄弱的我来说是一个巨大的挑战。在刚开始看到作业题目时,我认真分析了一下题目要求,大概明白程序所要实现的功能,但是对于具体的实现我毫无头绪,不知道该如何下手。所以我在前期搜集了许多关于词频统计的资料,尝试着去理解其中类各函数的作用 ,java的语法结构,类的定义等。由于我能力有限,所以没有完全按照老师要求实现上述每一项功能。 一个软件的设计前期要认真进行需求分析,部署好每一步,为软件的设计做好充分的准备,其次是要有一定的编程基础。通过这次的实验,我感触颇深,所以在以后的学习中,我要认真学习编程,一点一点的去弥补自己的不足,虽然学习一门语言不是一天两天就能够学会的,但我相信每天学习一点总会有进步的。

七.PSP

任务内容 计划完成时间(min) 实际完成时间
计划 10 15
规划工作步骤 15 20
开发 200 240
需求分析 10 12
文档生成 10 15
设计复审 10 13
代码规范 10 10
具体编码 120 140
代码复审 10 13
测试 5 8
报告 15 20
测试报告 5 6
计算报告量 5 5
总结 10 8

转载于:https://www.cnblogs.com/zhangzhongtao/p/10548815.html

实验二 词频统计软件项目报告相关推荐

  1. 201671010456-张琼 实验二 词频统计软件项目报

    一.需求分析 1.程序要能够读入英文文本,并且要求此文本不能为空. 2.程序能容纳的英文单词要在10万以上. 3.程序要能输入想查找的一个或者多个英文单词,并且统计出它出现的次数,并且把它的统计结果以 ...

  2. 201671010411+巩定定+词频统计软件项目报告

    课程名 软件工程 实验二 词频统计软件项目报告 词频(TF) 是一个词语出现的次数除以该文件的总词语数. 实验目的 (1)掌握软件项目个人开发流程. (2)掌握Github上发布软件项目的操作方法. ...

  3. 201671030128+词频统计软件项目报告

    一.需求分析 根据实验二 软件工程个人项目的要求本次软件项目的需求有以下几点: 1.程序可读入任意英文文本文件,该文件中英文词数大于等于1个,程序需要很壮健,能读取容纳英文原版<哈利波特> ...

  4. 201671030125+词频统计软件项目报告

    项目 内容 这个作业属于哪个课程? 2016级计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里? 实验二 软件工程个人项目 我在这个课程的目标是? 按时完成老师给的任务,复习JAVA ...

  5. 201671030130+词频统计软件项目报告

    (一)需求分析 根据实验二 软件工程个人项目的要求该软件项目的基本功能要求如下: 1.程序可读入任意英文文本文件,该文件中英文词数大于等于1个. 2.程序需要很壮健,能读取容纳英文原版<哈利波特 ...

  6. 201671010403 陈倩倩 词频统计软件项目报告

    一.需求分析 一个英文文本词频统计的软件开发,其基本需求有: 1.程序可读入任意英文文本文件,该文件中英文词数大于等于1个. 2.程序需要很壮健,能读取容纳英文原版<哈利波特>10万词以上 ...

  7. 201671010417 金振兴 词频统计软件项目报告

    1.需求分析 按照<构建之法>第2章中2.3所述PSP流程,使用JAVA编程语言,独立完成一个英文文本词频统计的软件开发. .程序可读入任意英文文本文件,该文件中英文词数大于等于1个. . ...

  8. 201671010433 | 词频统计软件项目报告

    1.需求分析 使用JAVA编程语言,独立完成一个英文文本词频统计的软件开发.软件基本功能要求如下: 1.程序可读入任意英文文本文件,该文件中英文词数大于等于1个. 2.程序需要很壮健,能读取容纳英文原 ...

  9. 201671010444 夏向明 词频统计软件项目报告

    该项目实施过程主要包括以下7部分. 一.需求分析 1.程序需要读入至少一个词,可读入任意英文文本. 2.至少可以统计10万词及以上的文本. 3.用户可以同时查询多个单词的统计,并显示出其个数和柱状图. ...

最新文章

  1. 如何选择合适的损失函数,请看......
  2. django创建验证码
  3. Spring Cloud Config配置中心的使用
  4. CodeForces - 1485E Move and Swap(树形dp)
  5. Python对文件的操作(转)
  6. saltstack-部署
  7. python遍历循环中的遍历结构可以是什么_(一)Python入门-4控制语句:06for循环结构-遍历各种可迭代对象-range对象...
  8. 云麦体脂秤华为体脂秤_华为、小米和有品体脂秤哪个品牌好?三款智能体脂秤横评结果排行...
  9. linux系统下tar打包压缩命令的使用总结
  10. nginx html目录 404 盘符_nginx配置场景分析 location /
  11. 简述线程、程序、进程的基本概念。以及他们之间关系是什么?
  12. C#使用IHttpModule接口修改http输出的方法浅谈
  13. iOS中NSArray的过滤
  14. 传智播客ajax视频教程 百度云,传智播客AJAX视频资料分享
  15. html音乐播放器怎么有黑边框,播放不能满屏有黑边怎么办,怎么剪切视频黑边,剪切黑边...
  16. 叠氮-二乙二醇-羟基Azido-PEG2-alcohol139115-90-5
  17. 群论:群的定义与阿贝尔群
  18. 软件开发的非功能性需求
  19. 模拟动态登录,获取cookie和图片验证码登录(AcFun和豆瓣)
  20. 服务细分--服务电商的发展趋势与未来!

热门文章

  1. iStat Menus mac中文
  2. 黄金斗士原生android,联想黄金斗士S8 (S898T+)官方固件rom系统刷机包
  3. die查壳工具 使用教程
  4. python五子棋算法_python实现简单五子棋游戏
  5. win10计算机磁盘图标,老司机帮你win10系统更改本地磁盘图标的修复方案
  6. 为什么扁鹊被称为“神医”?
  7. 黑马程序员-JAVA.IO-字符集编码问题
  8. Linux中断申请之request_threaded_irq
  9. c#连接扫描仪,操作扫描仪
  10. DACE- a matlab Kriging toolbox