系统分析与设计——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. 简述瀑布模型.增量模型.螺旋模型(含原型方法)的优缺点. 瀑布模型 优点: 定义了软件开发基本流程与活动. 为项目提供了按阶段划分的检查点. 当前一阶段完成后,只需关注后续阶段. 缺点: ...
随机推荐
- kernel3.13 针对 Vmware安装存在的问题解决
vthread-3| W110: Failed to build vmnet. Failed to execute the build command VMware module patches an ...
- android--简单的电话拨号功能
方法一. 1.创建一个callphone项目 2.在string.xml文件中添加text名称的配置
- UIView 中 hidden、alpha、clear color 与 opaque 的区别
透明度与图层混合相关,影响到图片绘制的效率. hidden 此属性为 BOOL 值,用来表示 UIView 是否隐藏.关于隐藏大家都知道就是让 UIView 不显示而已,但是需要注意的是: 当前 UI ...
- 关于c++ list容器的操作摸索
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/chaoweilanmao/article/details/30793859 #include< ...
- 6.7 块管理器BlockManager
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreem ...
- Spring(十)之自定义事件
编写自定义事件的简单流程如下: (1)编写CustomEvent.java package com.tutorialspoint; import org.springframework.context ...
- J2EE从下载到配置成功
1,首先在www.oracle.com网站下载JDK 2 3 4,可以根据自己的需要下载相应的JDK 5,在安装的过程中要将JDK的安装路径和JRE的安装路径安装在不同文件夹中以示区别,例如 6,配置 ...
- C# - 静态类和静态构造函数
一个类只能有一个静态构造函数,该构造函数不能有访问修饰符,不能带任何参数,不能直接调用,只能在: 1 创建包含静态构造函数的类实例时 2 访问包含静态构造函数的静态成员时 会先调用静态构造函数,无论创 ...
- PAT——1048. 数字加密
本题要求实现一种数字加密方法.首先固定一个加密用正整数A,对任一正整数B,将其每1位数字与A的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对13取余——这里用J代表10.Q代表11.K代 ...
- CodeForces - 999D Equalize the Remainders (模拟+set)
You are given an array consisting of nn integers a1,a2,…,ana1,a2,…,an , and a positive integer mm . ...