系统分析与设计——WordCount
成果:
https://gitee.com/ZMLJZ/codes/0k19q4upgmrfde265l7vx36
作业要求:
根据WordCount的需求描述,先编程实现,再编写单元测试,最后撰写博客。每个同学独立完成,至少实现以下需求说明中的基本功能。
WordCount需求说明:
WordCount的需求可以概括为:对程序设计语言源文件统计字符数、单词数、行数,统计结果以指定格式输出到默认文件中,以及其他扩展功能,并能够快速地处理多个文件。
基本功能:
wc.exe -c file.c //返回文件 file.c 的字符数
wc.exe -w file.c //返回文件 file.c 的单词总数
wc.exe -l file.c //返回文件 file.c 的总行数
wc.exe -o outputFile.txt //将结果输出到指定文件outputFile.txt
PSP表格:
|
P2.1 |
PSP阶段 |
预估耗时 (分钟) |
实际耗时 (分钟) |
|
Planning |
计划 |
10 |
10 |
|
Estimate |
估计这个任务需要多少时间 |
15 |
20 |
|
Development |
开发 |
120 |
100 |
|
· Analysis |
· 需求分析 (包括学习新技术) |
5 |
6 |
|
· Design Spec |
· 生成设计文档 |
5 |
6 |
|
· Design Review |
· 设计复审 (和同事审核设计文档) |
5 |
5 |
|
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
10 |
8 |
|
· Design |
· 具体设计 |
15 |
10 |
|
· Coding |
· 具体编码 |
120 |
150 |
|
· Code Review |
· 代码复审 |
20 |
15 |
|
· Test |
· 测试(自我测试,修改代码,提交修改) |
20 |
20 |
|
Reporting |
报告 |
10 |
10 |
|
· Test Report |
· 测试报告 |
10 |
15 |
|
· Size Measurement |
· 计算工作量 |
10 |
5 |
|
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
20 |
15 |
|
合计 |
405 |
395 |
解题思路:
读取文件,然后根据逗号,空格,等符号将文件内容分离,遍历后将统计结果存入Count对象内,然后将统计结果写入txt文件。
最后将java代码转化成exe文件。
类图:

代码说明:
读取C语言文件,创建WordCount类并将文件地址传入
//读入test.c文件
String inputFile = "D:\\test\\test.c";
WordCount wc = new WordCount();
wc.doCount(inputFile);
根据传入的C语言文件进行处理,并统计字符数,单词数和行数,写入Count对象
public void doCount(String inputFile) throws IOException {
String txt = "";
String[] buffer;
File dir = new File(inputFile);
BufferedReader bf = new BufferedReader( new FileReader(dir) );
while( (txt = bf.readLine()) != null ){
buffer = txt.split(", | |\t |\n");//根据字符切分
for(int i = 0 ; i < buffer.length ; i++){
if( !buffer[i].equals(""))
count.setWordNumber( count.getWordNumber()+1 );//统计单词数
}
count.setLineNumber( count.getLineNumber()+1 );//统计行数
count.setCharNumber( count.getCharNumber() + txt.length() );//统计字符数
}
bf.close();
}
根据Count内存的统计结果,将结果写入txt文件
//将结果写入output.txt
File resultFile = new File("D:\\test\\output.txt");
resultFile.createNewFile(); BufferedWriter out = new BufferedWriter( new FileWriter(resultFile) );
out.write("字符数:"+wc.getCount().getCharNumber());
out.newLine();
out.write("单词数:"+wc.getCount().getWordNumber());
out.newLine();
out.write("行数:"+wc.getCount().getLineNumber()); out.flush();
out.close();
测试实际过程:(用例+运行结果截图)
用例一:


用例二:


用例三:


用例四:


用例五:


用例六:


用例七:


用例八:


用例九:


用例十:


