精华内容
下载资源
问答
  •  数控零件加工程序编制是进行数控加工重要步骤,国内外数控加工统计说明,造成数控机床等待约20%~30%是编程不及时所致,可见数控编程直接影响着数控机床加工效率。随着数控技术应用日益扩大,我国企业...
  • 在之前写过一词频统计的C语言课设,别人说你一大三怎么写C语言课程,我只想说我是先学习VBVB是我编程语言开始,然后接触到C语言及C++;再后来我是学习C++,然后反过来学习C语言,记得那时候自己在C++...

    一、前言

         在之前写过一个词频统计的C语言课设,别人说你一个大三的怎么写C语言课程,我只想说我是先学习VB,VB是我编程语言的开始,然后接触到C语言及C++;再后来我是学习C++,然后反过来学习C语言,记得那时候自己在C++中没有好好学习,考试之前疯狂的背代码,然后过了。后来学习C语言的时候,自己知道基础很重要,然后认真学习。这WC这回自己就轻车熟路,记得那时候丁国辉课设老师,问我有多少是自己写的,我说有80%自己写的,然后他让我当场给程序增加一个总的单词数和每一个单词的频率,当时记得自己在旁边改了十分钟左右才弄完,因为自己太大意,出现了低级错误,然后自己还一直没有发现。自己学习的map来写词频统计map<string,int>mp,发现更快。代码更短,效率更高。

    二、分析

    1、在命令行中直接输入一串英文字符串,统计单词的个数,自己是C语言学习的一个初学者,在C语言机考中自己总是会很快的敲出来。

    #include <iostream>
    #include<cstdio>
    #include<cstdlib>
    using namespace std;
    //统计单词的个数
    int main()
    {
        char a;
        int count=0;
        while((a=getchar())!='\n')
        {
            if(a==' ')
                 count++;
        }
        cout << count+1 << endl;
        return 0;
    }

    2、使用的map的写的统计单词的出现的次数

    #include<iostream>
    #include<stdio.h>
    #include<stdlib.h>
    #include<map>
    #include<string.h>
    using namespace std;
    
    int main()
    {
        cout<<"输入以0结尾"<<endl;
        map<string,int>mp;
        string str1;
    
        while(str1!="0")
        {
            cin>>str1;
            mp[str1]++;
        }
            map<string,int>::iterator iter;
            for(iter=mp.begin();iter!=mp.end();iter++)
            {
                if(iter->first!="0")   //字符的判断与0
                     cout<<iter->first<<" "<<iter->second<<endl;
            }
        return 0;
    }

    3、在文件中怎么读取字符呢。我们定义一个文件指针

    FILE *fp;           //文件指针

    使用的时候记得“读”就行打开了就要关闭

    if((fp=fopen(name,"r+"))==NULL){
            printf("Open the file failure...\n");
            exit(0);
        }
        fp=fopen(name,"r");
        wordCount();
    
        fclose(fp);

    4、定义了一个结构体,使用链表的存储结构

    typedef struct word        //连表 单词结构
    {
        char w[Word_Max];    //单词
        int count;                //个数
        struct word *next;
    }link;

    5、指针指向的字符是否为字母还是其他的格式字符

    int isnotWord(char a)        //判断是否为字母
    {
        if(a <= 'z' && a >= 'a')
        {
            littleletter++;
            return 0;
        }
        else if(a <= 'Z' && a >= 'A')
        {
            bigletter++;
            return 0;
        }
        else if(a==' ')
        {
            space++;
            return 1;
        }
        else if(a>='1'&&a<='9')
        {
            number++;
            return 1;
        }
        else if(a=='\n')
        {
            hang_num++;
            return 1;
        }
        else
        {
            other++;
            return 1;
        }
    
    }

    6、如果是添加单词,就要记录该单词,下次指针再次指到,字符串比较strcmp(str1,str2)==0,如果不是就要动态存储分配malloc。

    void addWord(char *w1)        //添加单词
    {
    
        link *p1,*p2;
        //if(w1[0] <= 'Z' && w1[0] >= 'A')    //转成小写字母
        //{
        //    w1[0]+=32;
        //}
        for(p1=head;p1!=NULL;p1=p1->next)    //判断单词在连表中是否存在
        {
            if(!strcmp(p1->w,w1))
            {
                p1->count++;   //存在就个数加1
                return;
            }
        }
    
        p1=(struct word *)malloc(sizeof(word));//不存在添加新单词
        strcpy(p1->w,w1);
        p1->count=1;
        p1->next=NULL;
        count++;    //总的单词数加加
    
        if(head==NULL)
        {
            head=p1;
        }
        else
        {
            for(p2=head;p2->next!=NULL;p2=p2->next);
            p2->next=p1;
        }
    }

    7、单词统计函数

    void wordCount()    //统计单词
    {
        int i=0,j=0;
        char word[Word_Max],c;
        while(!feof(fp))
        {
            fscanf(fp,"%c",&c);
    
            if(isnotWord(c))
            {
                word[j]='\0';
                if(j>0)
                {
                    addWord(word);
    
                }
                j=0;
            }
            else
            {
    
                word[j]=c;
                j++;
            }
            //count9(word);
            i++;
        }
    }

    三、运行结果及源代码

    文件test.txt默认路径是程序编译下的文件夹中。

     

    有人会说,”I“不是出现了吗?我统计的个数是0-4(不包括0和4),而“I”这个单词出现的次数是5,不在范围之内。注意:是.txt中有自动换行功能,所以我统计的是自己用回车键换行的行数,这个才是真正的文本的行数。

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    using namespace std;
    
    #define Name_Max 30    //文件名最大长度
    #define Word_Max 60    //每个单词最大长度
    
    typedef struct word        //连表 单词结构
    {
        char w[Word_Max];    //单词
        int count;                //个数
        struct word *next;
    }link;
    
    int count=0;
    link *head=NULL;    //连表头
    FILE *fp;           //文件指针
    int bigletter=0,littleletter=0,space=0,number=0,other=0,hang_num=0;;
    
    int isnotWord(char a)        //判断是否为字母
    {
        if(a <= 'z' && a >= 'a')
        {
            littleletter++;
            return 0;
        }
        else if(a <= 'Z' && a >= 'A')
        {
            bigletter++;
            return 0;
        }
        else if(a==' ')
        {
            space++;
            return 1;
        }
        else if(a>='1'&&a<='9')
        {
            number++;
            return 1;
        }
        else if(a=='\n')
        {
            hang_num++;
            return 1;
        }
        else
        {
            other++;
            return 1;
        }
    
    }
    
    void addWord(char *w1)        //添加单词
    {
    
        link *p1,*p2;
        //if(w1[0] <= 'Z' && w1[0] >= 'A')    //转成小写字母
        //{
        //    w1[0]+=32;
        //}
        for(p1=head;p1!=NULL;p1=p1->next)    //判断单词在连表中是否存在
        {
            if(!strcmp(p1->w,w1))
            {
                p1->count++;   //存在就个数加1
                return;
            }
        }
    
        p1=(struct word *)malloc(sizeof(word));//不存在添加新单词
        strcpy(p1->w,w1);
        p1->count=1;
        p1->next=NULL;
        count++;    //总的单词数加加
    
        if(head==NULL)
        {
            head=p1;
        }
        else
        {
            for(p2=head;p2->next!=NULL;p2=p2->next);
            p2->next=p1;
        }
    
    
    }
    
    void wordCount()    //统计单词
    {
        int i=0,j=0;
        char word[Word_Max],c;
        while(!feof(fp))
        {
            fscanf(fp,"%c",&c);
    
            if(isnotWord(c))
            {
                word[j]='\0';
                if(j>0)
                {
                    addWord(word);
                   // count9(word);
                    //count1(word,);
                }
                j=0;
            }
            else
            {
    
                word[j]=c;
                j++;
            }
            //count9(word);
            i++;
        }
    }
    
    void readWord()        //读取文件中的单词
    {
        char name[Name_Max];
        printf("请出入要读取的单词文件名[如:test.txt]:");
        scanf("%s",name);
        getchar();
        if((fp=fopen(name,"r+"))==NULL){
            printf("Open the file failure...\n");
            exit(0);
        }
        fp=fopen(name,"r");
        wordCount();
    
        fclose(fp);
    }
    
    void showWord(int a,int b)        //显示单词统计情况
    {
        link *p;
    
        printf("个数\t单词\t频率\n");
        for(p=head;p!=NULL;p=p->next)
        {
    
            if((p->count > a)&&(p->count < b))
                {
                    printf("%s\t  %d\t  %.2f\n",p->w,p->count,(float)(p->count)/count);
                }
        }
         printf("总的单词数:%d\n",count);
         printf("总共有%d行\n",hang_num+1);
         printf("总共有%d字符\n",bigletter+littleletter+space+number+other);
         printf("大写字母个数:%d  小写字母个数:%d  空格个数%d  数字个数%d  其他个数%d\n",bigletter,littleletter,space,number,other);
    
    }
    
    
    int main()
    {
        readWord();
        int a,b;
        printf("请输入阈值a和b[如:2 10]:");
        scanf("%d %d",&a,&b);
        getchar();
        showWord(a,b);
        getchar();
    }

     

    转载于:https://www.cnblogs.com/chengxs/p/5309215.html

    展开全文
  • 压缩包包含一类似WinZip的VB5演示程序(153KB) 44,actbar.ZIP 一很Cool菜单和工具栏增强控件,可以建立象Word97那样工具栏和图象菜单,文件包含范例程序(353KB) 45,printdb.ZIP 一国人自己...
  • 压缩包包含一类似WinZip的VB5演示程序(153KB) 44,actbar.ZIP 一很Cool菜单和工具栏增强控件,可以建立象Word97那样工具栏和图象菜单,文件包含范例程序(353KB) 45,printdb.ZIP 一国人自己...
  • 压缩包包含一类似WinZip的VB5演示程序(153KB) 44,actbar.ZIP 一很Cool菜单和工具栏增强控件,可以建立象Word97那样工具栏和图象菜单,文件包含范例程序(353KB) 45,printdb.ZIP 一国人自己...
  • 压缩包包含一类似WinZip的VB5演示程序(153KB) 44,actbar.ZIP 一很Cool菜单和工具栏增强控件,可以建立象Word97那样工具栏和图象菜单,文件包含范例程序(353KB) 45,printdb.ZIP 一国人自己...
  • 放在数组,输出其总和,平均数,以及大于平均数的那些数简单写一下代码流程dima(20)fori=0to19a(i)=inputbox(“输入第"+str(i+1)+"个数")nextisum=0fori=0to19sum=sum+a(i)nexti备注编一个程序,输入10个整数,统计并...

    编写VB程序.输入20个数,放在数组中,输出其总和,平均数,以及大于平均数的那些数

    简单写一下代码流程dima(20)fori=0to19a(i)=inputbox(“输入第"+str(i+1)+"个数")nextisum=0fori=0to19sum=sum+a(i)nexti备注

    编一个程序,输入10个整数,统计并输出其中正数、负数和零的个数.要求用C语言编程.

    #includemain(){intt,i,c0=0,c1=0,c2=0;for(i=0;i

    c语言 一次输入10个数要求将其最大的数打印出来 用传统的流程图怎么表示

    #include#defineN10#defineMAX(x,y)((x)>(y)?(x):(y))  //返回2个数中较大者 int

    输入3个数,输出其中最大数的算法与流程图和程序,要求使用qbasic来编程.

    clsinput"diyigeshu=";ainput"diergeshu=";binput"disangeshu=";c以上语句是输入三个数max=-999ifa>maxthenmax=aifb>m

    C语言,用指针.求输入20个数,依次输出这几个数,求最大值,最小值.

    #include#include#defineLENGTH20voidmain(){int*pBuff=(int*)malloc(sizeof(int)*LENGTH);inti,max,min;fo

    C语言程序:依次输入十个数、要求按照从小到大的顺序输出

    # include #define N 10//元素个数void sort(int a[], int

    依次将10个数输入,要求将其中最大的数输出,用传统流程图做

    1.读入a[1~10]2.max=a[1]3.for(i=1;i再问:a[1~10]是什么意思?for(i=1;i

    c语言程序:从键盘任意输入10个数,要求找出里面最大的数和最小的数,并输出这10个数.

    34219856073421985607max=9,min=0Pressanykeytocontinue#includemain(){inti,input[10],smax,smin,sum=0;

    用传统流程图标表示求解下面问题的算法:依次将10个数输入,要求将其中最大的数输出.

    1.读取输入的数字a2.循环读取下一个数字b;3.比较a和b,将他们中比较大的数值,赋值给a4.继续循环直到十个数输入完毕5,输出a即为最大数.

    C语言 依次将10个数输入,要求将其中最大的数输出.

    #include int main(){    int n=10;  &nbsp

    C语言输入10个整数,输出大于等于其平均值的数的个数

    #includeint main(){  int a[10],i,num=0;  float ave

    输入10个数 最后输出最大值和最大值的个数 最小值和最小值的个数

    #includemain(){inti,p1=0,p2=0,max,min,num[10];printf("input10numbers:\n\n");scanf("%d",&num[0]);max=

    依次将10个数输入,要求将其中最大的数输出.用c语言流程图或者ns流程图表述出来,

    #includevoidmain(){inti,a,max=0;for(i=1;i

    用C语言写一程序,要求输入10个数,输出这10个数中最大的那个数,同时输出这10个数的平均值

    #includeintmain(){inti,max,ave,a[10];printf("Enter10numbers:\n");ave=0;for(i=0;imax){max=a[i];}}ave/

    依次输入10个数,输出其中最大的数,用程序框图表示

    再问:三克油再问:用伪代码表示是什么意思呀,伪代码那些字母代表啥呀

    C# 输入10个整数,要求输出其平均值、最大值、最小值,求代码、

    /* (程序头部注释开始) * 输入描述:  * 问题描述:设计一个程序,输入10个数存入数组中,求最大值、最小值和平均值. *&

    C语言小题,用传统流程图表示:依次将10个数输入,要求输出其中最大的数.

    输入10个数存入数组a,i=0↓t=a【i】↓拿t比较a【i】,i++,i《9,----》如果t再问:1014907148@qq.com发过来吧再答:现在在上班晚上回去给你

    依次将10个数输入,要求输出其中最大的数.用传统流程图表示.我是自学初学者

    #includevoidmain(){inti,array[10],big;/*给数组所有元素赋值*/for(i=0;i

    展开全文
  • Excel有过多工作簿如何统计所有工作簿数量? 1.进入VB编程界面后:点击“视图”——打开“立即窗口” 打开后下方会弹出立即窗口如图: 立即窗口 2.在立即窗口输入如下代码——并按"回车"运行 ...

    Excel中有过多的工作簿如何统计所有的工作簿数量?

    1.进入VB编程界面后:点击“视图”——打开“立即窗口”

    打开后下方会弹出立即窗口如图:

    立即窗口

    2.在立即窗口中输入如下代码——并按"回车"运行

    
     
    
     

    debug.print ThisWorkbook.Sheets.Count

    运行后下方显示的数字为当前Excel表格里面的所有工作簿数量:

    如图Excel表格下面有56个工作簿

    如何在Excel进入VB编程界面?

    方法一.在Excel中启动“开发工具”模块进入VB编程界面

    (1)打开excel——右上角——文件——选项

    (2)在“自定义功能区”勾选“开发工具”

    (3)之后在工具栏中直接找到“开发工具”—点击“Visual Basic”进入VB编程界面

     

    方法二:通过上方工具栏中的“视图”——“宏”

    录制宏后点击“停止录制”

    然后“查看宏”进入VB编程界面

    展开全文
  • VB.NET 入门经典 (第三版)

    热门讨论 2009-07-29 16:56:26
    11.4 面向对象的编程和内存管理 348 11.4.1 垃圾回收 349 11.4.2 释放资源 353 11.4.3 整理碎片和压缩 354 11.5 小结 355 11.6 练习 356 第12章 建立类库 357 12.1 理解类库 357 12.1.1 创建类库 358 12.1.2 为...
  • 11.4 面向对象的编程和内存管理 348 11.4.1 垃圾回收 349 11.4.2 释放资源 353 11.4.3 整理碎片和压缩 354 11.5 小结 355 11.6 练习 356 第12章 建立类库 357 12.1 理解类库 357 12.1.1 创建类库 358 12.1.2 为...
  • 11.4 面向对象的编程和内存管理 348 11.4.1 垃圾回收 349 11.4.2 释放资源 353 11.4.3 整理碎片和压缩 354 11.5 小结 355 11.6 练习 356 第12章 建立类库 357 12.1 理解类库 357 12.1.1 创建类库 358 12.1.2 为...
  • 中文分词学习版

    2018-10-11 23:56:53
    在MS Windows平台下,本组件以COM接口的DLL格式进行封装,可支持所有支持COM接口调用的编程语言及脚本语言。如:PHP、JSP、ASP、ASP.net、C/C++ 、VC6.0 、VC.net、BC、C#、VB6.0 、VB.net、Delphi、Java等。 3. ...
  • csw5.0中文分词组件

    热门讨论 2009-09-01 17:30:41
    在MS Windows平台下,本组件以COM接口的DLL格式进行封装,可支持所有支持COM接口调用的编程语言及脚本语言。如:PHP、JSP、ASP、 ASP.net、C/C++ 、VC6.0 、VC.net、BC、C#、VB6.0 、VB.net、Delphi、Java等。 3. ...
  • 友情链接及网页访问量统计显示:在博客个人页面还提供了推荐给普通网络用户相关友情链接,此外,对个人页面访问量也在随时进行统计,并在个人页面进行直观显示。 博客主页面用例图如图3所示: 图3 ...
  • ASP.NET精品课程+源代码

    千次下载 热门讨论 2009-01-05 20:15:51
    在完成基本系统之后,还可在此基础上进行扩充,如ASP.NET的网络的编程和多媒体的编程以及多线程技术等。 (3).案例的实施 在案例实施前,要对ASP.NET语言的基础知识、基本理论、基本特征、语法基础、程序编译作一下...
  • 但在棋类运动,一高手可以车轮战位低手,而且毫无例外地将他们一一击败!  这些智力运动员表现出特点是,计算精确而且速度快。其行为很象东方不败。虽然关于葵花宝典传说很多,但最准确描述只有一字...
  • 1345易语言模块

    2012-01-27 19:41:59
    1345易语言模块,易语言模块大集合,够你用啦 1亦思验证码识别1.5免费版.ec 24位转单色位图模块.ec 32张发牌.ec 3D引擎支持库-eOgre.ec 69msn.ec ACCESS 到高级表格.ec Access操作.ec Access数据库压缩修复新建....
  • 1350多精品易语言模块提供下载介绍 1亦思验证码识别1.5免费版.ec 24位转单色位图模块.ec 32张发牌.ec 3D引擎支持库-eOgre.ec 69msn.ec ACCESS 到高级表格.ec Access操作.ec Access数据库压缩修复新建.ec ACCSEE...
  • 蓝精灵全能王

    2015-08-28 14:17:44
    漏,或奇数个数的遗漏,或第1个号码与第2个号码的乘积的遗漏期数,以及任 意两个指标的n期的偏差的过滤与分析~~~可以组成各种想要的形态~~~ 可以统 计各种指标的冷热~~~可以统计各种指标的振幅~~~ 总之,可以...
  • 1350多精品易语言模块提供下载

    热门讨论 2011-06-06 17:51:09
    DirectX8VB组件调用模块.ec disk.ec DisplaySettings.ec DIY 热键框模块.ec DLL.ec DLL注入模块.ec DOS命令模块.ec dqf1996.ec EC.EC edb-html.ec EdbServer1.0 客户端.ec EDB、高级表格、XLS互换.ec edb到...
  • 统计中英文字个数 获得Windows类型和版本 读INI文件 大小写金额转换 检测程序是否运行 用Delphi3编写"共享软件" 如何从任务栏上隐藏应用程序按纽 如何在Delphi程序支持文件拖放 如何运行一个程序直到它...
  • DELPHI专题--程序应用

    2010-04-06 01:11:54
    统计中英文字个数 获得Windows类型和版本 读INI文件 大小写金额转换 检测程序是否运行 用Delphi3编写"共享软件" 如何从任务栏上隐藏应用程序按纽 如何在Delphi程序支持文件拖放 如何运行一个程序直到它...
  • 实例146 在VB中执行事务 251 实例147 在查询中使用游标 253 实例148 列出网络中所有SQL Server服务器 255 实例149 利用Execute执行SQL语句 256 实例150 解决查询过程中字段类型不同问题 257 实例151 把查询...
  • 实例146 在VB中执行事务 251 实例147 在查询中使用游标 253 实例148 列出网络中所有SQL Server服务器 255 实例149 利用Execute执行SQL语句 256 实例150 解决查询过程中字段类型不同问题 257 实例151 把查询...
  • vc++ 应用源码包_6

    2012-09-15 14:59:46
    非常好实例,把网络连接UDP/TCP都插入到CList控件显示出来。 VC++视频捕捉系统 win32下 视频操作。 VC++视频会议系统(完整)有开发文档。使用了系统自带视频。 Windows核心编程(第五版)随书源代码 ...
  • vc++ 应用源码包_5

    2012-09-15 14:45:16
    非常好实例,把网络连接UDP/TCP都插入到CList控件显示出来。 VC++视频捕捉系统 win32下 视频操作。 VC++视频会议系统(完整)有开发文档。使用了系统自带视频。 Windows核心编程(第五版)随书源代码 ...
  • vc++ 应用源码包_4

    2012-09-15 14:38:35
    非常好实例,把网络连接UDP/TCP都插入到CList控件显示出来。 VC++视频捕捉系统 win32下 视频操作。 VC++视频会议系统(完整)有开发文档。使用了系统自带视频。 Windows核心编程(第五版)随书源代码 ...
  • vc++ 应用源码包_3

    2012-09-15 14:33:15
    非常好实例,把网络连接UDP/TCP都插入到CList控件显示出来。 VC++视频捕捉系统 win32下 视频操作。 VC++视频会议系统(完整)有开发文档。使用了系统自带视频。 Windows核心编程(第五版)随书源代码 ...
  • vc++ 应用源码包_2

    2012-09-15 14:27:40
    非常好实例,把网络连接UDP/TCP都插入到CList控件显示出来。 VC++视频捕捉系统 win32下 视频操作。 VC++视频会议系统(完整)有开发文档。使用了系统自带视频。 Windows核心编程(第五版)随书源代码 ...
  • vc++ 应用源码包_1

    2012-09-15 14:22:12
    非常好实例,把网络连接UDP/TCP都插入到CList控件显示出来。 VC++视频捕捉系统 win32下 视频操作。 VC++视频会议系统(完整)有开发文档。使用了系统自带视频。 Windows核心编程(第五版)随书源代码 ...

空空如也

空空如也

1 2 3
收藏数 56
精华内容 22
关键字:

vb中统计个数的编程