• 写一个程序,分析一个文本文件(英文文章)中各个词出现的频率并且把频率最高的10个词打印出来


          软件工程概论这门课顾名思义就是理论课,听起来会相当无聊,但是我们老师给了我们一个不一样的讲课方式,极其生动有趣,让我们进一步了解了软件这个行业。

    当拿到这个题目的时候首先想到了三点:

    1)读取文本文件涉及对文件的操作,对文件流要熟悉;

    2)读取整篇文章并记录总单词数以及各个词的个数,计算出频率;

    3)用冒泡排序找出频率最高的十个单词。

        由于对文件的操作并不太了解,所以选择了先计算频率这一项。第一,计算单词总数;第二,将大写字母转化为小写字母比较计算各个单词的数目,并存储在结构体中;第三,计算出频率。   

    typedef struct WordCount
    {
        char Word[20];
        int  Count;
    }WordCount1;
    
    void LowerText(char *text)
    {
        char *p=text;
        while (*p!='')
        {
            if ((*p>='A'&& *p<='Z'))
            {
                *p=*p+32 ;
            }
            p++; 
        }
    }

         其次选择的是找出频率最高的的十个单词,百度过程中发现其实不用计算出每一个单词的频率,只需找到频率最高的十个词就行了,这样大大提高了工作效率,冒泡排序的算法如下:

    void BubbleSort(SqList &L)
    { 
        m=L.length-1;
        flag=1;
        while((m>0)&&(flag==1))
        { 
            flag=0;
            for(j=1;j<=m;j++)
                if(L.r[j].key>L.r[j+1].key)
                {
                    flag=1;
                    x=L.r[j];
                    L.r[j]=L.r[j+1];
                    L.r[j+1]=x;     //交换
                }                   //if
                m--;
        }                           //while
    }                               //BubbleSort

          最后一项阅读了谭浩强编著的C++程序设计关于输入输出流的相关部分,也在在网上查阅了一些资料,但感觉对文件流还是一头雾水,下面是我认为学习对文件操作首先要理解的一些概念。

          ifstream类,它是从istream类派生的。用来支持从磁盘文件的输入。

          ofstream类,它是从ostream类派生的。用来支持向磁盘文件的输出。

          fstream类,它是从iostream类派生的。用来支持对磁盘文件的输入和输出。

          文件的打开与关闭函数。

          文件输入输出方式及作用。

          还有写这个程序没有用到的对ASCⅡ文件和二进制文件的操作。

     

  • 相关阅读:
    刘若英和她的<<蝴蝶>>
    我的心情日记
    flash鼠标特效
    flash的播放器
    NoSQL数据存储引擎
    分享iphone开发的好网站,希望大家也能提供一些分享下
    创业经验总结
    产品经理之我见
    软件开发报价的计算方法
    Android实现号码归属地查询
  • 原文地址:https://www.cnblogs.com/luan/p/3578205.html
Copyright © 2020-2023  润新知