首页 > 编程语言 > 详细

个人项目wc.exe(c语言实现)

时间:2019-09-25 20:18:22      阅读:114      评论:0      收藏:0      [点我收藏+]

GitHub项目地址:https://github.com/xiaolietao/-/blob/master/wc2.cpp

项目要求:

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

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

 

基本功能列表:   

wc.exe -c file.c     //返回文件 file.c 的字符数

wc.exe -w file.c    //返回文件 file.c 的词的数目 

wc.exe -l file.c      //返回文件 file.c 的行数

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

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

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

注释行:本行不是代码行,并且本行包括注释。

高级功能:(未实现)

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

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

PSP表格:

PSP2.1Personal Software Process Stages预估耗时(分钟)实际耗时(分钟)
Planning 计划  30  30
· Estimate · 估计这个任务需要多少时间  40  40
Development 开发  1200  1200
· Analysis · 需求分析 (包括学习新技术)  300  300
· Design Spec · 生成设计文档  30  40
· Design Review · 设计复审 (和同事审核设计文档)  30  30
· Coding Standard · 代码规范 (为目前的开发制定合适的规范)  30  60
· Design · 具体设计  60  100
· Coding · 具体编码  250  250
· Code Review · 代码复审  30  30
· Test · 测试(自我测试,修改代码,提交修改)  30  30
Reporting 报告  120  120
· Test Report · 测试报告  60  60
· Size Measurement · 计算工作量  10  10
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划  30  30
  合计  2250  2320

 

解题思路:

       1.我对其他语言不是很精通,故而采用比较熟悉的c语言来实现wc.exe相关功能。

       2.充分利用c已有的功能函数,实现过程中遇到问题时上网找资料或请教同学,结合项目要求循序渐进。

设计实现过程:

 

 

技术分享图片

主函数mian()用到了gets函数, strncpy函数读取文件。

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

其他函数用到了文件流指针,strlen函数,fgetc函数,fopen函数,fclose函数来实现。

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

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

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

 

测试文件:

技术分享图片

运行结果:

字符统计:

技术分享图片

单词统计:

技术分享图片

行数统计:

技术分享图片

综合统计:

技术分享图片

个人总结:

通过这次个人项目,我学到了很多东西,从一开始的一头雾水渐渐到知道了Github的使用方法,了解了c语言的一些函数。我也大概了解做一个项目该如何入手,良好的知识储备是完成一个项目的基石,仔细的规划是必不可少的框架。这俩者我都有所欠缺。本次项目的一些函数用法是借鉴网上,规划得也是不尽如意,花费了较多的时间,而且也没有将全部功能实现。我会继续努力,尽可能的扩充自己的知识储备仓库,更加完善地规划学习计划,希望在接下来的项目中取得更大的进步。

 

个人项目wc.exe(c语言实现)

原文:https://www.cnblogs.com/sundance123/p/11562020.html

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