参考文献连接:https://blog.csdn.net/qq_28718481/article/details/78848191
系统分析与设计——WordCount的更多相关文章
- 系统分析与设计个人作业:WordCount
本次作业gitee地址:https://gitee.com/ackary/WordCount 一.项目简介 1.基础功能 基础功能部分主要实现的功能是统计一个程序设计语言源文件的字符数.单词数.行数, ...
- FPGA最小系统分析与电路设计
<FPGA最小系统分析与电路设计> 部分节选自<FPGA应用开发入门与典型.pdf > FPGA最小系统包括:FPGA芯片.下载电路.外部时钟.复位电路和电源. 如果使用NIO ...
- 文献综述十六:基于UML的中小型超市管理系统分析与设计
一.基本信息 标题:基于UML的中小型超市管理系统分析与设计 时间:2016 出版源:Journal of Xiangnan University 文件分类:uml技术系统的研究 二.研究背景 开发一 ...
- 系统分析与设计lesson6
| 分类 作业 | 1.用例建模 a. 阅读 Asg_RH 文档,绘制用例图. 按 Task1 要求,请使用工具 UMLet,截图格式务必是 png 并控制尺寸 b. 选择你熟悉的定旅馆在线服务系统 ...
- 系统分析与设计结对项目——WordCount
结对项目完成WordCount 合作者:201631062507 201631062526(学号) 代码地址:https://gitee.com/WordCountMC/WordCountTeam ...
- WordCount系统分析与设计作业
Gitee项目地址 https://gitee.com/gitdq/homework psp表 PSP2.1 PSP阶段 预估耗时 (分钟) 实际耗时 (分钟) Planning 计划 10 10 · ...
- 奖学金评分系统(系统分析与设计版与Delphi实现代码)
一.系统规划 1.1 项目背景介绍 在奖学金评比过程中,学生综合测评是学校普遍采用的评比手段.对学生实施综合素质测评的目的在于正确评价学生的综合素质,为评奖学金提供依据,实现学生教育管理工作的标准化. ...
- 系统分析与设计 homework2
1. 简述瀑布模型.增量模型.螺旋模型(含原型方法)的优缺点. 瀑布模型 优点: 降低了软件开发的复杂度,提高软件开发过程中的透明性,提高软件开发的可管理性. 为项目提供了按阶段划分的检查点. 当前一 ...
- 系统分析与设计HW2
简答题 1. 简述瀑布模型.增量模型.螺旋模型(含原型方法)的优缺点. 瀑布模型 优点: 定义了软件开发基本流程与活动. 为项目提供了按阶段划分的检查点. 当前一阶段完成后,只需关注后续阶段. 缺点: ...
随机推荐
- mysql 聚集和非聚集索引 解析
一.聚集索引(聚簇索引) 1. 什么是聚集索引? 比如要查找'hello',则直接找内容为hello的行,我们把这种正文内容本身就是一种按照一定规则排列的目录称为“聚集索引”. 聚集索引的叶子节点 ...
- 1968. [AHOI2005]约数研究【数论】
Description Input 只有一行一个整数 N(0 < N < 1000000). Output 只有一行输出,为整数M,即f(1)到f(N)的累加和. Sample Input ...
- 2、Android-UI(RecyclerView)
2.6.滚动控件-RecylerView ListView虽然使用的效果很好但是也是有缺点的 不使用一些技巧来提升它的运行效率,性能就非常差 扩展性也不是很好 只能实现数据的纵向滚动效果 实现横向滚动 ...
- Emgu学习之(五)——图像模糊处理
Visual Studio Community 2015 工程和代码:http://pan.baidu.com/s/1Qia0Q 内容 在这篇文章中将提到以下内容: 中值模糊 高斯模糊 图像模糊能有效 ...
- textarea多行文本框自适应高度
<script src="https://cdn.bootcss.com/jquery/1.8.1/jquery.js"></script> <scr ...
- Linux API fork 子进程 创建 & 无名管道通信
#include<unistd.h> #include<stdio.h> int main() { ]; ]; pipe(filedes); printf("my p ...
- Kafka个人总结
Kafka 应对场景:消息持久化.吞吐量是第一要求.状态由客户端维护.必须是分布式的.Kafka 认为 broker 不应该阻塞生产者,高效的磁盘顺序读写能够和网络 IO 一样快,同时依赖现代 OS ...
- UML架构设计师必备神器
UML-架构设计师必备神器 做过Java开发的一定都听过UML,也都能感觉到它的重要性.由其是在网上搜索一些高级技术介绍,写的好的.阅读量高的.让初.中级程序员容易看懂的.思路清晰的文章一定有UML类 ...
- 转:Sql Server中清空所有数据表中的记录
如果要删除数据表中所有数据只要遍历一下数据库再删除就可以了,清除所有数据我们可以使用搜索出所有表名,构造为一条SQL语句进行清除了,这里我一一给各位同学介绍. 使用sql删除数据库中所有表是不难的 ...
- Linux查看当前登录用户并踢出用户
1.查看当前登录用户 [wilsh@lcl ~]$ whatis w w (1) - Show who is logged on and what they a ...