第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
1237794-20180504212327666-1201908108.jpg
1237794-20180504212332260-76229597.jpg

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.120000
3.131004000
3.14502000
3.150000
3.16602500
3.170000
3.18502000
3.190000
3.201505000
3.21502000
3.224015300100
3.230000
3.24502030050
3.256020600180
3.269710056420
3.270035570
3.280000
3.29607000
3.300000
3.310000
4.010057257
4.021508842678
4.030000
4.040000
4.050000
4.060000
4.070000
4.080012925
4.09432781442
4.100000
4.117113500
4.120000
4.130000
4.140000
4.150000
4.167412000
4.17677900
4.189412000
4.190000
4.2037930000
4.2134318096985
4.220064865
4.230000
4.240000
4.250000
4.2614070120466
4.270000
4.280000
4.290000
4.300000
5.010000
5.020000
5.030000
5.040087834
5.050000

1237794-20180507213238139-1690563502.png

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

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

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

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

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

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

转载于:https://www.cnblogs.com/2017023960ZYS/p/8952253.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值