WordCount
一、 github地址https://github.com/hxxgxq/WordCount
二、 psp表格
|
PSP2.1 |
PSP阶段 |
预估耗时 (分钟) |
实际耗时 (分钟) |
|
Planning |
计划 |
20 |
10 |
|
· Estimate |
· 估计这个任务需要多少时间 |
890 |
1080 |
|
Development |
开发 |
920 |
1120 |
|
· Analysis |
· 需求分析 (包括学习新技术) |
100 |
120 |
|
· Design Spec |
· 生成设计文档 |
40 |
50 |
|
· Design Review |
· 设计复审 (和同事审核设计文档) |
20 |
30 |
|
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
10 |
15 |
|
· Design |
· 具体设计 |
30 |
35 |
|
· Coding |
· 具体编码 |
400 |
550 |
|
· Code Review |
· 代码复审 |
20 |
20 |
|
· Test |
· 测试(自我测试,修改代码,提交修改) |
200 |
300 |
|
Reporting |
报告 |
70 |
60 |
|
· Test Report |
· 测试报告 |
20 |
25 |
|
· Size Measurement |
· 计算工作量 |
10 |
15 |
|
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
40 |
30 |
|
|
合计 |
|
|
三、 解题思路
WordCount需求说明
WordCount的需求可以概括为:对程序设计语言源文件统计字符数、单词数、行数,统计结果以指定格式输出到默认文件中,以及其他扩展功能,并能够快速地处理多个文件。
基本功能返回指定文件中的字符数、单词数、行数。
因为对java十分不熟悉,没有特别好的思路,所以还是决定用比较熟悉的c来写这次的程序。
思路首先想好这是关于文件的操作,那么必然会用到文件的读取与写入,于是回顾了一下关于文件的操作,之后就开始实现基本功能,字符数和行数的统计比较简单,单词数的统计需要思考一下。个人水平有限,对于扩展功能的实现感觉比较困难,于是只做了基本功能。
设计思路:
1、 先实现从指定文件名读取数据的功能
2、 实现读取数据后题目要求的几个功能,统计字符数、行数、单词数。
3、 实现从用户输入中读取目标文件名和输出文件名
4、 将2、3合并。
四、 代码说明
scanf_s("%[^\n]", input, 50);
for (int i = 0; input[i] != NULL; i++)
{
if(input[i] == '-')
if (input[i+1] == 'o')
for (int j = i+1; input[j] != NULL; j++)
{
if (input[j] == ' ')
if (input[j + 1] != ' '&&input[j + 1] != '-')
{
Outfile_name = input + j + 1;
break;
}
}
}
for (int i = 1; input[i] != NULL; i++)
{
if (input[i-1] == ' ')
if (input[i] !=' '&&input[i] !='-')
{
int j = i;
while (input[i] != ' '&& input[i]!=NULL)
{
a[i] = input[i];
i++;
}
flie_name = a + j;
break;
} //获取目标文件名
这部分代码实现的是获取用户输入的源文件名和输出目标文件名。
五、 测试设计过程
测试用例的设计思路,首先测试-c –w –l 分别各自是否能正常运行,然后将其分别和-o组合在急性测试,最后-c –w –l –o一起进行测试。
|
测试编号 |
测试内容 |
用户指令 |
|
1 |
基本字符测试 |
–c test.c |
|
2 |
单词测试 |
-w word.c |
|
3 |
行数测试 |
-l line.c |
|
4 |
字符输出测试 |
-c char.c –o output.txt |
|
5 |
单词输出测试 |
-w word.c –o output.txt |
|
6 |
行数输出测试 |
-l line.c –o output.txt |
|
7 |
全套测试 |
-c –w –l test.c –o output.txt |
浙公网安备 33010602011771号