个人项目:WC

Posted 5164a

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了个人项目:WC相关的知识,希望对你有一定的参考价值。

https://github.com/RicyGray/wc.exe

PSP2.1

Personal Software Process Stages

预估耗时(分钟)

实际耗时(分钟)

Planning

计划

10

5

· Estimate

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

10

5

Development

开发

20

5

· Analysis

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

50

50

· Design Spec

· 生成设计文档

1

0

· Design Review

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

5

5

· Coding Standard

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

20

15

· Design

· 具体设计

20

30

· Coding

· 具体编码

30

50

· Code Review

· 代码复审

5

10

· Test

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

20

20

Reporting

报告

5

10

· Test Report

· 测试报告

5

10

· Size Measurement

· 计算工作量

5

10

· Postmortem & Process Improvement Plan

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

5

10

合计

 

211

225

在刚拿到题目的时候我觉得wc.exe要读取文件要运用到文件打开函数,读取函数等。

在代码设计的过程中我设计了两个函数,进行数据统计的函数及主函数。在主函数中读取文件,文件通过传参给到统计函数中。

int cnum=0;
int wnum=0;
int lnum=0; //全局变量统计字符数、单词数、行数
void count(char *file)
{
    FILE * fp;
    char a;
    if((fp=fopen(file,"r"))==NULL)//fopen函数打开文件
    {
        printf("read file failed!
");
        exit(-1);
    }
    while(!feof(fp))//进行统计
    {
        a=fgetc(fp);
        if(a!= &&a!=
&&a!=	&&a!=,&&a!=.)
            ++cnum;
        if(a== ||a==
||a==,||a==.||a==!||a===||a==;)
            ++wnum;
        if(a==
)
            ++lnum;
    }
    ++lnum;
    --wnum;         
    fclose(fp);
}
 
int main(int argc, char* argv[])             
{
    FILE *fp;
    void count(char *file);
    count(argv[2]);
    char a=*argv[1];
        if((fp=fopen(argv[2],"r"))==NULL)
        {  
            printf("FileNull
");
        }
        switch(a)//功能选择
        {
        casew:printf("File:%s WordNum:%d
",argv[2],wnum);break; 
        casec: printf("File:%s CharNum:%d
",argv[2],cnum);break;
        casel: printf("File:%s LineNum:%d
",argv[2],lnum);break;
        default: printf("NullPoint
");
       }   
    return 0;
     
}

用指针数据存放程序地址、功能选择项和文件名。文件名传参到统计函数进行统计。功能选择用switch实现。

技术分享图片

 通过此次学习,我有了更多的代码尝试,设计和认知上学到了许多。

以上是关于个人项目:WC的主要内容,如果未能解决你的问题,请参考以下文章

WC 个人项目 ( node.js 实现 )

个人项目:WC

个人项目:实现wc.exe(Java)

软件工程个人第二小项目——wc

软工个人项目WC(Python实现)

个人小项目——Java实现WC功能