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

 

posted @ 2018-09-24 19:49  gyuyue  阅读(379)  评论(0编辑  收藏  举报