首页 > 编程语言 > 详细

Word Count(C语言)

时间:2020-03-23 22:55:08      阅读:88      评论:0      收藏:0      [点我收藏+]

1.项目地址

  https://github.com/GaoZ-ivy/wordcount

2.项目相关要求

2.1 项目描述

   Word Count
    1. 实现一个简单而完整的软件工具(源程序特征统计程序)。
    2. 进行单元测试、回归测试、效能测试,在实现上述程序的过程中使用相关的工具。
   3. 进行个人软件过程(PSP)的实践,逐步记录自己在每个软件工程环节花费的时间。

2.2 WC 项目要求

wc.exe 是一个常见的工具,它能统计文本文件的字符数、单词数和行数。这个项目要求写一个命令行程序,模仿已有wc.exe 的功能,并加以扩充,给出某程序设计语言源文件的字符数、单词数和行数。

实现一个统计程序,它能正确统计程序文件中的字符数、单词数、行数,以及还具备其他扩展功能,并能够快速地处理多个文件。
具体功能要求:
程序处理用户需求的模式为:

wc.exe [parameter] [file_name]

基本功能列表:

wc.exe -c file.c     //返回文件 file.c 的字符数(已完成)

wc.exe -w file.c    //返回文件 file.c 的词的数目  (已完成)

wc.exe -l file.c      //返回文件 file.c 的行数(已完成)

扩展功能:
    -s   递归处理目录下符合条件的文件。
    -a   返回更复杂的数据(代码行 / 空行 / 注释行)。

空行:本行全部是空格或格式控制字符,如果包括代码,则只有不超过一个可显示的字符,例如“{”。

代码行:本行包括多于一个字符的代码。

注释行:本行不是代码行,并且本行包括注释。一个有趣的例子是有些程序员会在单字符后面加注释:

    } //注释
在这种情况下,这一行属于注释行。

[file_name]: 文件或目录名,可以处理一般通配符。

高级功能:

 -x 参数。这个参数单独使用。如果命令行有这个参数,则程序会显示图形界面,用户可以通过界面选取单个文件,程序就会显示文件的字符数、行数等全部统计信息。

需求举例:
  wc.exe -s -a *.c


返回当前目录及子目录中所有*.c 文件的代码行数、空行数、注释行数。

3.解题思路描述。

  (1)由于对于java等其他语言完全不熟悉,时间限制下决定用c语言完成项目。

  (2)分析题目:要完成计算文本内的字符数、单词数、行数。于是,先通过csdn学习如何用c语言写入文本文档,学习fopen函数的使用。

  (3)统计字符数:当文件打开成功后,读取字符到变量code,只要code不为‘ ’ / ‘\n’ / ‘\t’,num++。

  (4)统计单词数:设置表示状态的变量sign,文件打开成功后,读取字符到变量word,当word为字母sign为1;当word不为字母,则sign变为0,num++;

  (5)统计行数:使用fgets函数,用for循环;

  (6)多次测试,用不同单词不同行数的txt进行测试。

4.设计实现过程。

  (1)设置3个子函数,分别统计字数、单词数、行数。

  (2)设置头文件,在头文件中进行子函数的函数声明。

  (3)在主函数中调用子函数,用switch case函数进行选择。

5.代码说明。

(1)字数统计

技术分享图片技术分享图片

(2)词数统计

技术分享图片

(3)行数统计

技术分享图片

(3)main

技术分享图片

(4)head

技术分享图片

 

6.测试运行。

(1)empty文件

技术分享图片 技术分享图片 技术分享图片 技术分享图片

(2)单字符文件

技术分享图片 技术分享图片 技术分享图片 技术分享图片

(3)单行多字符文件

技术分享图片 技术分享图片 技术分享图片 技术分享图片

(4)多行多字符文件 

技术分享图片 技术分享图片 技术分享图片 技术分享图片

(5)当文件不存在

技术分享图片

 

7.项目小结。结合PSP表格总结项目的成败得失,分享经验,总结教训。

(1)小结:本次个人项目的开发中,发现了自己对c语言仍有许多不会的地方,估计时间的时候把测试的时间估计短了,在实际开发中测试、修改代码、改bug的时间远大于具体编码的时间。在具体开发中很多函数都是当时才学,导致效率有点低,所以平时要多实践,加强编码能力。

(2)PSP表格

 

PSP2.1

Personal Software Process Stages

预估耗时(分钟)

实际耗时(分钟)

Planning

计划

 30

 35

· Estimate

· 估计这个任务需要多少时间

440 

 642

Development

开发

360 

 532

· Analysis

· 需求分析 (包括学习新技术)

120 

150 

· Design Spec

· 生成设计文档

20 

10 

· Design Review

· 设计复审 (和同事审核设计文档)

20 

20 

· Coding Standard

· 代码规范 (为目前的开发制定合适的规范)

20 

25 

· Design

· 具体设计

20 

47 

· Coding

· 具体编码

100 

60 

· Code Review

· 代码复审

30 

40 

· Test

· 测试(自我测试,修改代码,提交修改)

30 

180 

Reporting

报告

50 

75

· Test Report

· 测试报告

30 

50 

· Size Measurement

· 计算工作量

10 

10

· Postmortem & Process Improvement Plan

· 事后总结, 并提出过程改进计划

10 

15 

合计

 

 440

 642

 

Word Count(C语言)

原文:https://www.cnblogs.com/ivygzy/p/12540009.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!