• 第4次作业


    作业要求一 (70分)
    实践最简答的项目wordcount,必须完成其中的基本功能,若可以完成其他功能给予加分。完成后请将你的设计思路、主要代码写在本次作业博客里。

    1 设计思路
    主要描述题目算法
    第一步:判断参数进入相应函数。
    第二步:进入统计行数函数,打开文件,统计换行符个数,关闭文件,返回统计数。
    第三步:进入统计字符函数,打开文件,统计字符个数,关闭文件,返回统计数。
    第四步:进入统计单词函数,打开文件,判断字符是否为字母,每次由字母转为非字母字符,统计个数,关闭文件,返回统计数。
    第五步:输出相应内容。

    2.实验代码

    #include <stdio.h>
    #include <string.h>
    int Line_number( char *file_name )
    {
    	int lines;
    	char ch;
    	FILE *fp;
    	fp = fopen( file_name,"r" );
    	if( fp == NULL )
    	{
    		printf( "File Open Error!
    " );
    		return 0;
    	}
    	ch = fgetc(fp);
    	lines = 0;
    	while( ch != EOF )
    	{
    		if( ch == '
    ' )
    		{
    			lines = lines + 1;
    		}
    		ch = fgetc(fp);
    	}
    	if( fclose(fp) )
    	{
    		printf( "Can Not Close The File!
    " );
    		return 0;
    	}
    	return lines;
    }
    int char_number( char *file_name )
    {
    	int num;
    	char ch;
    	FILE *fp;
    	fp = fopen( file_name,"r" );
    	if( fp == NULL )
    	{
    		printf( "File Open Error!
    " );
    		return 0;
    	}
    	ch = fgetc(fp);
    	num = 0;
    	while( ch != EOF )
    	{
    		num = num + 1;
    		ch = fgetc(fp);
    	}
    	if( fclose(fp) )
    	{
    		printf( "Can Not Close The File!
    " );
    		return 0;
    	}
    	return num;
    }
    int word_number( char *file_name )
    {
    	int word,f;
    	char ch;
    	FILE *fp;
    	fp = fopen( file_name,"r" );
    	if( fp == NULL )
    	{
    		printf( "File Open Error!
    " );
    		return 0;
    	}
    	ch = fgetc(fp);
    	word = 0;
    	f = 0;
    	while( ch != EOF )
    	{
    		if(((ch >= 'a')&&(ch <= 'z'))||((ch >= 'A')&&(ch <= 'Z')))
    		{
    			f = 0;
    		}else
    		{
    			if(f == 0)
    			{
    				word = word + 1;
    				f = 1;
    			}
    		}
    		ch = fgetc(fp);
    	}
    	if( fclose(fp) )
    	{
    		printf( "Can Not Close The File!
    " );
    		return 0;
    	}
    	return word;
    }
    int main( int argc,char *argv[] )
    {
    	int lines;
    	int numbers;
    	int words;
    	while( argv[2] )
    	{
    		if( strcmp(argv[1],"-l") == 0)
    		{
    			lines = Line_number(argv[2]);
    			printf( "%s的行数 = %d
    ",argv[2],lines );
    		}
    		if( strcmp(argv[1],"-c") == 0)
    		{
    			numbers = char_number(argv[2]) - 1;
    			printf( "%s的字符数 = %d
    ",argv[2],numbers );
    		}
    		if( strcmp(argv[1],"-w") == 0)
    		{
    			words = word_number(argv[2]) - 1;
    			printf( "%s的词的数目 = %d
    ",argv[2],words );
    		}
    		break;
    	}
    }
    

    要求三、学习总结和进度(30分)

    1、将PTA作业的源代码使用git提交到托管平台上,要求给出上传成功截图和你的git地址。(3分)###

    git地址
    https://git.coding.net/z732511533/ZYS.git

    2、点评3个同学的本周作业(在作业中给出被点评同学博客的链接),并邀请3名同学点评你的作业,无点评作业(你的作业未被3人点评)/或者没有回复同学或老师的点评都倒扣该题分数。(4分)###

    http://www.cnblogs.com/exo123/p/8982620.html
    http://www.cnblogs.com/gu-an-cheng-wxm/p/8992743.html
    http://www.cnblogs.com/2719610441qqcom/p/8992324.html

    3、请用表格和折线图呈现你本学期的代码行数和所用时间、博客字数和所用时间,包括ACM刷题等其他平时自己练习的代码(7分),注意只要给出真实的数据就可以得分,不会因为你的行数少就少给分,只是想了解大家的真实代码量。###

    时间 代码行数 时间1(min) 博客字数 时间2(min)
    3.12 0 0 0 0
    3.13 100 40 0 0
    3.14 50 20 0 0
    3.15 0 0 0 0
    3.16 60 25 0 0
    3.17 0 0 0 0
    3.18 50 20 0 0
    3.19 0 0 0 0
    3.20 150 50 0 0
    3.21 50 20 0 0
    3.22 40 15 300 100
    3.23 0 0 0 0
    3.24 50 20 300 50
    3.25 60 20 600 180
    3.26 97 100 564 20
    3.27 0 0 355 70
    3.28 0 0 0 0
    3.29 60 70 0 0
    3.30 0 0 0 0
    3.31 0 0 0 0
    4.01 0 0 572 57
    4.02 150 88 426 78
    4.03 0 0 0 0
    4.04 0 0 0 0
    4.05 0 0 0 0
    4.06 0 0 0 0
    4.07 0 0 0 0
    4.08 0 0 129 25
    4.09 43 27 814 42
    4.10 0 0 0 0
    4.11 71 135 0 0
    4.12 0 0 0 0
    4.13 0 0 0 0
    4.14 0 0 0 0
    4.15 0 0 0 0
    4.16 74 120 0 0
    4.17 67 79 0 0
    4.18 94 120 0 0
    4.19 0 0 0 0
    4.20 379 300 0 0
    4.21 343 180 969 85
    4.22 0 0 648 65
    4.23 0 0 0 0
    4.24 0 0 0 0
    4.25 0 0 0 0
    4.26 140 70 120 466
    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.01 0 0 0 0
    5.02 0 0 0 0
    5.03 0 0 0 0
    5.04 0 0 87 834
    5.05 0 0 0 0

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

    在本学期开始感觉到学习内容的难度有了很大的提升,相比上学期对知识的了解更加的深刻,回顾了以前的题目,发现曾经做的非常麻烦的题现在已经可以很简便的写出了。在本学期我学习了指针,结构,链表和文件,在指针方面,我认为各种类型的表达是十分难掌握的,想要运用好它还需要在基础知识上有更多的学习和了解,结构和链表我认为相对较好,多多练习就可以大致了解它的运行步骤了,在文件上我所花的时间最少,所以还不太熟,还需要时间去学习了解。回顾第0次作业,我已经可以运用这些知识完成作业题目了,所以已经完成了基本要求,而完全灵活运用还需要更多的时间练习。在练习时间上,前期我的练习时间并没有达标,而在最近的两周内我的练习量已经超过了预定的目标。

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

    我对现在的教学方式没有意见,在作业方式上我希望PTA可以在课前就发布出来,这样提前了解题目可以有助于预习。在博客方面我已经习惯了这种方式,所以没有更多的意见和建议。在上课讲解方面我觉得一起打代码印象会比较深,相比直接讲解代码效果会更好。

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

    我认为老师还是非常好的,真心希望同学们能够学好这门课,课上经常反复讲解知识并询问是否学会了,感觉老师非常的辛苦,在微信上也经常和同学们互动聊天,非常的有趣。在建议方面,我希望老师和同学们在课堂上都更活跃些就好了。

  • 相关阅读:
    基于mave的dubbo分别架构
    海西 · 云交付 DevOps实践落地方案
    LoadRunner接口测试标准模板
    SVN多分支开发模式V1.0.1
    API接口规范V1.0——制定好规范,才好合作开发
    Effective Java 第三版——12. 始终重写 toString 方法
    Effective Java 第三版——11. 重写equals方法时同时也要重写hashcode方法
    Effective Java 第三版——10. 重写equals方法时遵守通用约定
    Effective Java 第三版——9. 使用try-with-resources语句替代try-finally语句
    Effective Java 第三版——8. 避免使用Finalizer和Cleaner机制
  • 原文地址:https://www.cnblogs.com/2017023960ZYS/p/8952253.html
Copyright © 2020-2023  润新知