Word Count基础功能
Gitte地址:https://gitee.com/gyuyue/WordCount
原作业链接:https://edu.cnblogs.com/campus/xnsy/2018Systemanalysisanddesign/homework/2120
一、PSP表格
PSP2.1 |
PSP阶段 |
预估耗时 (分钟) |
实际耗时 (分钟) |
Planning |
计划 |
15 |
20 |
· Estimate |
· 估计这个任务需要多少时间 |
30 |
30 |
Development |
开发 |
60 |
80 |
· Analysis |
· 需求分析 (包括学习新技术) |
20 |
40 |
· Design Spec |
· 生成设计文档 |
0 |
0 |
· Design Review |
· 设计复审 (和同事审核设计文档) |
30 |
60 |
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
20 |
20 |
· Design |
· 具体设计 |
30 |
50 |
· Coding |
· 具体编码 |
120 |
150 |
· Code Review |
· 代码复审 |
30 |
40 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
60 |
90 |
Reporting |
报告 |
10 |
10 |
· Test Report |
· 测试报告 |
20 |
20 |
· Size Measurement |
· 计算工作量 |
0 |
0 |
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
20 |
30 |
|
合计 |
465 |
640 |
二、需求说明
对程序设计语言源文件统计字符数、单词数、行数,统计结果以指定格式输出到默认文件中,以及其他扩展功能,并能够快速地处理多个文件。
可执行程序命名为:wc.exe,该程序处理用户需求的模式为:wc.exe [parameter] [input_file_name]
三、基础功能命令要求
wc.exe -c file.c //返回文件 file.c 的字符数
wc.exe -w file.c //返回文件 file.c 的单词总数
wc.exe -l file.c //返回文件 file.c 的总行数
四、代码实现(C语言)
1.统计文件中的字符数
1 int Characters(char* name)
2 {
3 FILE *fp;
4 FILE *fpt;
5 int count = 0;
6 char ch;
7 if((fp = fopen(name,"r")) == NULL)
8 {
9 printf("文件打开失败!");
10 exit(0);
11 }
12 while((ch=fgetc(fp)) != EOF)
13 {
14 ++count;
15 }
16 fclose(fp);
17 fpt = fopen("F:/test/outputFile.txt","a+");
18 printf("字符数:%d\n",count);
19 fprintf(fpt,"字符数:%d\n",count);
20 fclose(fpt);
21 return 0;
22 }
2.统计文件中的单词数
1 int Words(char* name)
2 {
3 FILE *fp;
4 FILE *fpt;
5 int count = 0;
6 char buff[Max]={0};
7 int flag = 1;
8 if((fp = fopen(name,"r")) == NULL)
9 {
10 printf("文件打开失败!");
11 exit(0);
12 }
13 while(fscanf(fp, "%s", buff) != EOF)
14 {
15 count++;
16 }
17 fclose(fp);
18 fpt = fopen("F:/test/outputFile.txt","a+");
19 printf("单词数:%d\n",count);
20 fprintf(fpt,"单词数:%d\n",count);
21 fclose(fpt);
22 return 0;
23
24 }
3.统计文件中的行数
1 int Rows(char* name)
2 {
3 FILE *fp;
4 FILE *fpt;
5 int count = 0;
6 char ch;
7 if((fp = fopen(name,"r")) == NULL)
8 {
9 printf("文件打开失败!");
10 exit(0);
11 }
12 while((ch=fgetc(fp)) != EOF)
13 {
14 if(ch == '\n')
15 {
16 ++count;
17 }
18
19 }
20 fclose(fp);
21 fpt = fopen("F:/test/outputFile.txt","a+");//打开统计结果文档
22 printf("总行数:%d\n",count);
23 fprintf(fpt,"总行数:%d\n",count);//将结果写入指定文件中
24 fclose(fpt);
25 return 0;
26
27 }
五、代码测试
1.测试用例一
测试一个空白文档:
直接输入命令-c -w -lc ,outputFile.txt文件中的内容为:
2.测试用例二
测试文档:
输入命令-c file.c; 输入命令-w file.c; 输入命令-l file.c:
输入命令-c -w file.c; 输入命令-c -l file.c; 输入命令-w -l file.c:
输入命令-c -w -l file.c
outputFile.txt文件中的内容为:
3.测试用例三
测试文档:
输入命令-c -w -l file.c,outputFile.txt文件中的内容为:
4.测试用例四
测试文档:
输入命令-c -w -l file.c,outputFile.txt文件中的内容为:
5.测试用例五
测试文档:
输入命令-c -w -l file.c,outputFile.txt文件中的内容为:
6.测试用例六
测试文档:
输入命令-c -w -l file.c,outputFile.txt文件中的内容为:
六、总结
本次项目我是用C语言完成的,当初看到这个项目要求时,感觉不是很难,但是当我写的时候,我发现这里需要用到很多有关文件的知识,因此,我只能先复习以前学的知识,才可以顺利的编程。在填写PHP表格时,估计的跟我实际花费的时间相差还是有点大,可能以前没有约束,也就意识不到这个问题,因此在以后的编程中我会注意一下这方面的问题。
参考文献链接:https://zhidao.baidu.com/question/52409465.html