功能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. JavaBen 中 如何将字段设置为 "text" 文本类型

    @Lob @Column(name="FEEDBACK_MESSAGE",columnDefinition="TEXT", nullable=true) pub ...

  2. Hadoop1.0 与Hadoop2.0

    Hadoop1.0的局限-MapReduce •扩展性 –集群最大节点数–4000 –最大并发任务数–40000 (当 map-reduce job 非常多的时候,会造成很大的内存开销,潜在来说,也增 ...

  3. Ruby中的类

    初识ruby中的类 只需要简单的两行 class Point end 如果我们此时实例化一个类那么他会有一些自省(introspection)的方法 p = Point.new p.methodes( ...

  4. Leecode刷题之旅-C语言/python-204计数质数

    /* * @lc app=leetcode.cn id=204 lang=c * * [204] 计数质数 * * https://leetcode-cn.com/problems/count-pri ...

  5. PAT (Basic Level) Practice 1032 挖掘机技术哪家强

    个人练习 为了用事实说明挖掘机技术到底哪家强,PAT 组织了一场挖掘机技能大赛.现请你根据比赛结果统计出技术最强的那个学校. 输入格式: 输入在第 1 行给出不超过 10​^5的正整数 N,即参赛人数 ...

  6. lvs健康检查脚本第三版

    如下是学习完马哥视频lvs后改写的健康检查脚本第三版.利用工作之余三四个小时时间才把整个逻辑搞清楚,有时候自己都有点蒙圈,尤其是在写到while循环的时候.总的来说非常感谢马哥的慷慨解囊!脚本原稿及思 ...

  7. 使用JAX-WS(JWS)发布WebService(一)

    JAX-WS概述: 通过Main发布一个简单WebService: JAX-WS(Java API for XML Web Services)规范是一组XML web services的JAVA AP ...

  8. JavaScript基础part1

    JavaScript介绍 你不知道它是什么就学?这就是一个网页嵌入式脚本语言...仅此而已 JavaScript组成 一个完整的 JavaScript 实现是由以下 3 个不同部分组成的: 核心(EC ...

  9. WebRTC中Android Demo中的远程视频流的获取到传输

    1.CallActivity#onCreate 执行startCall开始连接或创建房间 2.WebSocketClient#connectToRoom 请求一次服务器 3.回调到CallActivi ...

  10. 使用putty远程登录Ubuntu时,报Network error:Connection refused错误及解决

    putty远程登录Ubuntu,弹出Network error:Connection refused的错误提示框,就是因为Ubuuntu没有安装ssh服务. 执行命令: sudo apt instal ...