word count

   
这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/computer-science-class3-2018
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/computer-science-class3-2018/homework/11879
这个作业的目标 初步学习Git完成WordCount编程并用PSP记录
作业正文 https://www.cnblogs.com/zhouhuahua/p/14603000.html
参考文献 《构建之法》,csdn
  • 目录:
PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划
• Estimate • 估计这个任务需要多少时间 4天 1900
Development 开发
• Analysis • 需求分析 (包括学习新技术) 30 120
• Design Spec • 生成设计文档 20 20
• Design Review • 设计复审 20 25
• Coding Standar • 代码规范 (为目前的开发制定合适的规范) 30 20
• Design • 具体设计 90 100
• Coding • 具体编码 960 1430
• Code Review • 代码复审 30 45
• Test • 测试(自我测试,修改代码,提交修改) 60 90
Reporting 报告
• Test Repor • 测试报告 20 20
• Size Measurement • 计算工作量 10 10
• Postmortem & Process Improvement Plan • 事后总结, 并提出过程改进计划 20 20
• 合计 1290 1900
  • 3、解题思路描述

WordCount的需求可以概括为:对程序设计语言源文件统计字符数、单词数、行数,统计结果以指定格式输出到默认文件中,以及其他扩展功能,并能够快速地处理多个文件。

可执行程序命名为:wc.exe,该程序处理用户需求的模式为:

wc.exe [parameter] [input_file_name]

存储统计结果的文件默认为result.txt,放在与wc.exe相同的目录下。

int main(int argc,char *argv[])
{
    FILE *fp;
    while(1)
    {
        if((fp=fopen(argv[2],"r"))==NULL)
        {
        printf("FileNull\n\n\n");
        scanf("%s%s%s",argv[0],argv[1],argv[2]);
        continue;
       }
        else if(!strcmp(argv[1],"-w"))
        countw(argv[2]);
        else if(!strcmp(argv[1],"-c"))
        countc(argv[2]);
        else if(!strcmp(argv[1],"-l"))
        countl(argv[2]);
        else if(!strcmp(argv[1],"-a"))
       {
          count_blankline(argv[2]);
          count_noteline(argv[2]);
          count_codeline(argv[2]);
       }
        else if(!strcmp(argv[1],"-s"))
       {
           searchfile();
       }
        else
            printf("NullPoint\n");
        printf("\n\n");
        scanf("%s%s%s",argv[0],argv[1],argv[2]);
    }
    return 0;
}

输入指令分成三组,根据第二组的指令对第三组的指令文件名执行相应的操作。

  • 5.2基本功能
    (-c(返回文件的字符数),-s(寻找文件中的txt文件),-l( 返回文件的行数),-w(返回文件词的数目),-a(统计空行,代码行,注释行))
  • 6、性能改进
  • 7、单元测试
    通过cmd运行截图
    用来测试的a.txt和b.txt


    测试结果:
  • 8、异常处理说明
  • 9、心路历程与收获
    在运行代码和测试时花费了很多时间,有不少的bug出现,要么filenull要么返回的文件词数目不对。这次作业的基本功能全部实现,扩展功能实现一小部分,由于代码环节薄弱,花了很多时间去改错。测试阶段里,利用不同的测试文件才会发现其中的一些容易疏忽的小错误,可见测试的重要和必要性。
posted @ 2021-03-31 21:04  rimary  Views(176)  Comments(0Edit  收藏  举报