功能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. 了解jQuery并掌握jQuery对象和DOM对象的区别

    jQuery的优势: 开源--开放源代码 轻量级 强大的选择器 出色的DOM操作(对DOM元素的一个增删改查) 完善的Ajax,出色的浏览器兼容性,丰富的插件支持,完善的文档(说明书) 链式操作方式, ...

  2. js之广告

    涉及到offset等有关获取各种尺寸问题下 <!doctype html> <html lang="en"> <head> <meta c ...

  3. animation(动画)设置

    1.animation 动画 概念:当您在 @keyframes 中创建动画时,请把它捆绑到某个选择器,否则不会产生动画效果. 通过规定至少以下两项 CSS3 动画属性,即可将动画绑定到选择器: 规定 ...

  4. QEP之init()和dispatch()流程图

    抽象状态机类QFsm或QHsm有一个函数指针,用于在继承的具体状态机类中指向具体的状态函数,其有两个对外的接口函数init()和dispatch(),其工作原理是理解状态机处理事件过程的关键. 具体状 ...

  5. Qt :undefined reference to vtable for "xxx::xxx"

    现象: 类加上宏 Q_OBJECT 就会报错 :undefined reference to vtable for "xxx::xxx" 解决方法: 重新 qmake 其他情况,查 ...

  6. Java多线程一些基础知识

    最近复习了一些多线程方面的基础知识,做一下总结,多以自己的理解来文字叙述,如果有漏点或者理解错的地方,欢迎各位大佬多多指出: ps:线程分为用户线程和守护线程,当程序中的所有的用户线程都执行完了之后, ...

  7. transient是干嘛的

    Java的serialization提供了一种持久化对象实例的机制.当持久化对象时,可能有一个特殊的对象数据成员,我们不想用 serialization机制来保存它.为了在一个特定对象的一个域上关闭s ...

  8. Git使用列表(四)

    最近,由于自己的一个项目,导致自己的关于自己的要使用Git的很多的命令,突然发现自己的git的还有许多不知道的东西 不过,在这个工作的过程中,也发现自己的一些很大的缺陷,就是自己题目理解力有限,明明就 ...

  9. 北京Uber优步司机奖励政策(12月15日)

    用户组:人民优步及电动车(适用于12月15日) 滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:htt ...

  10. 机器学习实战:KNN代码报错“AttributeError: 'dict' object has no attribute 'iteritems'”

    报错代码: sortedClassCount = sorted(classCount.iteritems(), key=operator.itemgetter(1), reverse=True) 解决 ...