zoukankan      html  css  js  c++  java
  • 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
    
    
    ");
            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
    ");
            printf("
    
    ");
            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要么返回的文件词数目不对。这次作业的基本功能全部实现,扩展功能实现一小部分,由于代码环节薄弱,花了很多时间去改错。测试阶段里,利用不同的测试文件才会发现其中的一些容易疏忽的小错误,可见测试的重要和必要性。
  • 相关阅读:
    Saltstack module acl 详解
    Saltstack python client
    Saltstack简单使用
    P5488 差分与前缀和 NTT Lucas定理 多项式
    CF613D Kingdom and its Cities 虚树 树形dp 贪心
    7.1 NOI模拟赛 凸包套凸包 floyd 计算几何
    luogu P5633 最小度限制生成树 wqs二分
    7.1 NOI模拟赛 dp floyd
    springboot和springcloud
    springboot集成mybatis
  • 原文地址:https://www.cnblogs.com/zhouhuahua/p/14603000.html
Copyright © 2011-2022 走看看