zoukankan      html  css  js  c++  java
  • 第4次作业

    要求一:

    `#include "stdafx.h"
    #include "stdio.h"
    #include "stdlib.h"
    #include "string.h"
    
    void CharCount();  
    void WordCount();  
    void LineCount();  
    void Muiltiple();  
    
    int main(int argc,char *argv[])
    {
        if ((strcmp(argv[1], "-c") == 0) && (strcmp(argv[2], "file.c") == 0))
        {
            CharCount();
        }
    
        if ((strcmp(argv[1], "-w") == 0) && (strcmp(argv[2], "file.c") == 0))
    
            WordCount();
        }
        if ((strcmp(argv[1], "-l") == 0) && (strcmp(argv[2], "file.c") == 0))
        {
            LineCount();
        }
        if ((strcmp(argv[1], "-a") == 0) && (strcmp(argv[2], "file.c") == 0))
        {
            Muiltiple();
        }
        return 0;
    
    }
    
    void CharCount() 
    {
        FILE *fp;
        int c = 0;
        char ch;
        if((fp = fopen("file.c","r")) == NULL)
        {
            printf("file read failure.");
        }
        ch = fgetc(fp);
        while(ch != EOF)
        {
                c ++;
                ch = fgetc(fp);
        }
        printf("char count is :%d.
    ",c);
        fclose(fp);
    }
    
    void WordCount() 
    {
        FILE *fp;
        int w = 0;
        char ch;
        if((fp = fopen("file.c","r")) == NULL)
        {
            printf("file read failure.");
        }
        ch = fgetc(fp);
        while(ch != EOF)
        {
            if ((ch >= 'a'&&ch <= 'z')||(ch >= 'A'&&ch <='Z')||(ch >= '0'&&ch <= '9'))
            {
                while ((ch >= 'a'&&ch <= 'z')||(ch >= 'A'&&ch <= 'Z')||(ch >= '0'&&ch <= '9')||ch == '_')
                {
                    ch = fgetc(fp);
                }
                w ++;
                ch = fgetc(fp);    
            }
            else 
            {
                ch = fgetc(fp);
            }
        }
        printf("word count is :%d.
    ",w);
        fclose(fp);
    
    }
    
    void LineCount() //行数统计函数
    {
        FILE *fp;
        int l = 1;
        char ch;
        if((fp = fopen("file.c","r")) == NULL)
        {
            printf("file read failure.");
        }
        ch = fgetc(fp);
        while(ch != EOF)
        {
            if (ch == '
    ')
            {
                l ++;
                ch = fgetc(fp);
            }
            else
            {
                ch = fgetc(fp);
            }
        }
        printf("line count is :%d.
    ",l);
        fclose(fp);
    }
    
    void Muiltiple()  //综合统计函数,包括代码行,空行,注释行
    {
        FILE *fp;
        char ch;
        int c=0,e=0,n=0;
        if((fp = fopen("file.c","r")) == NULL)
        {
            printf("file read failure.");
        }
        ch = fgetc(fp);
        while(ch != EOF)
        {
            if (ch == '{'||ch == '}')
            {
                e ++;
                ch = fgetc(fp);
            }
            else if (ch == '
    ')
            {
                ch = fgetc(fp);
                while(ch == '
    ')
                {
                    e ++;
                    ch = fgetc(fp);
                }
            }
            else if (ch == '/')
            {
                ch = fgetc(fp);
                if (ch == '/')
                    while(ch != '
    ')
                    {
                        ch = fgetc(fp);
                    }
                    n ++;
                    ch = fgetc(fp);
            }
            else
            {
                c ++;
                while (ch != '{'&&ch != '}'&&ch != '
    '&&ch != '/'&&ch != EOF)
                {
                    ch = fgetc(fp);
                }
            }
    
        }
        printf("code line count is :%d.
    ",c);
        printf("empt line count is :%d.
    ",e);
        printf("note line count is :%d.
    ",n);
        fclose(fp);
    }`
    

    要求二:学习总结和进度

    表格和折线图


    总结本课程的收获

    这次课程让我充分的了解到了c语言中的指针、二维数组、链表、文件,基本上学会了和掌握了c语言,并且在课程的最后更是做了一个项目,让我们有了在实践中使用c语言的经验,这种经验才是最重要的。不过我觉得我并没有实现第0次作业所定下的目标,因为这个学期我的代码量还是太少了,在关于链表和文件的方面还是不行,并没有像一开始说的那样全力的掌握和弄透彻C语言,这也是比较遗憾的一点,虽说课程已经结束,但是我还是会努力复习,把这部分彻底搞懂。

    对目前的上课和作业方式

    这种方式真的还不错,平时的时候也会因为要完成PTA而专门的复习和打代码练习,并且因为要写博客,所以会平时有错的地方会特别的记下来。但是我认为每布置一次作业不应该只有本次课程相关的内容,应该再加上上次课程学习的东西,这样才能做到复习的目的,而且不要在有难点的部分过于增加题量,有的时候难题太多是会有放弃的想法,不利于自己独立思考和解决题目,因为一旦遇到难题太多,难免就有请别人帮忙的念头。

    有什么要对教师说的

    讲的确实有点快,虽说后来慢了点,但是一开始的确挺快,特别是链表,我自己觉得两节课听的不算很懂,后来代码都是在同学的帮助下才完成的,剩下就没有什么了。老师在课上对我们还是挺好的,遇到我们不懂的地方可以变着方法的解释出来。

  • 相关阅读:
    Android如何使用注解进行代码检查
    Gradle系列之从零搭建Maven私服库
    Gradle系列之Android Gradle高级配置
    Gradle系列之Android Gradle基础配置
    Gradle系列之Android Gradle插件
    Gradle系列之Java Gradle插件
    一个年轻的女孩
    互联网不等于科技,互联网繁荣之下,毁掉的是工业科技发展
    《Kafka笔记》2、环境搭建、Topic管理
    《Kafka笔记》1、Kafka初识
  • 原文地址:https://www.cnblogs.com/wsbqz/p/8993000.html
Copyright © 2011-2022 走看看