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要么返回的文件词数目不对。这次作业的基本功能全部实现,扩展功能实现一小部分,由于代码环节薄弱,花了很多时间去改错。测试阶段里,利用不同的测试文件才会发现其中的一些容易疏忽的小错误,可见测试的重要和必要性。
  • 相关阅读:
    Java面试集合(一)
    Java面试集合(一)
    Android-如何显示版本号并制作3秒跳转页
    Android-如何显示版本号并制作3秒跳转页
    安卓入门教程(十五)- Fragment,Service,WAMP下载
    安卓入门教程(十五)- Fragment,Service,WAMP下载
    网络开发Socket和ServerSocket
    网络开发Socket和ServerSocket
    深入浅出的Java网络通信
    深入浅出的Java网络通信
  • 原文地址:https://www.cnblogs.com/zhouhuahua/p/14603000.html
Copyright © 2011-2022 走看看