软工作业WordCount
github项目传送门:https://github.com/zzh010/My-wc
一、WC 项目要求
wc.exe 是一个常见的工具,它能统计文本文件的字符数、单词数和行数。这个项目要求写一个命令行程序,模仿已有wc.exe 的功能,并加以扩充,给出某程序设计语言源文件的字符数、单词数和行数。
实现一个统计程序,它能正确统计程序文件中的字符数、单词数、行数,以及还具备其他扩展功能,并能够快速地处理多个文件。
具体功能要求:
程序处理用户需求的模式为:
wc.exe [parameter] [file_name]
基本功能列表:
wc.exe -c file.c //返回文件 file.c 的字符数
wc.exe -w file.c //返回文件 file.c 的词的数目
wc.exe -l file.c //返回文件 file.c 的行数
二、PSP开发耗时
|
PSP2.1 |
Personal Software Process Stages |
预估耗时(分钟) |
实际耗时(分钟) |
|
Planning |
计划 |
60 |
80 |
|
· Estimate |
· 估计这个任务需要多少时间 |
40 |
40 |
|
Development |
开发 |
200 |
250 |
|
· Analysis |
· 需求分析 (包括学习新技术) |
60 |
60 |
|
· Design Spec |
· 生成设计文档 |
60 |
60 |
|
· Design Review |
· 设计复审 (和同事审核设计文档) |
60 |
60 |
|
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
40 |
40 |
|
· Design |
· 具体设计 |
60 |
60 |
|
· Coding |
· 具体编码 |
120 |
120 |
|
· Code Review |
· 代码复审 |
60 |
60 |
|
· Test |
· 测试(自我测试,修改代码,提交修改) |
40 |
40 |
|
Reporting |
报告 |
30 |
30 |
|
· Test Report |
· 测试报告 |
30 |
40 |
|
· Size Measurement |
· 计算工作量 |
30 |
30 |
|
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
20 |
20 |
|
合计 |
910 |
990 |
三、设计实现
readLine每次读取一行
countChar += s.length() 实现字符个数的统计
countword += s.split(" ").length split() 方法用于把一个字符串分割成字符串数组,实现单词个数的统计
countline++ 通过按行读取,所以每次增加一即可计算出行的数目
四、关键代码
public class wordcounter {
public static void main(String[] args) throws Exception {
Scanner input = new Scanner(System.in);
System.out.println("please input path:");
String path = input.next();
int countChar = 0;
int countword = 0;
int countline = 0;
InputStreamReader isr = new InputStreamReader(new FileInputStream(path));
Bufferedreader br = new BufferedReader(isr);
while(br.read()!=-1)
{
String s = br.readLine();
countChar += s.length();
countword += s.split(" ").length;
countline++;
}
isr.close();
System.out.println("char cont "+countChar);
System.out.println("word count "+countword );
System.out.println("line count "+countline);
}
}
五、测试运行
测试文档

测试结果

