第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!\n" );
return 0;
}
ch = fgetc(fp);
lines = 0;
while( ch != EOF )
{
if( ch == '\n' )
{
lines = lines + 1;
}
ch = fgetc(fp);
}
if( fclose(fp) )
{
printf( "Can Not Close The File!\n" );
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!\n" );
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!\n" );
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!\n" );
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!\n" );
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\n",argv[2],lines );
}
if( strcmp(argv[1],"-c") == 0)
{
numbers = char_number(argv[2]) - 1;
printf( "%s的字符数 = %d\n",argv[2],numbers );
}
if( strcmp(argv[1],"-w") == 0)
{
words = word_number(argv[2]) - 1;
printf( "%s的词的数目 = %d\n",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分)###
我认为老师还是非常好的,真心希望同学们能够学好这门课,课上经常反复讲解知识并询问是否学会了,感觉老师非常的辛苦,在微信上也经常和同学们互动聊天,非常的有趣。在建议方面,我希望老师和同学们在课堂上都更活跃些就好了。