博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
结对项目 - 词频统计
阅读量:6199 次
发布时间:2019-06-21

本文共 2295 字,大约阅读时间需要 7 分钟。

目的与要求

 


  • 代码复审练习
  • 结对练习
  • 编写单元测试
  • 基于作业3的结果,读取一个较小的文本文件,统计该文件中的单词的频率,并将统计结果输出到当前目录下的 Result1.txt 文件。 (第一阶段初稿完成该要求)
  • 命令行格式: 提示符> Myapp.exe -f filename.txt > Result.txt (PS:C++ 程序,Java 程序输出方式类似) filename.txt 为前面下载的文件名。
  • 解释:
    • 选项 -f 表示后面跟文件名
    • 输出格式规定(参考中的示例):
      • 首先按照频率由高到低排序
      • 频率一样的词, 按照字典顺序排序
  • 此外, 读取一个较大的文本文件实验对比程序执行效率,做如下改进,比较改进前后程序执行时间。

 

 

 

 

详细内容


 

 

  • 开发语言:C++    
  • 开发工具:Codeblocks
  • 结对伙伴:陈俊宇
  • 准备工作:
  1. 思路:

基于上一个 个人项目 - 词频统计 的程序和结果,将本次所需的文件放在指定的地址上,统计该文件中的单词的频率,并使用文件流的写入将结果写入文件。

2. 分工:

我负责主要大框架的编写,我的小伙伴负责在这个框架里细化逻辑与语法语句的关系。

  • 源代码
#include
#include
#include
#include
using namespace std;void screen(int chioce) //对内容进行筛选{ char input[50][50],newinput[50][50],newopen[100]; char *open; if(chioce==1) //以输入方式对字符串进行存储与筛选 { cout<<"请输入一串字符串,以回车键作为结束:"; for(int m=0;input[m]!='\0';m++) //将字符串以二维字符数组的形式储存起来 { for(int n=0;input[n]!='\0';n++) { cin>>input[m][n]; } } for(int m=0;input[m]!='\0';m++)//将输入的字符串的大写转换为小写 { for(int n=0;input[m][n]!='\0';n++) { if(input[m][n]>='A'&&input[m][n]<='Z'&&strlen(input)>=4) //限制字符串大小为4 { int i=0,j=0; newinput[i][j]=toupper(input); } } } sta(newinput,m*n); } else //以录入方式对字符串进行存储与筛选 { int i=0,n; ifstream open("D:\\A_Tale_of_Two_Cities.txt"); open=new int[n]; while(open>>open[i],strlen(open)>=4) //字符串大于4的才给予储存的机会 { newopen[i]=toupper(open); //大写转换成小写 i++; } sta(newopen,i); }}void sta(char word[],int wordnum[]) //统计单词出现的次数{ char newword[],newwordnum[]; cout<<"统计的单词出现的次数如下:\n"; for(int i=0;;i++) { for(int j=0;if(strcmp(newword[i],word[j]));j++) { newwordnum[i]++; } cout<
<<'\t'<
<
>chioce; if(chioce==1||chioce==2) //用户选择 { screen(chioce); } ofstream outfile; //用文件流写入文件结果 outfile.open( "Result1.txt" ) return 0;}
  • 运行结果

    

  • 小结

第一次尝试与其他人一起结对编程,对于一个人的编程,两个人更明显的可以互相交流和弥补双方的缺点和弱势。

对于在原来程序上完善和原数据上的变动更得心应手了。

  • 源代码Github地址

 

转载于:https://www.cnblogs.com/hyating/p/5309127.html

你可能感兴趣的文章
大数据下高并发的处理详解
查看>>
postgres中的中文分词zhparser
查看>>
虚拟机怎样进入Bios
查看>>
Linux 文件操作函数
查看>>
MySQL 查找锁之间依赖关系的信息和最源头锁的thread_id号及关系
查看>>
PostgreSQL9.5和JSONB的强大功能
查看>>
简单java在线测评程序
查看>>
使用IconFont减小iOS应用体积
查看>>
Spring 官网下载zip jar
查看>>
BlueStacks安装教程
查看>>
【sql调优】动态采样
查看>>
MS SQL 建表SQL的脚本
查看>>
php中assert方法的安全问题
查看>>
CASpringAnimation的使用
查看>>
jQuery仿QQ空间图片查看特效(全屏,放大,缩小,旋转,镜像,鼠标滚轮缩放)...
查看>>
vSphere web client 迁移虚拟机
查看>>
MongoDB使用教程系列文章--Driver原理(初始化)
查看>>
提升网站用户体验—WebP 图片的高效使用
查看>>
系统分布式情况下最终一致性方案梳理
查看>>
八种不同类型的响应式网站建设赏析
查看>>