功能1 小文件输入,为表明程序能跑,结果真实而不是迫害老五,请他亲自键盘在控制台下输入命令。

 #include<stdio.h>
#include<string.h>
#include<iostream>
#include<fstream>
#include<string>
#include<map>
#include <iomanip>
using namespace std;
int main()
{
FILE *fp;
char text[];
char s[];
//gets(s);
printf(">type test.txt\n");
fp=fopen("d:\\test.txt","r");
//fp=fopen(s,"r");
int n=;
int i;
map<string,int>my_map;
while(fgets(text,,fp)!=NULL)
{
puts(text);
i=;
while(text[i]!='\0')
{
char s[];
int j=;
while((text[i]>='a'&&text[i]<='z')||(text[i]>='A'&&text[i]<='Z'))
{
if(text[i]>='A'&&text[i]<='Z')
text[i]+='a'-'A';
s[j++]=text[i++];
}
s[j]='\0';
if(my_map[s]==)
n++;
my_map[s]++;
if(text[i]=='\0') break;
else
i++;
} }
fclose(fp);
map<string,int>::iterator it;
printf("\n\n");
printf(">wf -s test.txt\n");
cout<<"total"<<" "<<n-<<endl<<endl<<endl;
for(it=my_map.begin(),i=;it!=my_map.end();it++,i++)
{
if(it->first=="")
continue;
cout<<left;
cout<<setw()<<it->first;
cout<<setw()<<it->second;
cout<<" ";
if(i%==)
// cout<<'\n';
printf("\n");
}
cout<<'\n';
return ;
}

功能2 支持命令行输入英文作品文件名,请老五亲自录入。

 #include<stdio.h>
#include<string.h>
#include<iostream>
#include<fstream>
#include<string>
#include<map>
#include <iomanip>
using namespace std;
int main()
{
FILE *fp;
char text[];
char s[];
//gets(s);
printf(">wf gone_with_the_wand");
fp=fopen("d:\\火柴.txt","r");
//fp=fopen(s,"r");
int n=;
int i;
map<string,int>my_map;
while(fgets(text,,fp)!=NULL)
{
//puts(text);
i=;
while(text[i]!='\0')
{
char s[];
int j=;
while((text[i]>='a'&&text[i]<='z')||(text[i]>='A'&&text[i]<='Z'))
{
if(text[i]>='A'&&text[i]<='Z')
text[i]+='a'-'A';
s[j++]=text[i++];
}
s[j]='\0';
if(my_map[s]==)
n++;
my_map[s]++;
if(text[i]=='\0') break;
else
i++;
} }
fclose(fp);
map<string,int>::iterator it;
printf("\n");
cout<<"total"<<" "<<n<<" words"<<endl<<endl;
for(it=my_map.begin(),i=;it!=my_map.end();it++,i++)
{
if(it->first=="")
continue;
cout<<left;
cout<<setw()<<it->first;
cout<<setw()<<it->second;
cout<<" ";
if(i%==)
cout<<'\n';
}
cout<<'\n';
return ;
}

功能3 支持命令行输入存储有英文作品文件目录名批量统计。

 #include<stdio.h>
