结对项目 - 词频统计
目的与要求
- 代码复审练习
- 结对练习
- 编写单元测试
- 基于作业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/
- 准备工作:
- 思路:
基于上一个 个人项目 - 词频统计 的程序和结果,将本次所需的文件放在指定的地址上,统计该文件中的单词的频率,并使用文件流的写入将结果写入文件。
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
结对项目 - 词频统计相关推荐
- 软件工程之个人项目--词频统计
不得不说对于菜鸟级的我,这是一次心酸的经历啊...自打接到王老师布置的这个任务(个人项目)之后,我心里一直在想着自己要用哪种语言来完成我的任务.以前多多少少写过一些程序的,这又想起了数据库小学期与永哥 ...
- #软工实践-个人项目-词频统计
Github项目地址 https://github.com/pandaeathzr/personal-project PSP表格: PSP2.1 Personal Software Process S ...
- 个人和结对项目 - 英语单词词频统计
个人或结对编程项目 英语单词词频统计程序 (最新版本在这里) 实现一个命令行程序,支持几种模式下的单词词频统计 Implement a console application to tally the ...
- 软工结对项目之词频统计update
队友 胡展瑞 031602215 作业页面 GitHub 具体分工 111500206 赵畅:负责WordCount的升级,添加新的命令行参数支持(自定义输入输出文件,权重词频统计,词组统计等所有新功 ...
- 201671010457 朱石景 实验四《英文文本词频统计分析》 结对项目报告
项目 内容 这个作业属于哪个课程 西北师范大学软件工程 作业要求 实验四 软件工程结对项目 本次实验我的GitHub地址 点击进入 课程学习目标 熟悉软件开发整体流程,提升自身能力 任务一 点评信息 ...
- 201671010417 金振兴 词频统计软件项目报告
1.需求分析 按照<构建之法>第2章中2.3所述PSP流程,使用JAVA编程语言,独立完成一个英文文本词频统计的软件开发. .程序可读入任意英文文本文件,该文件中英文词数大于等于1个. . ...
- 201671010456-张琼 实验二 词频统计软件项目报
一.需求分析 1.程序要能够读入英文文本,并且要求此文本不能为空. 2.程序能容纳的英文单词要在10万以上. 3.程序要能输入想查找的一个或者多个英文单词,并且统计出它出现的次数,并且把它的统计结果以 ...
- 201671030128+词频统计软件项目报告
一.需求分析 根据实验二 软件工程个人项目的要求本次软件项目的需求有以下几点: 1.程序可读入任意英文文本文件,该文件中英文词数大于等于1个,程序需要很壮健,能读取容纳英文原版<哈利波特> ...
- 201671030125+词频统计软件项目报告
项目 内容 这个作业属于哪个课程? 2016级计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里? 实验二 软件工程个人项目 我在这个课程的目标是? 按时完成老师给的任务,复习JAVA ...
最新文章
- Vaptcha验证码配置实现人机验证
- linux oracle 用户创建,LINUX下Oracle数据库用户创建方法详解
- HCNE题库附件、可下载
- EXT中给时间控件设置默认值
- 图注意力网络(Graph Attention Network, GAT) 模型解读与代码实现(tensorflow2.0)
- 【Java】Eclipse输入命令行参数的方法
- 10月8日提交的结对编程工程中的经验和教训
- php电子备课系统,电子备课-华思信息-智慧校园-智慧班牌-智慧课堂-智慧教育整体解决方案...
- 强化学习7——梯度及梯度下降法
- 电脑用户计算机名文件夹,win7更改计算机用户名_win7更改用户名文件夹
- 用于打开文件的php函数是,PHP文件操作(PHP读写文件)
- hnust Snowman
- 加密所有事物,将数据安全存储在任何地方
- 怎么下载淘宝商品大图
- Arcpy批量导出shp文件属性表——使用arcpy.da.SearchCursor函数
- SLAM十四讲之第5讲--相机标定
- Raki的读paper小记:Image as a Foreign Language: BEIT Pretraining for All Vision and Vision-Language Tasks
- 攻防世界sherlock
- C#中调用WIN32API函数
- PSPNet 算法笔记
热门文章
- 10/100. Majority Element
- mybatis控制台打印执行的sql语句
- SQL入门(3):定义约束/断言assertion/触发器trigger
- Code First 迁移
- JavaScript权威指南--多媒体和图形编程
- css背景图片、圆角、盒子阴影、浮动
- 解决MWPhotoBrowser中的SDWebImage加载大图导致的内存警告问题
- 系统要不要更新_手机经常弹出“系统更新”,到底要不要更新?用户:后悔已来不及...
- element from表单个别select 出现 一开始就校验了数据,且有数据还通不过校验,选中的项叉不掉问题。
- Vue项目实战09 : vue3.0实现点击切换验证码(组件)及校验