WorkCount C语言实现

  1. GitHub项目地址:https://github.com/onetrue/WordCount
  2. 项目要求

    WordCount.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 的行数 (实现)

    扩展功能

    -a   返回更复杂的数据(代码行 / 空行 / 注释行)

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

    1. C语言通过命令行的模式进行输入参数。

    2. 统计字符数:用fgect()函数对文件中字符逐一取出,若为可显示字符,则字符数加1。
    3. 统计单词数:设置一个标志,当字符为字母时置1表示单词开始,为非字母时置表示结束。
    4. 统计行数:每个换行符加1行,默认有一行起始行,当字符为零时行数为0。
    5. 统计复杂数据:由于每一行只能是空行、代码行或注译行,所有可以同时判断,在同一行里,判断前面最多3个字符,只有少于1个字符为空行,前面两个字符为//为注译行,前面三个字符为(!/)//为注译行,其余为代码行。
  5. 关键代码
    1.计算字符数

    2.计算单词数


    3.计算行数

    4.计算空行,注译行和代码行

    5.main函数

     

  6. 测试数据
    1.空文件

    2.代码文件01

     


     
    3.代码文件02

     

  7.  

    项目小结
    这是软件工程第一次作业,也是第一个且唯一一个个人作业,刚得到题目时觉得这个wc并不复杂,但就是需要新学几个打开文件的函数以及如何从命令行打开带有参数的可执行文件。而我由于至少对项目做了简单的可行行研究而没有对项目整体作分析,导致在实现了基础功能后才发现项目的打开方式与题目不一样,之后很难扩展下去。这使我不得不重写整个代码的架构,相当于又重写了一遍代码,浪费了很多时间和精力,也降低了效率,这让我意识到学习软件工程这门学科的重要性,也终于明白了老师发的PSP工作流程的意义,编写代码前的预估、分析、研究并不是在浪费时间,而是使自己的打码的逻辑性更高、目的性更强,更能提高自己开发的效率。本次实验的另一感悟是自己的编程能力在下降,由于大二学年并没再用c语言使得代码的编写比较陌生,更重要的是自己的算法逻辑不能很好的理清,加之刚开学综测方面很多事要忙时间变得紧起来,使得在完成拓展内容时有点有心无力。最终并没有很好的完成题目提供的所有要求,这是非常遗憾的一点。

posted @ 2018-09-06 23:32  ONETRUE  阅读(244)  评论(0)    收藏  举报