关键词:
一,github地址
https://github.com/lc-xie/WordCount
二,PSP表格
|
三,思路
- 先将基本功能实现,再考虑扩展功能
- 实现WordCountTool工具类,这个类用于计算各种数值,将结果写入文件
- 实现命令行参数解析
四,程序的实现过程
程序只实现了基本功能,包含两个类,一个Main类和一个工具类。在Main类中获取输入,并将数据传入工具类进行计算,工具类有两个函数,一个用于计算单词数、行数和字符数,一个用于输出结果到文件。
五,代码
1、main函数
第一步获取目标文件的地址
第二步获取操作序列
第三步获取导出结果的文件地址,若不导出则直接回车
第四步调用工具类进行计算
import java.io.File; import java.util.Scanner; public class Main public static void main(String[] args) Scanner scanner=new Scanner(System.in); System.out.print("请输入目标文件地址:"); String filePath=scanner.nextLine(); System.out.print("请输入操作需求(以空格隔开,如:c l):"); String[] charArr=scanner.nextLine().split(" "); System.out.print("若需要输出到本地文件,请输入目标文件地址,不需要请直接回车:"); String outputFile=scanner.nextLine(); File file=new File(outputFile); CountTool countTool=new CountTool(); countTool.count(filePath); for (String c:charArr) switch (c) case "c": System.out.println("字符数:"+countTool.charCount); break; case "l": System.out.println("行数:"+countTool.lineCount); break; case "w": System.out.println("单词数:"+countTool.wordCount); break; default:break; if (file.exists()) countTool.ouputToFile(file,charArr);
2、CountTool类
主要存有三个计算结果的变量和两个函数
/** * Created by stephen on 18-3-19. * 统计文件的单词数,字符数,行数 */ public class CountTool private String aimFile; public int lineCount=0;//行数 public int charCount=0;//字符数 public int wordCount=0;//单词数 .....
3、count()函数
此函数用于计算行数、单词数和字符数
首先判断目标文件是否存在,不存在则输出“目标文件不存在!请重新输入”并返回
然后一行行读文件,每读一行,lineCount++;同时通过s.length计算本行的字符数,再通过遍历循环找到所有的“ ”和‘,"来判断单词数量。
最后关闭文件读写流。
/** * 计算各个值 * @param filePath 代码文件的路径 */ public void count(String filePath) try File file=new File(filePath); if (!file.exists()) System.out.println("目标文件不存在!请重新输入"); return; aimFile=file.getName(); FileInputStream fis=new FileInputStream(file); InputStreamReader isr=new InputStreamReader(fis, "UTF-8"); BufferedReader br = new BufferedReader(isr); String s=""; while ((s=br.readLine())!=null) charCount += s.length();//字符个数就是字符长度 //wordCount += s.split(" ").length;//split() 方法用于把一个字符串分割成字符串数组,字符串数组的长度,就是单词个数 for (int i=1;i<s.length();i++) if ((s.charAt(i)==‘ ‘&&s.charAt(i-1)!=‘ ‘&&s.charAt(i-1)!=‘,‘)|| (s.charAt(i)==‘,‘&&s.charAt(i-1)!=‘ ‘&&s.charAt(i-1)!=‘,‘)) wordCount++; if (s.charAt(i)!=‘ ‘&&s.charAt(i)!=‘,‘&&i==s.length()-1)wordCount++; lineCount++;//因为是按行读取,所以每次增加一即可计算出行的数目 br.close(); isr.close(); fis.close(); catch (IOException e) e.printStackTrace();
4、ouputToFile()函数
将结果输出到指定文件
获取结果后,遍历操作序列,将对应的数据写入
/** * 将数据写入文件 * @param filePath * @param arr 输入的操作数组,‘o‘,‘c‘,‘w‘,‘s‘ * @return */ public boolean ouputToFile(File filePath,String[] arr) BufferedWriter bw=null; try FileWriter fw = new FileWriter(filePath.getAbsoluteFile()); bw = new BufferedWriter(fw); catch (IOException e) e.printStackTrace(); return false; for (String c:arr) switch (c) case "c": try bw.write(aimFile+",字符数:"+charCount+‘\\n‘); catch (IOException e) e.printStackTrace(); return false; break; case "l": try bw.write(aimFile+",行数:"+lineCount+‘\\n‘); catch (IOException e) e.printStackTrace(); return false; break; case "w": try bw.write(aimFile+",单词数:"+wordCount+‘\\n‘); catch (IOException e) e.printStackTrace(); return false; break; default:break; try bw.close(); catch (IOException e) e.printStackTrace(); return true;
六,测试设计过程
明天完善
七,参考文献
http://www.cnblogs.com/linjiqin/archive/2011/03/23/1992250.html
软件测试第二周作业wordcounter(代码片段)
Github项目地址WordCounteringithubPSP(PersonalSoftwareProcess)PSP2.1PSP阶段预估耗时实际耗时(分钟)实际耗时(分钟)Planning计划1017Estimate估计这个任务需要多少时间510Development开发545650-Analysis-需求分析(包括学习新技术)120160-DesignSpec-生... 查看详情
软件质量与测试第二周作业wordcount(代码片段)
第二周作业WordCount一、Github地址https://github.com/llag9810/Software-Quality-and-Testing-Wordcount二、PSP2.1 表格PSP2.1PSP阶段预估耗时(分钟)实际耗时(分钟)Planning计划 60 25·Estimate·估计这个任务需要多少时间 30 15Dev 查看详情
软件质量测试第二周wordcount作业(代码片段)
一.github地址https://github.com/WKX121/WC二.PSPPSP表格PSP2.1PSP阶段预估耗时(分钟)实际耗时(分钟)Planning计划 25 25·Estimate·估计这个任务需要多少时间 25 25Development开发300 340·Analysis·需求分析(包括学习新技术)&... 查看详情
软件测试第二周个人作业wordcount程序实现(代码片段)
GitHub地址:https://github.com/Guchencc/WordCount一.PSP表格PSP2.1PSP阶段预估耗时(分钟)实际耗时(分钟)Planning计划 ·Estimate·估计这个任务需要多少时间 300440Development开发 ·Analysis·需求分析(包括学习新技术) 20&n... 查看详情
软件工程网络15第二周作业-提出问题(代码片段)
提出问题快速通读教材《构建之法》,并参照提问模板,提出5个问题。如何提出有价值的问题?请看这个文章:http://www.cnblogs.com/rocedu/p/5167941.html,以及在互联网时代如何提问题。还有这些要点:-在每个问题后面,请说明哪一... 查看详情
20165306课下作业(第二周)
一、教材代码完成情况测试代码链接此代码作用是求和(1~5306)。二、带包的代码编译运行测试代码链接三、课后习题p161.Person.java2.两个,Person.class和Xiti.class代码链接 查看详情
《实时控制软件》第二周作业
首先制定各个变量名称入闸传感器:sensor_in;出闸传感器:sensor_out;起落杆上升:gan.raise();起落杆下降:gan.down();信号灯:light(1为绿,0为红);通行状态:A0为禁止通行,A1为允许通行;竖着写(在状态中判断事件)C代码片段cur_st... 查看详情
第二周作业wordcount(代码片段)
https://github.com/HuangDongPeng/WordCount.git1.1 PSPPSP2.1PSP阶段预估耗时(分钟)实际耗时(分钟)Planning计划 30 30·Estimate·估计这个任务需要多少时间 5h 12hDevelopment开发 2h 4h·Analysis·需求分析(包括学习新技 查看详情
第二周个人作业(代码片段)
1.GitHub地址:https://github.com/YJG1997/wc2.psp表格PSP2.1表格PSP2.1PSP阶段预估耗时(分钟)实际耗时(分钟)Planning计划 60 50·Estimate·估计这个任务需要多少时间 30 20Development开发 60 90·Analysis·需求分析(包括学... 查看详情
第二周个人作业wordcount(代码片段)
一、GitHub地址https://github.com/JasonLiu1105/WordCount二、PSP表格PSP2.1PSP阶段预估耗时(分钟)实际耗时(分钟)Planning计划 20 20·Estimate·估计这个任务需要多少时间 2days 3daysDevelopment开发 1day 1day·Analysis·需求 查看详情
第二周作业wordcount(代码片段)
github项目链接https://github.com/liqia/WordCount1.项目简介对程序设计语言源文件统计字符数、单词数、行数,统计结果以指定格式输出到默认文件中,以及其他扩展功能,并能够快速地处理多个文件。可执行程序命名为:wc.exe,该程序... 查看详情
《实时控制软件设计》第二周作业
状态分析由题目描述,只有两种不同事件,一个是车辆进入,一个是车辆离开,与之对应的传感器信号,起落杆信号,通行灯信号都是一同变化,因此可以简化成两种复合状态。 代码实现 传感器头文件////Createdbyzhuha... 查看详情
第二周作业
先测试车辆的进入与进出,定义升起和落下的杆,通过杆的状态不同亮的灯也不一样,在判断车辆有无出入。代码主函数:#include"./head.h"#include<iostream>usingnamespacestd;intmain(){ GurdSystemgs; &... 查看详情
2017-2018-220179202《网络攻防技术》第二周作业(代码片段)
一、黑客信息袁仁广,中国国家信息安全漏洞库特聘专家,北京奥运会特聘信息安全专家,现任腾讯湛泸实验室负责人。其领衔的360漏洞研究实验室被誉为“东半球最强大的白帽子军团”。他在windows系统方面的造诣,在国内应... 查看详情
软件工程第二周作业----词频统计
实验要求:统计文件中出现过的单词数目,并按数目和字典顺序排序,将结果输出到指定文件中。需要统计单词的文件名从命令行输入。 实验分工:代码编写&测试:张文杰博客编写:朱昱青 实验思路:1.在主函数中... 查看详情
第二周作业一读软件工程
谢谢邹老师给我们带来这么精彩的书,话不多说,强行提问:1.不面向用户的软件,程序员自娱自乐的项目,如何选择开发模式。2.结对编程后,由此可能造成的损失和不了后果由两人承担,具体比例怎么算。3.像微软office办公软... 查看详情
程序语言与编程实践5-;java实操2|第二周作业及思路讲解|基础知识强化考察(代码片段)
Java的第二周作业的思考总结,涉及的只是有static代码块的输出次序,面向对象的编程实战,字符串的拼接等java基本的关键的内容。是这样的,Java这门课没有给线上实验评测平台(我还专门上平台上看了看),第一周作业出得挺... 查看详情
软件工程作业第二周--例行报告
类型任务开始结束中断deltacoding重定向/输入/输出的代码9.16晚上6点9:16晚上八点半--150mincoding文件夹读文件/控制台直接读/整合9.17早上9点9:17晚上七点12点午饭/午睡到4点/晚饭,12点-4点以及五点到五点半330min安装装Git,试... 查看详情