个人项目: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)//功能选择 { case‘w‘:printf("File:%s WordNum:%d ",argv[2],wnum);break; case‘c‘: printf("File:%s CharNum:%d ",argv[2],cnum);break; case‘l‘: printf("File:%s LineNum:%d ",argv[2],lnum);break; default: printf("NullPoint "); } return 0; }
用指针数据存放程序地址、功能选择项和文件名。文件名传参到统计函数进行统计。功能选择用switch实现。
通过此次学习,我有了更多的代码尝试,设计和认知上学到了许多。
以上是关于个人项目:WC的主要内容,如果未能解决你的问题,请参考以下文章