个人项目:WC
Posted sumilekaedei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了个人项目:WC相关的知识,希望对你有一定的参考价值。
---恢复内容开始---
Github项目地址https://github.com/sumilekaedei/wc.git
解题思路:刚开始拿到题目时,因为是第一次做这种项目,只能对已有的代码进行参考,然后理解其中的内容,加上查阅书本来编写自己的代码。首先是要打开文本对文本中的字符进行处理,然后对字符进行统计。
设计实现过程:首先编写主函数,在主函数中输入、读取文本、递归统计和输出,在递归中对输入错误时出现的情况和文本字符的统计。
代码说明:
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<conio.h> 4 #include<string.h> 5 int c=0,w=1,l=1; 6 void count(char *name) 7 { 8 FILE *fp=NULL; 9 char a; 10 fp=fopen(name,"r");//打开文本 11 if(fp==NULL) 12 { 13 printf("输入错误"); 14 _getch(); 15 exit(0); 16 } 17 while(!feof(fp))//文本字符统计 18 { 19 a=fgetc(fp); 20 if(a!=‘ ‘&&a!=‘ ‘&&a!=‘ ‘&&a!=‘,‘&&a!=‘.‘&&a!=‘!‘&&a!=‘;‘&&a!=‘=‘) 21 { 22 c++; 23 } 24 else if(a==‘ ‘||a==‘,‘||a==‘.‘||a==‘!‘||a==‘?‘||a==‘;‘) 25 { 26 w++; 27 } 28 else if(a==‘ ‘||a==‘ ‘) 29 { 30 w++; 31 l++; 32 } 33 else if(a=EOF)break; 34 } 35 fclose(fp);//关闭文本 36 } 37 int main(int argc, char* argv[]) 38 { 39 FILE *fp; 40 count(argv[2]);//递归调用 41 if(!strcmp(argv[1],"-c")) //判断输入指令 42 printf("字符数:%d ",c); 43 else if(!strcmp(argv[1],"-w")) 44 printf("词数:%d ",w); 45 else if(!strcmp(argv[1],"-l")) 46 printf("行数:%d ",l); 47 }
测试运行:
PSP表格:
PSP2.1 |
Personal Software Process Stages |
预估耗时(分钟) |
实际耗时(分钟) |
Planning |
计划 |
||
· Estimate |
· 估计这个任务需要多少时间 |
180 | 300 |
Development |
开发 |
||
· Analysis |
· 需求分析 (包括学习新技术) |
30 | 30 |
· Design Spec |
· 生成设计文档 |
120 | 130 |
· Design Review |
· 设计复审 (和同事审核设计文档) |
30 | 60 |
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
60 | 60 |
· Design |
· 具体设计 |
60 | 45 |
· Coding |
· 具体编码 |
180 | 240 |
· Code Review |
· 代码复审 |
60 | 100 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
30 | 30 |
Reporting |
报告 |
||
· Test Report |
· 测试报告 |
30 | 30 |
· Size Measurement |
· 计算工作量 |
10 | 10 |
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
30 | 50 |
合计 |
820 | 1085 |
项目小结:这个项目的基本功能还是比较简单,主要是一开始不会怎么编写代码来调用文本中的内容,在基本完成的时候修复bug需要的时间比较多。这个项目的不足就是并没有实现扩展功能和高级功能,只实现了基本功能。
以上是关于个人项目:WC的主要内容,如果未能解决你的问题,请参考以下文章