zoukankan      html  css  js  c++  java
  • 實驗項目wordcount

    wordcount

    1.设计思路

    第一步 :主函数参数使用命令行参数,定义一个文件指针fp。
    第二步:判断能否用只读的形式打开命令行指针中的文件,并让指针指向打开函数,若不能则输出不能读取文件,否则下一步。
    第三步:使用strcmp函数判断命令行指针数组中的执行要求字符串是否为规定字符串-c、-w、-l,若是-c则调用character子函数输出返回的值,若是-w则调用子函数word输出返回的值,若是-l则调用子函数row输出返回的值,否则输出不能读取执行命令。
    第四步:关闭文件。

    第一步:定义整型函数名character,传递文件指针参数fp(用来计算字符数)。
    第二步:定义一个整型计数器count初始值为0。
    第三步:利用while循环判断是否为文件末尾,若是末尾则返回count的值,否则下一步。
    第四步:如果从文件中读取的一个字符不是空字符则count+1赋给count,否则继续循环。

    第一步:定义整型子函数名word,传递文件参数fp(用来计算单词数)。
    第二步:定义一个整型的计数器count初始值为0,标志flag初始值为0.
    第三步:利用while循环判断是否为文件末尾,若是则返回count的值,否则下一步
    第四步:判断从文档中取出的一个字符是否为英文字母,若是则标志flag为1,否则判断标志是否为1,若是则count+1赋给count,并让标志为0,然后继续循环。

    第一步:定义整型子函数名row,传递文件参数fp(用来计算行数)。
    第二步:定义一个整型的计数器count初始值为0。
    第三步:利用while循环判断是否为文文件末尾,若是则返回count的值,否则下一步
    第四步:判断从文件中读取的一个字符是否为换行符,若是则count+1赋给count,否则继续循环。

    2.实验代码

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    int character(FILE *fp);
    int word(FILE *fp);
    int row(FILE *fp);
    int main(int argc,char *argv[])
    {
    	FILE *fp=NULL;
    	if((fp=fopen(argv[2],"r"))==NULL)
    	{
    		printf("Please enter correct and available file name!
    ");
    		exit(0);
    	}
    	if(strcmp(argv[1],"-c")==0)
    	printf("%d
    ",character(fp));
    	else if(strcmp(argv[1],"-w")==0)
    	printf("%d
    ",word(fp));
    	else if(strcmp(argv[1],"-l")==0)
    	printf("%d
    ",row(fp));
    	else
    	printf("Please enter the available instruction you want!
    ");
    	fclose(fp);
    	system("pause");
    	return 0;
    }
    int character(FILE *fp)
    {
    	int count=0;
    	while(!feof(fp))
    	if(fgetc(fp)!=EOF)
    	count++;
    	return count;
    }
    int word(FILE *fp)
    {
    	short int flag=0;
    	int count=0;
    	while(!feof(fp))
    	{
    		if(fgetc(fp)<='Z'&&fgetc(fp)>='A'||fgetc(fp)<='z'&&fgetc(fp)>='a')
    		flag=1;
    		else
    		{
    			if(flag)
    			count++;
    			flag=0;
    		}
    	} 
    	return count; 
    }
    int row(FILE *fp)
    {
    	int count=0;
    	while(!feof(fp))
    	if(fgetc(fp)=='
    ')
    	count++;
    	return count;
    }
    

    3.本题调试过程碰到问题及解决办法

    本题在编写代码的过程中出现的对知识点的不熟悉不作详细解释。
    错误信息1:
    wordcount
    错误原因:在输入统计字符数的文件时并没有将运行的文件放在同一个目录下,而我一直输入的只有需要统计的文件名,而在C:Users李晓静这个目录下并没有wc.c这个文件,所以一直输出找不到。
    改正方法:需要统计的文件地址从C:Users李晓静以下的地址都要输入,我将文件都放在了桌面,输入时要有Desktop这个路径,再输入文件名wc.c
    错误信息2:
    错误代码部分如下:

    int character(FILE *fp)
    {
    	int count=0;
    	while(!feof(fp))
    	count++;
    	return count;
    }
    

    wordcount
    错误原因:while循环中没有读取文件中的字符,一直判断文件末尾是死循环。
    改正方法:在while循环中加一句判断从文件中取出的一个字符是否为空字符,然后执行下一语句。
    正确信息:
    wordcount

    GitHub地址:

    https://github.com/MemoriesBook/C-PTA-/blob/master/wordcount.c
    GitHub

    评论博客地址:

    董欣
    董雅洁
    冯子旋

    学习进度和总结

    日期 代码时间 代码行数 博客时间 博客行数
    3月12日 0 0 0 0
    3月13日 0 0 0 0
    3月14日 6 3 25 17
    3月15日 11 5 0 0
    3月16日 0 0 0 0
    3月17日 0 0 0 0
    3月18日 9 7 19 24
    3月19日 17 21 0 0
    3月20日 0 0 0 0
    3月21日 0 0 0 0
    3月22日 12 8 31 40
    3月23日 48 19 45 86
    3月24日 0 0 0 0
    3月25日 0 0 0 0
    3月26日 0 0 16 160
    3月27日 51 24 72 543
    3月28日 19 9 67 342
    3月29日 44 34 67 199
    3月30日 0 0 0 0
    3月31日 0 0 0 0
    4月1日 24 17 0 0
    4月2日 12 13 50 549
    4月3日 30 14 47 45
    4月4日 0 0 0 0
    4月5日 0 0 0 0
    4月6日 0 0 0 0
    4月7日 0 0 77 203
    4月8日 0 0 0 0
    4月9日 0 0 0 0
    4月9日 0 0 0 0
    4月10日 86 7 23 150
    4月11日 15 6 250 20
    4月12日 50 6 45 239
    4月13日 0 0 0 0
    4月14日 42 22 0 0
    4月15日 101 0 0 0
    4月16日 0 0 0 0
    4月17日 0 0 0 0
    4月18日 0 0 0 0
    4月19日 0 0 0 0
    4月20日 0 0 0 0
    4月21日 0 0 0 0
    4月22日 0 0 0 0
    4月23日 0 0 0 0
    4月24日 0 0 0 0
    4月25日 0 0 0 0
    4月26日 52 0 0 0
    4月27日 0 0 0 0
    4月28日 0 0 0 0
    4月29日 0 0 0 0
    4月30日 0 0 0 0
    5月1日 0 0 0 0
    5月2日 0 0 0 0
    5月3日 0 0 0 0
    5月4日 0 0 0 0
    5月5日 0 0 0 0
    5月6日 0 0 0 0
    5月7日 0 0 0 0
    5月8日 0 0 0 0
    5月9日 0 0 0 0
    5月10日 0 0 0 0
    5月11日 59 20 8 0
    学习进度

    本学期课程即将结束,请总结下你本课程的收获,回顾第0次作业,你是否实现了你的目标?

    要想写好代码就必须自己动手敲,光靠听别人的是没什么用的,大多只能知道C语言中有这种函数和语句而已,平时课上看着老师写的一串串代码,课上好像都看懂了,但是课下真正自己写的时候又写不出来了,所以光靠课上听是没用的。至于第0次作业的目标,其中有一点我并没有实行,每周课后做2道课外的C语言题目,这一点我是很惭愧的,其它的我想我都尽可能地实现了。

    你对目前的上课和作业方式(上课讲解+PTA+博客)有何意见和建议?

    我觉得PTA可以和上课讲解的方式相同,PTA中的题目只有一道题目,这个题目包含了课上学的很多知识点,全部体现在一串代码中,这样也有利于将知识点和代码串联起来,实现C语言的综合利用,博客也是同样的,减少作业量还可以高质量地完成课程任务,题目涉及的知识点越多就越难,要思考的地方就多,对学生的思维能力有一定的锻炼效果吧。

    终于我们即将不再是师生。当你结束本课程,你和我就站在同样的位置上,我将不再基于学校授权和知识、经验 (年龄?)上的优势而对你的自由有任何干扰。除发布成绩以外,我最后一次行使教师特权: 请问你有什么要对教师 (我)说的,建议、抱怨、希望……多谢。

    我想说你是一个好老师,很负责任,从专业知识方面,虽然我觉得可能没有那么深入,课堂上也没有多余的知识点,主要原因可能是班里大多数学生都听不懂吧,所以只能把时间都放在讲解课本上要求的内容了吧,但是我觉得老师的态度真的是很认真,就算不是对学生负责,那也是对这份教师工作负责,这一点我真心地很敬佩老师,感谢老师带给我的这种精神,我会好好开发的。

  • 相关阅读:
    KM算法(带权二分图最优匹配)
    I'm Telling the Truth(二分图最大匹配) HDU
    过山车(二分图匹配裸题) HDU
    locker(dp) HDU
    Hunters(期望,数学) HDU
    Sum of divisors(进制转换) HDU
    DataTable 内数据搜索
    NPOI 读取xls,xlsx文件
    (转)C#将多个DLL集成到EXE文件中的方法
    saveFileDialog简单使用
  • 原文地址:https://www.cnblogs.com/lixiaojing/p/8992287.html
Copyright © 2011-2022 走看看