系统分析与设计——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. 简述瀑布模型.增量模型.螺旋模型(含原型方法)的优缺点. 瀑布模型 优点: 定义了软件开发基本流程与活动. 为项目提供了按阶段划分的检查点. 当前一阶段完成后,只需关注后续阶段. 缺点: ...
随机推荐
- DOM节点中获取文本易混淆的属性
DOM 节点中对于获取文本易混淆的属性,innerText, innerHTML, outerHTML, textContent, nodeValue. 一个实例: <!DOCTYPE html ...
- canvas抛物线运动demo
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- BZOJ 1041 圆上的整点 数学
题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1041 题目大意:求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整 ...
- (九)Linux查看用户登录的命令
用户登录查看命令 w 含义:就这么简单,一个字母w就是一个命令.查看登录用户信息. 输出的结果的含义: USER 登录的用户名 TTY 登录终端 FROM 从哪个I ...
- 组合测试(Combinatorial Test)/配对测试 (pairwise)
组合测试方法:配对测试实践 实施组合测试 常用的Pairwise工具集:http://www.pairwise.org/tools.asp 成对测试(Pairwise Testing)又称结对测试.两 ...
- I、Q信号是如何产生的,I、Q信号复用的作用
接收机在中频部分实现模数变换和采样,采样后的信号和数字域的同频相乘,就可以得到基带的I.Q分量.在无线接口传输时,每一种使用特定的载波频率.码(扩频码和扰码)以及载波相对相位(I或Q)的信道都可以理解 ...
- [转]对象映射类AutoMapper的使用
由于原文太长了,此处就直接贴上原文的超链接,大家自行学习. codeproject中的一篇文章: AutoMapper
- Dubbo实践(十七)telnet
telnet的介绍可以参看<java网络编程3>中有一段介绍telnet,我们可以理解为,telnet命令是通过socket协议与服务器端通信.Dubbo提供了telnet命令去查看服务功 ...
- spring框架中beans.xml文件报错XmlBeanDefinitionStoreException
第一次构建spring,实现简单的注入方式,就发生了beans.xml文件报错,报错信息如下图 org.springframework.beans.factory.xml.XmlBeanDefinit ...
- 轻量ORM-SqlRepoEx (十六)最佳实践之Dapper(2)
简介:SqlRepoEx是 .Net平台下兼容.NET Standard 2.0人一个轻型的ORM.解决了Lambda转Sql语句这一难题,SqlRepoEx使用的是Lambda表达式,所以,对c#程 ...