六 、项目小结
通过本次作业,我了解到了软件工程设计的主要流程和要点,了解到前期对于项目的分析在整个设计的过程中是非常重要的,由于之前对java知识掌握得不够,导致本次作业进度做得比较慢。但是这次作业也重新让我回顾了java知识,对我以后的项目开发起到较大的帮助。本次项目仍有没能实现的扩展功能,希望能够在接下来的过程中不断完善。
软工作业WordCount的更多相关文章
- 软工作业-----Alpha版本第一周小结
软工作业-----Alpha版本第一周小结 Part1.第一周周计划记录 姓名 学号 周前计划安排 每周工作记录 自我打分 yrz(队长) 1417 1.进行任务分析 2.任务分配 ...
- [软工作业]-软件案例分析-CSDN
[软工作业]-软件案例分析-CSDN(app) 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人博客作业-软件案例分析 我在这个课程的目标是 ...
- 【软工作业&思考】关于软工的一些概念性理解暨第一次阅读作业
概述 项目 内容 本次作业所属课程 2019BUAA软件工程 周二班 本次作业要求 第1次个人作业当然,比这个更重要百倍的还是实实在在的思考,这也是标题如此命名的原因 我在本课程的目标 在原有实践经验 ...
- BUAA2020软工作业——提问回顾与个人总结
项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 提问回顾与个人总结 我在这个课程的目标是 进一步提高自己的编码能力,工程能力 这个作业在哪个具体方 ...
- 软工作业No.3--团队作业:甜美女孩出击!
队名:甜美女孩 队员包括: 姓名 学号 身份 曾祎祺 3216005211 队长 邓画月 3216005212 队员 何颖琪 3216005213 队员 梁沛诗 3216005214 队员 梁子君 3 ...
- 软工作业NO.2小学生线上杨永信——四则运算题目生成
项目题目:实现一个自动生成小学四则运算题目的命令行程序 github地址:https://github.com/a249970271/Formula 驾驶员:梁沛诗 副驾驶:曾祎祺 项目说明 自然数: ...
- 软工作业No.1。Java实现WC.exe
网址:https://github.com/a249970271/WC WC 项目要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写一个命令行程序,模仿已有w ...
- 软工作业-wc(Python实现)
GitHub地址:GitHub PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 30 40 · Esti ...
- BUAA2020软工作业(五)——软件案例分析
项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 软件案例分析作业 我在这个课程的目标是 进一步提高自己的编码能力,工程能力 这个作业在哪个具体方面 ...
随机推荐
- 第14篇 PSR-3规范(日志)
1. Specification 1.1 Basics The LoggerInterface exposes eight methods to write logs to the eight RFC ...
- (转)winform下UPD通信的简单应用
本文转载自:http://blog.csdn.net/wanlong360599336/article/details/7557046 先看效果图: 使用UDP的好处就是不需要三次握手,但是缺点就是存 ...
- The java.util.concurrent Synchronizer Framework笔记
这篇笔记是关于 Doug Lea 的 The java.util.concurrent Synchronizer Framework . 原文地址:http://gee.cs.oswego.edu/d ...
- Spring Boot Oauth2
Oauth2是描述无状态授权的协议(授权框架),因为是无状态,所以我们不需要维护客户端和服务器之间的会话. Oauth2的工作原理: 此协议允许第三方客户端代表资源所有者访问受保护资源,Oauth2有 ...
- 【转】用Jmeter进行接口压力测试的步骤
1.双击jmeter.bat 2.右键点击测试规划à添加àThreadsà线程组,此时在测试规划下边显露出来线程组选项.点击该选项,显露出来线程组界面.参变量线程数表达若干个烦请,参变量Ramp-Up ...
- Java-API-Package:java.net百科
ylbtech-Java-API-Package:java.net百科 并非所有系统都支持 IPv6 协议,而当 Java 网络连接堆栈尝试检测它并在可用时透明地使用它时,还可以利用系统属性禁用它.在 ...
- AngularJS:Select
ylbtech-AngularJS:Select 1.返回顶部 1. AngularJS Select(选择框) AngularJS 可以使用数组或对象创建一个下拉列表选项. 使用 ng-option ...
- php根据年月获取当月天数。
function get_day( $date ) { $tem = explode('-' , $date); //切割日期 得到年份和月份 $year = $tem['0']; $month = ...
- 接口规范,js处理json,php返回给ajax的数据格式
ajax异步获取php数据. 一般php会在后台处理请求,并返回结果给前端. 必须是echo的方式,不然ajax获取不到. 返回的类型包括,字符串,数字,json. 最常用的就是json. 返回后,前 ...
- ZedGraph 总论
ZedGraph 总论 ZedGraph 是一个开源的.NET图表类库, 并且全部代码都是用C#开发的.它可以利用任意的数据集合创建2D的线性和柱形图表. ...