WordCount作业修改
需求说明
基本需求
功能说明
PSP
代码实现
字符总数查询
单词数查询
行数查询
总结
一、需求说明
1、基本需求
WordCount的需求可以概括为:对程序设计语言源文件统计字符数、单词数、行数,统计结果以指定格式输出到默认文件中,以及其他扩展功能,并能够快速地处理多个文件。
2、功能说明
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
3、PSP表格
PSP2.1 PSP阶段 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 10 10
· Estimate · 估计这个任务需要多少时间 10 10
Development 开发 180 340
· Analysis · 需求分析 (包括学习新技术) 5 20
· Design Spec · 生成设计文档 5 10
· Design Review · 设计复审 (和同事审核设计文档) 10 15
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) 10 5
· Design · 具体设计 15 20
· Coding · 具体编码 120 240
· Code Review · 代码复审 5 15
· Test · 测试(自我测试,修改代码,提交修改) 10 15
Reporting 报告 30 37
· Test Report · 测试报告 10 17
· Size Measurement · 计算工作量 10 10
· Postmortem & Process
Improvement Plan · 事后总结, 并提出过程改进计划 10 10
合计 220 387
二、代码实现
1、文件中字符数查询实现
```
int input_file(File s)
{
try
{
FileReader text = new FileReader(s);//读取文件
int inByte;
int i=0;
do
{
inByte =text.read();//按字节读取文件
if(inByte!=-1)
{
char_arr[i++]=((char)inByte);//将文件中的字符赋予数组
}
} while(inByte!=-1);
text.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//定义长度length,从零开始每次自增1,直到char_arr[i]不为'*',此时length即为字符数
for(length=0;char_arr[length]!='*';length++)
{
}
return length;
}
```
2、单词数查询功能
```
int count_Wsum()
{
int word_sum=0;
int index=0;
for(int i=0;i<length;i++)
{
//此处考虑到英文写作中标点符号后会留一个空格,所以需要将多加的标点符号个数减去
if(char_arr[i]==','||char_arr[i]=='.'||char_arr[i]=='!'||char_arr[i]=='?'||char_arr[i]==';'||char_arr[i]==':')
{
word_sum++;
index++;
}
if(char_arr[i]==' ')
{
word_sum++;
}
}
word_sum-=(index-1);
return word_sum;
}
```
在实现查询单词数是,我认为如果文件时按照英文写法的话,每个标点符号后会加一个空格,所以按照每出现一次标点符号以及空格后,单词数+1,然后要减去多加的标点数,所以我设置了一个index,故单词总数为word_sum-=(index-1)。
3、返回行数
```
int count_line(File file)
{
BufferedReader br=null;
int line =0;
String str="";
StringBuffer sb=new StringBuffer();
try {
br=new BufferedReader(new FileReader(file));
while((str=br.readLine())!=null)
{
sb.append(str);
line++;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally
{
if(br!=null)
{
try {
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return line;
}
```
三、总结
这是我第一次使用博客园进行学习,感觉新奇的同时也会觉得烦躁,因为我有时会产生“为什么非要用这东西来进行教学和学习,麻烦”的想法。但是,我想通过博客的方式来进行学习可能会有一种不一样的效果呢也说不定。通过这次作业,我也觉得这样的方式挺新奇的,认真完成作业的话,一定会收益良多。
WordCount作业修改的更多相关文章
- 自动化测试工具(基于WordCount作业)
本自动化测试的程序用于自动化测试WordCount作业,采用Java开发(基于jdk1.8+),基于Maven来管理项目. 支持的语言和开发进度 语言 进度 Java 已测试并投入运行 C++ 开发完 ...
- wordcount作业
搭档:201631062427,201631062627 代码地址:https://gitee.com/oyyyyyy/wordcount 作业地址: 一: 代码互审情况 我们采用的都是c语言的方式完 ...
- WordCount作业提交到FileInputFormat类中split切分算法和host选择算法过程源码分析
参考 FileInputFormat类中split切分算法和host选择算法介绍 以及 Hadoop2.6.0的FileInputFormat的任务切分原理分析(即如何控制FileInputForm ...
- 作业---修改haproxy配置文件
#查询 f=open("C:\\aaaaaaaaaaaaa\\haproxy.txt", "r", encoding="utf-8") ha ...
- 对wordcount单词字母部分的修改
原始代码: int s; s = ch; switch (s) { case 'a':letter[0]++; break; case 'b':letter[1]++; break; case 'c' ...
- 软件测试第二周个人作业:WordCount
github地址:https:/github.com/muzhailong/wc.git 第一次写博客很不容易,也算是一个好的开始吧. 1. 个人作业要求 作业简述:根据WordCount的需求描 ...
- JobClient学习------作业提交与初始化
public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); ...
- MapReduce调度与执行原理之作业提交
前言 :本文旨在理清在Hadoop中一个MapReduce作业(Job)在提交到框架后的整个生命周期过程,权作总结和日后参考,如有问题,请不吝赐教.本文不涉及Hadoop的架构设计,如有兴趣请参考相关 ...
- WordCount结对项目
合作者:201631062124,201631062423 代码地址:https://gitee.com/yryx/WordCount 作业地址:https://edu.cnblogs.com/cam ...
随机推荐
- ASP.NET Core身份认证服务框架IdentityServer4(2)-整体介绍
一.整体情况 现代应用程序看起来更像这个: 最常见的相互作用: 浏览器与Web应用程序的通信 Browser -> Web App Web应用程序与Web API通信 基于浏览器的应用程序与We ...
- vue的router-link传参问题
一般来说,可以通过查询字符串的方式将参数传过去,方法如下: <router-link :to="{path:'/Detail', query:{ name: id }}"&g ...
- 上传文件报错--Unable to find 'struts.multipart.saveDir' property setting.
struts2 上传文件时,有时候会报这个错误. Unable to find 'struts.multipart.saveDir' property setting. Defaulting to j ...
- 使用Domain-Driven创建Hypermedia API
在现实中我们会遇到各种各样的复杂场景,"There is not a right way" 用来描述API的设计方法再合适不过了,没有一种API设计方式可以应对所有的场景.区别于& ...
- LeetCode算法扫题系列19
原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9104677.html LeetCode算法第19题(难度:中等) 题目:给定一个链表,删 ...
- vmware vcsa-6.5 网络架构之虚拟机的标准交换机
一.配置虚拟机网络 1.概述(esxi 比workstation,vmware server,网络功能更强大) workstation和vmware server每块物理网卡可以给多个虚拟机使用,多个 ...
- pxe+http+kickstart实验原理
1.说明 所谓的PXE是Preboot Execution Environment的缩写,字面上的意思是开机前的执行环境. 要实现pxe,至少需要3个服务 2.流程 注意:全部用的udp封装 1)cl ...
- Asp.Net 之 Web.config 配置文件详解
在asp.net中配置文件名一般默认是web.config.每个web.config文件都是基于XML的文本文件,并且可以保存到Web应用程序中的任何目录中.在发布Web应用程序时web.config ...
- Try Catch 嵌套问题
程序错误 问题描述: 在一个事物中,插入两张表数据,但是第一个成功,第二个失败了,没有起到所谓的事物的功能,这让我百思不得其解 问题所在: 本质上其实报错了,但是错误被吃掉了,具体来说,就是 try ...
- 所有人都可以是开发人员——《Office 365开发入门指南》视频教程即将上市
今天是春节假期的最后一天,在这里给全国的朋友们拜个晚年,祝大家身体健康,晚年幸福啊.这个春节大家过的怎么样啊,我自己是在老家过的年,家乡的年味还是比较浓的,也再次感谢朋友圈的大家给我看了各地的风光 ...