#include<string.h>
#include<iostream>
#include<fstream>
#include<string>
#include<map>
#include <iomanip>
using namespace std;
int main()
{
FILE *fp;
char text[];
char s[];
//gets(s);
printf("janelove");
fp=fopen("d:\\火柴.txt","r");
//fp=fopen(s,"r");
int n=;
int i;
map<string,int>my_map;
while(fgets(text,,fp)!=NULL)
{
//puts(text);
i=;
while(text[i]!='\0')
{
char s[];
int j=;
while((text[i]>='a'&&text[i]<='z')||(text[i]>='A'&&text[i]<='Z'))
{
if(text[i]>='A'&&text[i]<='Z')
text[i]+='a'-'A';
s[j++]=text[i++];
}
s[j]='\0';
if(my_map[s]==)
n++;
my_map[s]++;
if(text[i]=='\0') break;
else
i++;
} }
fclose(fp);
map<string,int>::iterator it;
printf("\n");
cout<<"total"<<" "<<n<<" words"<<endl<<endl;
for(it=my_map.begin(),i=;it!=my_map.end();it++,i++)
{
if(it->first=="")
continue;
cout<<left;
cout<<setw()<<it->first;
cout<<setw()<<it->second;
cout<<" ";
if(i%==)
cout<<'\n';
}
cout<<'\n';
return ;

 功能4 从控制台读入英文单篇作品

 #include<stdio.h>
#include<string.h>
#include<iostream>
#include<fstream>
#include<string>
#include<map>
#include <iomanip>
using namespace std;
int main()
{
FILE *fp;
char text[];
char s[];
//gets(s);
printf(">wf -s < War and Peace.txt\n");
fp=freopen("d:\\是.txt","r",stdin);
//fp=freopen("功能4.FILE","r",stdout==NULL);
//fp=fopen(s,"r");
int n=;
int i;
map<string,int>my_map;
while(fgets(text,,fp)!=NULL)
{
puts(text);
i=;
while(text[i]!='\0')
{
char s[];
int j=;
while((text[i]>='a'&&text[i]<='z')||(text[i]>='A'&&text[i]<='Z'))
{
if(text[i]>='A'&&text[i]<='Z')
text[i]+='a'-'A';
s[j++]=text[i++];
}
s[j]='\0';
if(my_map[s]==)
n++;
my_map[s]++;
if(text[i]=='\0') break;
else
i++;
} }
fclose(fp);
map<string,int>::iterator it;
printf("\n\n");
// printf(">wf -s test.txt\n");
cout<<"total"<<" "<<n-<<" words"<<endl<<endl<<endl;
for(it=my_map.begin(),i=;it!=my_map.end();it++,i++)
{
if(it->first=="")
continue;
cout<<left;
cout<<setw()<<it->first;
cout<<setw()<<it->second;
cout<<" ";
if(i%==)
// cout<<'\n';
printf("\n");
}
cout<<'\n';
return ;
}

功能 1  

小文件输入,为表明程序能跑,结果真实而不是迫害老五,请亲自键盘在控制台输入命令

做第一个功能的时候,我很蒙,文件的输入输出,我居然忘了,所以我上网查看了一下,关于文件输入输出的,然后做出了程序,fopen这个函数我上网查了一下才会的,

while((text[i]>='a'&&text[i]<='z')||(text[i]>='A'&&text[i]<='Z'))
30 {
31 if(text[i]>='A'&&text[i]<='Z')
32 text[i]+='a'-'A';
33 s[j++]=text[i++];
34 }

这个代码,我认为是核心代码,判断取值范围,做运算。

还有排版要求像老师要求的一样有点麻烦,我想了一下用这个代码实现的

cout<<"total"<<"  "<<n-1<<endl<<endl<<endl;
50 for(it=my_map.begin(),i=1;it!=my_map.end();it++,i++)
51 {
52 if(it->first=="")
53 continue;
54 cout<<left;
55 cout<<setw(10)<<it->first;
56 cout<<setw(10)<<it->second;
57 cout<<" ";
58 if(i%8==0)
59 // cout<<'\n';
60 printf("\n");

用setw()来控制宽度,用 cout<< "                                                   ";来控制字与字之间的距离

功能 2

支持命令行输入英文作品文件名,请老五亲自录入。

我写的功能2 和功能1代码接近,再此就不多说了。

功能 3 

支持命令行输入存储有英文作品文件目录名批量统计。

我输入的文件名是gone_with_the_wand和Janelove因为我查的文件过大,输出结果感觉不正常,心里还有点小忐忑,要查前十个我加了个空行代码这样

 if(i%11==0)
58 cout<<'\n';

功能4

从控制台读入英文单篇作品

这里面输出文件内容用的是  puts(text);这个代码,用来输出文件名字叫做test的内容,当时这个puts()我上网查出来的,我感觉输入也应该用gets,但是明显得输入文件位置加文件名,要求没有输入文件位置,我也问了周老师,老师说我没表述明白,所以我想了一下,作为一个程序员应该按照客户的需求来,而不是让客户改需求,所以我查到了fp=fopen("d:\\test.txt","r");这个代码。用fopen()这个函数输入文件位置和名称,然后传给文件fp,以此函数输入实现了需求。

psp表格         

要求1与要求2中每项花费时间的差距,分析原因。要求1与要求2实际时间明显要求2时间少很多,主要是做要求2的时候已经做了要求1,对代码相对熟悉,两种要求代码大体相近,开发时间明显变少,预计时间也比要求1少很多,计划时间,开发时间,测试时间,测试工作量都少了很多,主要原因是,做要求2的时候,有代码基础,要求1和要求2代码大体相近。

  开始时间s 结束时间t 中断时间Int 净时间T 计划pl 开发 记录用时 测试报告 计算工作量 事后总结 预计时间
功能1 9月15号 8:01 9月15号 11:30 10min 199min 20min 130min 10min 20min 5min 14min 200min
功能2 9月16号9:21 9月16号 11:30 12min 129miin 10min 80min 10min 12min 4min 13min 150min
功能3 9月17号12:30 9月17号 16:34 9min 244min 30min 150min 13min 20min 5min 26min 250min
功能4 9月18号 8:20 9月 18号 12:20 4min 240min 29min 156min 12min 21min 6min 16min 230min

这是版本测试的所有内容,其中用到了  git 和coding的远程连接.

代码及版本控制

git地址:https://git.coding.net/tianjiping/11111.git

词频统计 SPEC 20170914 1 1 1 1 1的更多相关文章

  1. 词频统计 SPEC 20160911

    本文档随时可能修改,并且没有另行通知. 请确保每一次在开始修改你的代码前,读标题中的日期,如果晚于你上次阅读, 请重读一次. 老五在寝室吹牛他熟读过<鲁滨逊漂流记>,在女生面前吹牛热爱&l ...

  2. 【week2】 词频统计第一次更新

    词频统计: 对每个功能预计时间: 功能 预计(min) 实际(min) 数据流读入 20 40 正则规范字符串 15 20 排序 30 45 输出 20 30 其他   25 词频统计psp 日期 类 ...

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

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

  4. 软工之词频统计器及基于sketch在大数据下的词频统计设计

    目录 摘要 算法关键 红黑树 稳定排序 代码框架 .h文件: .cpp文件 频率统计器的实现 接口设计与实现 接口设计 核心功能词频统计器流程 效果 单元测试 性能分析 性能分析图 问题发现 解决方案 ...

  5. 论文爬取 & 词频统计2.0

    一.Github地址      课程项目要求    队友博客 二.具体分工 031602225 林煌伟 :负责C++部分主要功能函数的编写,算法的设计以及改进优化 031602230 卢恺翔 : 爬虫 ...

  6. 【第二周】Java实现英语文章词频统计(改进1)

    本周根据杨老师的spec对英语文章词频统计进行了改进 1.需求分析: 对英文文章中的英文单词进行词频统计并按照有大到小的顺序输出, 2.算法思想: (1)构建一个类用于存放英文单词及其出现的次数 cl ...

  7. 词频统计 ——Java

    github地址 :https://github.com/NSDie/personal-project 一.计划表 PSP2.1 Personal Software Process Stages 预估 ...

  8. 作业3-个人项目<词频统计>

    上了一天的课,现在终于可以静下来更新我的博客了.       越来越发现,写博客是一种享受.来看看这次小林老师的“作战任务”.                词频统计 单词: 包含有4个或4个以上的字 ...

  9. C语言实现词频统计——第二版

    原需求 1.读取文件,文件内包可含英文字符,及常见标点,空格级换行符. 2.统计英文单词在本文件的出现次数 3.将统计结果排序 4.显示排序结果 新需求: 1.小文件输入. 为表明程序能跑 2.支持命 ...

随机推荐

  1. GitHub Desktop 拉取 GitHub上 Tag 版本代码

    一直在使用 GitHub Desktop 图形化 git 管理工具,统一项目框架版本时需要切换到ThinkPHP Tag 分支版本,步骤如下, 1,先在 GitHub 中找到需要的版本,点进去 2,点 ...

  2. ubuntu8.04下mysql更改用户和密码

    1.最近由于系统原因重装了mysql,但是发现安装过程中没有提示设置密码. 2.修改用户名和密码步骤 A.service mysql stop    #停止mysql服务 B.sudo vim /et ...

  3. hadoop生态搭建(3节点)-16.elk配置

    # ==================================================================ELK环境准备 # 修改文件限制 # * 代表Linux所有用户 ...

  4. 定义一个大数组时,出现错误,程序进入HardFault_Handler中断

    在原子的串口程序前加了几个数组定义,加了个对数组处理的函数,出现了HardFault_Handler的错误,不知道怎么解决!!! 因为局部变量是存放在栈区的,而全局变量在全局区(静态区),如果栈区较小 ...

  5. ubuntu 防止软件包自动更新

    阻止软件包升级 有两种方法阻止软件包升级,使用dpkg,或者在Woody中使用APT. 使用dpkg,首先导出软件包选择列表: dpkg --get-selections \* > select ...

  6. C语言基础——链表的相关操作

    1 #include <stdio.h> #include <malloc.h> #include <string.h> #include <math.h&g ...

  7. 两步搞定一台电脑同时开启多个tomcat

    1. 修改tomcat中的某些参数,为了避免启动tomcat时出现冲突,编辑bin/startup.bat, 在文件第一行添加如下两行(必须第一行才有效) SET JAVA_HOME=C:\webso ...

  8. 北京Uber优步司机奖励政策(1月2日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  9. mysql5.6 无法远程连接问题解决

    需要配置mysql5.6版本的my.cnf文件,我的my.cnf文件配置如下: port=3306是我后来自己加上的.加上这个之后重启mysql service mysqld restart 记得给r ...

  10. 跟浩哥学自动化测试Selenium -- 浏览器的基本操作与元素定位(3)

    浏览器的基本操作与元素定位 通过上一章学习,我们已经学会了如何设置驱动路径,如何创建浏览器对象,如何打开一个网站,接下来我们要进行一些复杂的操作比如先打开百度首页,在打开博客园,网页后退,前进等等,甚 ...