zoukankan      html  css  js  c++  java
  • WordCount of Software Engineering

    1.Github项目地址:https://github.com/BayardM/WordCount

    2.PSP表格(before):

    PSP2.1

    Personal Software Process Stages

    预估耗时(分钟)

    实际耗时(分钟)

    Planning

    计划

            30

     

    · Estimate

    · 估计这个任务需要多少时间

            30

     

    Development

    开发

             50

     

    · Analysis

    · 需求分析 (包括学习新技术)

              100

     

    · Design Spec

    · 生成设计文档

               15

     

    · Design Review

    · 设计复审 (和同事审核设计文档)

                 0

     

    · Coding Standard

    · 代码规范 (为目前的开发制定合适的规范)

                 10

     

    · Design

    · 具体设计

                40

     

    · Coding

    · 具体编码

                40

     

    · Code Review

    · 代码复审

                30

     

    · Test

    · 测试(自我测试,修改代码,提交修改)

                60

     

    Reporting

    报告

                25

     

    · Test Report

    · 测试报告

                 10

     

    · Size Measurement

    · 计算工作量

                 10

     

    · Postmortem & Process Improvement Plan

    · 事后总结, 并提出过程改进计划

                  20

     

    合计

     

                470

     

     

    3.解题思路:

      刚开始拿到题目时因为感觉题目很长,要求很多,所以感到很懵,一点没懂到底要做什么,便在网上查阅了一些资料与博客,研究了牛人们的讲解终于明白题目意思,并且知道此次题目会涉及文档流的操作,因为自己暂时对c语言使用更加灵活,所以本次开发全为C语言。

    4.设计实现过程:

      代码简单明了大致分为四部分,三个基本功能各一个函数实现,主函数中对功能进行相应调用执行及功能使用的指引。

    5.代码说明:

      字符数类:

     1 //字符数
     2 int CharacterCount(char filepath[])
     3 {
     4     FILE *f1 = NULL;
     5     char c;
     6     int charcount = 0;
     7     f1 = fopen(filepath , "r");
     8     if(f1 == NULL)
     9     {
    10         printf("Can't Find!
    ");
    11         exit(1);
    12     }
    13     c = fgetc(f1);
    14     while(c != EOF)
    15     {
    16         c = getc(f1);
    17         charcount++;
    18     }
    19     fclose(f1);
    20     return charcount;
    21 }

    单词数类:

     1 //词数
     2 int WordCount(char filepath[])
     3 {
     4     FILE *f2 = NULL;
     5     char w;
     6     int wordcount = 0;
     7     f2 = fopen(filepath , "r");
     8     if(f2 == NULL)
     9     {
    10         printf("Can't Find!
    ");
    11         exit(1);
    12     }
    13     w = fgetc(f2);
    14     while(w != EOF)
    15     {
    16         if((w>='A' && w<='Z') || (w>='a' && w<='z') || (w>='0' && w<='9'))
    17         {
    18             while((w>='A' && w<='Z') || (w>='a' && w<='z') || (w>='0' && w<='9') || w == '_')
    19             {
    20                 w = fgetc(f2);
    21             }
    22             wordcount++;
    23         }
    24         w = fgetc(f2);
    25     }
    26     fclose(f2);
    27     return wordcount;
    28 }

    行数:

     1 //行数
     2 int LineCount(char filepath[])
     3 {
     4     FILE *f3 = NULL;
     5     char l;
     6     int linecount = 1;
     7     f3 = fopen(filepath , "r");
     8     if(f3 == NULL)
     9     {
    10         printf("Can't Find!
    ");
    11         exit(1);
    12     }
    13     l = fgetc(f3);
    14     while(l != EOF)
    15     {
    16         if(l == '
    ')
    17         {
    18             linecount++;
    19             l = fgetc(f3);
    20         }
    21         else{
    22             l = fgetc(f3);
    23         }
    24     }
    25     if(CharacterCount(filepath) == 0)
    26         linecount = 0;
    27     fclose(f3);
    28     return linecount;
    29 }

    以上类代码结构基本一致,不同点仅在于判断条件。

    6.测试运行:


    (1)普通文本测试结果及文件

     (2)空文件测试结果及文件

     (3)单字符测试结果及文件

    (4)单行测试结果及文件

    (5)普通代码测试结果及文件

     

     (6)路径错误测试

     7.PSP(after):

      

    PSP2.1

    Personal Software Process Stages

    预估耗时(分钟)

    实际耗时(分钟)

    Planning

    计划

            30

                 30

    · Estimate

    · 估计这个任务需要多少时间

            30

         25

    Development

    开发

             50

         55

    · Analysis

    · 需求分析 (包括学习新技术)

              100

                120

    · Design Spec

    · 生成设计文档

               15

                  5

    · Design Review

    · 设计复审 (和同事审核设计文档)

                 0

                   0

    · Coding Standard

    · 代码规范 (为目前的开发制定合适的规范)

                 10

                  10

    · Design

    · 具体设计

                40

                   30

    · Coding

    · 具体编码

                40

                    40

    · Code Review

    · 代码复审

                30

                   25

    · Test

    · 测试(自我测试,修改代码,提交修改)

                60

                  65

    Reporting

    报告

                25

                  20

    · Test Report

    · 测试报告

                 10

                  10

    · Size Measurement

    · 计算工作量

                 10

                  10

    · Postmortem & Process Improvement Plan

    · 事后总结, 并提出过程改进计划

                  20

                   25

    合计

     

                470

     

               470

     

     8.项目小结:

      这次项目在编码上学到的主要是c语言相关文档的操作,这是之前从没涉及到过的领域,因此感觉收获蛮丰富的;然后在整个策划详细设计时主要是感悟到遇到困难决不能轻言放弃。要学会有效的借鉴前人的经验,从中汲取知识转化为自己的能力;除此之外,还是有遗憾的地方,便是觉得自己只能用c语言去做项目是非常单一的,并且也并没有将c语言用得融会贯通,还是需要继续学习,并且本次项目其实题目理解方面大部分都是查阅资料才弄清楚,感觉还是要加强自己的理解能力,平时自己还得做一些其他更复杂能锻炼人的项目,如果老师能推荐那更好,来日方称,未来可期,切勿放弃!

  • 相关阅读:
    TortoiseGit 连接oschina不用每次输入用户名和密码的方法
    IIS7 配置SSL 绑定主机头
    二种方法安装卸载Windows服务的命令
    System.Data.SqlClient.SqlException: 从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值
    SQL Server 2008 角色
    sql2008“备份集中的数据库备份与现有的xx数据库不同”解决方法
    winform窗体间传值
    C#用到的一些代码汇总,后期再整理
    排球计分程序中英文切换
    ASP.NET MVC 排球计分程序 (八)排球计分程序的演示
  • 原文地址:https://www.cnblogs.com/bayardm/p/12558457.html
Copyright © 2011-2022 走看看