标签:空格 规范 class else home 电脑 就是 nbsp 上传文件
https://github.com/13882163221/wc.git
PSP阶段 | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|
计划 | 100 | 160 |
估计这个任务需要多少时间 | 100 | 140 |
开发 | 100 | 120 |
需求分析 | 30 | 30 |
生成设计文档 | 20 | 20 |
设计复审 | 30 | 30 |
代码规范 | 20 | 20 |
具体设计 | 30 | 30 |
具体编码 | 40 | 40 |
代码复审 | 30 | 30 |
测试 | 10 | 20 |
报告 | 20 | 20 |
测试报告 | 20 | 20 |
计算工作量 | 10 | 20 |
事后总结 | 20 | 20 |
合计 | 580 | 720 |
本题是统计文件里的行数,单词数,字符数的数量。对我而言,与其它语言相比,我比较熟悉C语言,面对这种小程序,我觉得用C语言写更简单一点。
我们要统计行数,单词数,字符数,所以要用三个函数来分别统计这三者。另外,还可以用一个函数来统计这三者,程序运行时,可以直接显示这三者。当然还有一个函数就是main函数。
每个函数里的内容其实还是很容易的,我会在后面进行代码展示及解释
CharCount()函数:用于统计字符数
WordCount()函数:用于统计单词数
LineCount()函数:用于统计行数
Passage()函数:用于统计字符数、单词数、行数
//统计字符数
void CharCount()
{
FILE *fp;
int charCount = 0;
char ch;//读取文件返回的字节
if((fp = fopen("test.txt","r")) == NULL)
{
printf("文件打开失败.");
}
ch = fgetc(fp);
while(ch != EOF)
{
charCount++;
ch = fgetc(fp);
}
printf("字符数为:%d个.\n",charCount);
fclose(fp);
}
这个函数用于统计文件中的字符数,一个个字符依次读取,直到读完为止。
//统计单词数
void WordCount()
{
FILE *fp;
int wordCount = 0,flag=0;
char ch;//读取文件返回的字节
if((fp = fopen("test.txt","r")) == NULL)
{
printf("文件打开失败.");
}
ch = fgetc(fp);
while(ch != EOF)
{
if (ch==‘ ‘)
{
flag=0;
ch = fgetc(fp);
}
else
{
if(flag==0)
{
wordCount ++;
flag=1;
}
ch = fgetc(fp);
}
}
printf("单词数为:%d个.\n",wordCount);
fclose(fp);
}
这个函数用于统计文件中的单词数,一个个字符依次读取,遇到空格就加一,直到读完为止。
//统计行数
void LineCount()
{
FILE *fp;
int lineCount = 0;
char ch;//读取文件返回的字节
if((fp = fopen("test.txt","r")) == NULL)
{
printf("文件打开失败.");
}
ch = fgetc(fp);
while(ch != EOF)
{
if (ch == ‘\n‘)
{
lineCount++;
ch = fgetc(fp);
}
else
{
ch = fgetc(fp);
}
}
printf("行数为:%d行.\n",lineCount);
fclose(fp);
}
这个函数用于统计文件中的行数,一个个字符依次读取,遇到"\n"就加一,直到读完为止。
void Passage()
{
FILE *fp1;
FILE *fp2;
int lineCount=0,wordCount=0,charCount=0;
int flag=0;
char ch;//读取文件返回的字节
if((fp1 = fopen("test.txt","r")) == NULL)
{
printf("文件打开失败.");
}
ch = fgetc(fp1);
while(ch != EOF)
{
charCount++;
if (ch == ‘\n‘)
{
lineCount++;
ch = fgetc(fp1);
}
else if(ch==‘ ‘)
{
flag=0;
ch = fgetc(fp1);
}
else
{
if(flag==0)
{
wordCount ++;
flag=1;
}
ch = fgetc(fp1);
}
}
printf("字符数为:%d个.\n",charCount);
printf("单词数为:%d个.\n",wordCount);
printf("行数为:%d行.\n",lineCount);
fclose(fp1);
fp2=fopen("result.txt","w");
fprintf(fp2,"字符数为:%d个.\n",charCount);
fprintf(fp2,"单词数为:%d个.\n",wordCount);
fprintf(fp2,"行数为:%d行.\n",lineCount);
fclose(fp2);
}
这个函数用于统计文件中的行数,单词数,字符数,将读取的结果放在新的文件夹result.txt中。
int main(int argc,char *argv[])
{
//统计单词数
if ((strcmp(argv[1], "-w") == 0) && (strcmp(argv[2], "test.txt") == 0))
{
WordCount();
}
//统计字符数
if ((strcmp(argv[1], "-c") == 0) && (strcmp(argv[2], "test.txt") == 0))
{
CharCount();
}
//统计行数
if ((strcmp(argv[1], "-l") == 0) && (strcmp(argv[2], "test.txt") == 0))
{
LineCount();
}
//统计字符数,单词数,行数
if ((strcmp(argv[1], "-p") == 0) && (strcmp(argv[2], "test.txt") == 0))
{
Passage();
}
return 0;
}
测试的时候通过输入"-w,-c,-l,-p"来实现自己想要的功能
test.txt是用于统计的文件,result.txt是用于接收程序返回结果的文件
PSP表格的应用,参考了邹欣老师的博客:http://www.cnblogs.com/xinz/archive/2011/10/22/2220872.html
博客的排版,参考了范飞龙老师的这篇博客:
http://www.cnblogs.com/math/p/se-tools-001.html
有关Git的使用,参考了廖雪峰的官方网站
有关linux上传文件到github,参考了:
https://www.2cto.com/kf/201806/755193.html
标签:空格 规范 class else home 电脑 就是 nbsp 上传文件
原文地址:https://www.cnblogs.com/psps/p/9695450.html