‘’github链接:https://github.com/coolzero2/softwaretest.git
补充说明
关于下面贴代码的时候第6.3条,函数传入的参数是一个动态数组arraylist。实际上,这是因为*在myeclipse中是通配符,在ecl自带的run configurations中输入路径比如“d:/*.txt”,会自动检索当前路径下所有符合条件的文件。但是在CMD中则不会自动检索。如果按照6.3的代码,写出的程序打包成exe后是没办法正确运行的。但是这也算是学习到了一些知识,此处就不再删去了。正确的代码将会在本文的最末贴出。
另外关于指令输入的顺序规定,主要是根据老师给出的白盒测试中的那几个例子来的,这也应用到了judge的逻辑判定中。最终正确顺序:-w,-s,-a,-c,-l,-* 输入文件 -e 停用词表 -o 输出文件
第一次写博客,一方面熟悉一下博客的相关操作,另一方面交一下作业。
本程序最大的缺点应该就是全局变量太多了吧(10+个),这样的程序安全性应该会受到影响;
其次就是代码有些繁琐。
要求提交的时间太紧张,先这样凑合了。以后有时间修改一下。
首先说明各种指令的功能:
-a:统计文件中的代码行、空行、注释行;
-c:统计文件中的字符数,不包括换行符;
-w:统计文件中的单词数;
-l:统计文件的行数;
-e:当使用该指令时,指定停用词表,统计文件中的单词数时不再统计停用词表中的内容。
-s:使用该指令时,指定的输入文件应该是一个路径,统计的信息是路径下所有符合要求的文件的信息;当文件只有一个时,其实看做一个特例(也就是上面所说的单纯统计一个文件)。
-o:使用该指令时,指定输出文件,用来保存统计输入文件后输出的信息。
思考的思路
其实也很简单。这个软件的功能就是用户输入了一组信息,在信息输入的格式正确的情况下,将会输出相关信息。编写这个程序可以分为两点:1.分析用户输入的内容。2.根据分析,执行相应功能。
第2点需要再进行细化。
PSP表格
PSP2.1表格
PSP2.1
PSP阶段
预估耗时
(分钟)
实际耗时
(分钟)
Planning
计划
30
10
· Estimate
· 估计这个任务需要多少时间
20
10
Development
开发
480
500
· Analysis
· 需求分析 (包括学习新技术)
40
40
· Design Spec
· 生成设计文档
60
30
· Design Review
· 设计复审 (和同事审核设计文档)
60
30
· Coding Standard
· 代码规范 (为目前的开发制定合适的规范)
0
0
· Design
· 具体设计
50
30
· Coding
· 具体编码
600
500
· Code Review
· 代码复审
60
120
· Test
· 测试(自我测试,修改代码,提交修改)
120
100
Reporting
报告
50
120
· Test Report
· 测试报告
60
120
· Size Measurement
· 计算工作量
5
5
· Postmortem & Process Improvement Plan
· 事后总结, 并提出过程改进计划
5
5
合计
下面上代码。
1.判断用户输入的信息
这里是各种指令对应的flag,逻辑关系依照作业要求设置。为true的时候代表实现相应功能。
private static voidjudge(String str) {//TODO Auto-generated method stub
if(str.equals("-s")&&s_flag==false){
s_flag=true;
}else if(str.equals("-*")&&star_flag==false){
star_flag=true;
c_flag=true;
w_flag=true;
l_flag=true;
a_flag=true;
}else if(str.equals("-a")&&a_flag==false){
a_flag=true;
}else if(str.equals("-c")&&c_flag==false){
c_flag=true;
}else if(str.equals("-w")&&w_flag==false){
w_flag=true;
}else if(str.equals("-l")&&l_flag==false){
l_flag=true;
}else if(file_flag==false)//还没有指定输入文件