个人项目wordcount
Posted FPX_Bao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了个人项目wordcount相关的知识,希望对你有一定的参考价值。
1.项目GitHub地址:https://github.com/FPXBao/wordcount
2.解题思路:分析程序基本需求,将其功能分为三个函数调用:主函数 int main();功能函数Ccount();Wcount();Lcount();并进行相关知识学习。
3.代码说明:
主函数:
#include <stdio.h> #include <stdlib.h>//system #include <string.h> #include <ctype.h>//c库函数int isspasce(int c)检查所传字符是否是空白字符,标准空白字符:“”“空格\\t水平制表符\\n换行符\\v垂直制表符\\f换页符\\r回车符” int main() { char inp; char File[50]; while(1) { printf("(Enter s for description list.)"); printf("input your instruction:wc.exe-"); scanf(" %c",&inp); if(inp==\'s\'){ printf("*************\\nc:字符数统计;\\nw:单词数统计;\\nl:行数统计; \\nq:退出程序; \\n*************\\n"); break; } printf("Enter the address of the file:"); scanf("%s",File); switch(inp){ case \'c\': Ccount(File);break; case \'w\': Wcount(File);break; case \'l\': Lcount(File);break; case \'q\': return 0; default : printf("Error Retry again!\\n");break; } } }
字符数计算函数
void Ccount(char File[])//字符数计算函数 { int count=0;//计数器 char ch=\' \';//空 FILE *f_read=fopen(File,"r"); if(f_read==NULL){printf("Error,Retry again!\\n");return ;} while((ch=fgetc(f_read))!=EOF) {if(isspace(ch)==0)count++;} fclose(f_read); printf("character=%d\\n",count); }
单词数计算函数
void Wcount(char File[])//单词数计算函数 { int count=0; char ch=\' \'; FILE *f_read=fopen(File,"r"); if(f_read==NULL){ printf("Error,Retry again!\\n"); return ; } while((ch=fgetc(f_read))!=EOF) { while((ch>=\'a\'&&ch<=\'z\')||(ch>=\'A\'&&ch<=\'Z\')) ch=fgetc(f_read); count++; } } fclose(f_read); printf("word=%d\\n",count); }
行数计算函数
void Lcount(char File[]){//行数计算函数 int count=0; char ch[1024]; int status=0; FILE *f_read=fopen(File,"r"); if(f_read==NULL){ printf("Error,Retry again!\\n"); return ; } while(!feof(f_read)){ fgets(ch,1024,f_read); if(status==0&&ch[0]==\'\\0\')break; else status=1; count++; } fclose(f_read); printf("line=%d\\n",count); }
实现了基本功能:
-c
-w
-l
4.测试
5.项目小结:
语言选择:该程序运用c语言知识设计,因为其他语言学习不深,并未完全掌握。
遇到困难与新知收获:最大的困难就是基础知识不牢固、导致出现了许多bug,修复bug所花费的时间比实际写代码的时间要长很多,收获到的便是学会了耐心地debug。。
6.PSP
PSP2.1 | Personal Software Process Stages | 预估耗时(min) | 实际耗时(min) |
Planning | 计划 | ||
Estimate | 估计这个任务需要多少时间 | 6*60 | 9*60 |
Development | 开发 | ||
Analysis | 需求分析(学习新技术) | 30 | 50 |
Design Spec | 生成设计文档 | 10 | 10 |
Design Review | 设计复审 | 10 | 5 |
Coding Standard | 代码规范 | 5 | 5 |
Design | 具体设计 | 20 | 10 |
Coding | 具体编码 | 2*60 | 4*60 |
Code Review | 代码复审 | 60 | 2*60 |
Test | 测试 | 30 | 30 |
Reporting | 报告 | ||
Test Report | 测试报告 | 30 | 40 |
Size Measurement | 计算工作量 | 10 | 15 |
Postmortem&Process Improvement Plan | 事后总结,并提出过程改进计划 | 10 | 10 |
total | 6*60 | 9*60 |
以上是关于个人项目wordcount的主要内容,如果未能解决你的问题,请参考以下文章