目的与要求


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

详细内容


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

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

2. 分工:

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

  • 源代码
#include<iostream>
#include<fstream>
#include<cstring>
#include<cctype>
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<<newword[i]<<'\t'<<newwordnum[i]<<endl;}}void SortWordDown(char word,int size )  //以单词出现频率降序排列单词
{for (int i=0;i<size;i++){for(int j=0; j<size-1;j++){if (words[j]<words[j+1]){exchange(words[j],words[j+1]);}}}
}int main( )
{int chioce;cout<<"请问是输入一串字符串还是导入一个文本文件?(1:字符串,2;文本文件):";cin>>chioce;if(chioce==1||chioce==2)        //用户选择
    {screen(chioce);}ofstream outfile;               //用文件流写入文件结果outfile.open( "Result1.txt" )return 0;
}

  • 运行结果

    

  • 小结

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

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

  • 源代码Github地址

https://github.com/Jennyhyt/My-source-code/blob/master/TeamWork-WFS.cpp

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

结对项目 - 词频统计相关推荐

  1. 软件工程之个人项目--词频统计

    不得不说对于菜鸟级的我,这是一次心酸的经历啊...自打接到王老师布置的这个任务(个人项目)之后,我心里一直在想着自己要用哪种语言来完成我的任务.以前多多少少写过一些程序的,这又想起了数据库小学期与永哥 ...

  2. #软工实践-个人项目-词频统计

    Github项目地址 https://github.com/pandaeathzr/personal-project PSP表格: PSP2.1 Personal Software Process S ...

  3. 个人和结对项目 - 英语单词词频统计

    个人或结对编程项目 英语单词词频统计程序 (最新版本在这里) 实现一个命令行程序,支持几种模式下的单词词频统计 Implement a console application to tally the ...

  4. 软工结对项目之词频统计update

    队友 胡展瑞 031602215 作业页面 GitHub 具体分工 111500206 赵畅:负责WordCount的升级,添加新的命令行参数支持(自定义输入输出文件,权重词频统计,词组统计等所有新功 ...

  5. 201671010457 朱石景 实验四《英文文本词频统计分析》 结对项目报告

    项目 内容 这个作业属于哪个课程 西北师范大学软件工程 作业要求 实验四 软件工程结对项目 本次实验我的GitHub地址 点击进入 课程学习目标 熟悉软件开发整体流程,提升自身能力 任务一 点评信息 ...

  6. 201671010417 金振兴 词频统计软件项目报告

    1.需求分析 按照<构建之法>第2章中2.3所述PSP流程,使用JAVA编程语言,独立完成一个英文文本词频统计的软件开发. .程序可读入任意英文文本文件,该文件中英文词数大于等于1个. . ...

  7. 201671010456-张琼 实验二 词频统计软件项目报

    一.需求分析 1.程序要能够读入英文文本,并且要求此文本不能为空. 2.程序能容纳的英文单词要在10万以上. 3.程序要能输入想查找的一个或者多个英文单词,并且统计出它出现的次数,并且把它的统计结果以 ...

  8. 201671030128+词频统计软件项目报告

    一.需求分析 根据实验二 软件工程个人项目的要求本次软件项目的需求有以下几点: 1.程序可读入任意英文文本文件,该文件中英文词数大于等于1个,程序需要很壮健,能读取容纳英文原版<哈利波特> ...

  9. 201671030125+词频统计软件项目报告

    项目 内容 这个作业属于哪个课程? 2016级计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里? 实验二 软件工程个人项目 我在这个课程的目标是? 按时完成老师给的任务,复习JAVA ...

最新文章

  1. Vaptcha验证码配置实现人机验证
  2. linux oracle 用户创建,LINUX下Oracle数据库用户创建方法详解
  3. HCNE题库附件、可下载
  4. EXT中给时间控件设置默认值
  5. 图注意力网络(Graph Attention Network, GAT) 模型解读与代码实现(tensorflow2.0)
  6. 【Java】Eclipse输入命令行参数的方法
  7. 10月8日提交的结对编程工程中的经验和教训
  8. php电子备课系统,电子备课-华思信息-智慧校园-智慧班牌-智慧课堂-智慧教育整体解决方案...
  9. 强化学习7——梯度及梯度下降法
  10. 电脑用户计算机名文件夹,win7更改计算机用户名_win7更改用户名文件夹
  11. 用于打开文件的php函数是,PHP文件操作(PHP读写文件)
  12. hnust Snowman
  13. 加密所有事物,将数据安全存储在任何地方
  14. 怎么下载淘宝商品大图
  15. Arcpy批量导出shp文件属性表——使用arcpy.da.SearchCursor函数
  16. SLAM十四讲之第5讲--相机标定
  17. Raki的读paper小记:Image as a Foreign Language: BEIT Pretraining for All Vision and Vision-Language Tasks
  18. 攻防世界sherlock
  19. C#中调用WIN32API函数
  20. PSPNet 算法笔记

热门文章

  1. 10/100. Majority Element
  2. mybatis控制台打印执行的sql语句
  3. SQL入门(3):定义约束/断言assertion/触发器trigger
  4. Code First 迁移
  5. JavaScript权威指南--多媒体和图形编程
  6. css背景图片、圆角、盒子阴影、浮动
  7. 解决MWPhotoBrowser中的SDWebImage加载大图导致的内存警告问题
  8. 系统要不要更新_手机经常弹出“系统更新”,到底要不要更新?用户:后悔已来不及...
  9. element from表单个别select 出现 一开始就校验了数据,且有数据还通不过校验,选中的项叉不掉问题。
  10. Vue项目实战09 : vue3.0实现点击切换验证码(组件)及校验