词频统计 SPEC 20170914 1 1 1 1 1

 

 

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

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<iostream>
 4 #include<fstream>
 5 #include<string>
 6 #include<map>
 7 #include <iomanip>
 8 using namespace std;
 9 int main()
10 {
11     FILE *fp;
12     char text[1024];
13     char s[100];
14     //gets(s);
15     printf(">type test.txt\n");
16     fp=fopen("d:\\test.txt","r");
17     //fp=fopen(s,"r");
18     int n=0;
19     int i;
20     map<string,int>my_map;
21     while(fgets(text,1024,fp)!=NULL)
22     {
23         puts(text);
24         i=0;
25         while(text[i]!='\0')
26         {
27             char s[30];
28             int j=0;
29             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             }
35             s[j]='\0';
36             if(my_map[s]==0)
37             n++;
38             my_map[s]++;
39             if(text[i]=='\0') break;
40             else
41             i++;
42         }
43          
44     }
45     fclose(fp);
46     map<string,int>::iterator it;
47     printf("\n\n");
48     printf(">wf  -s  test.txt\n");
49     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");
61     }
62     cout<<'\n';  
63     return 0;
64 }
View Code

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

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<iostream>
 4 #include<fstream>
 5 #include<string>
 6 #include<map>
 7 #include <iomanip>
 8 using namespace std;
 9 int main()
10 {
11     FILE *fp;
12     char text[1024];
13     char s[100];
14     //gets(s);
15     printf(">wf  gone_with_the_wand");
16     fp=fopen("d:\\火柴.txt","r");
17     //fp=fopen(s,"r");
18     int n=0;
19     int i;
20     map<string,int>my_map;
21     while(fgets(text,1024,fp)!=NULL)
22     {
23         //puts(text);
24         i=0;
25         while(text[i]!='\0')
26         {
27             char s[30];
28             int j=0;
29             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             }
35             s[j]='\0';
36             if(my_map[s]==0)
37             n++;
38             my_map[s]++;
39             if(text[i]=='\0') break;
40             else
41             i++;
42         }
43          
44     }
45     fclose(fp);
46     map<string,int>::iterator it;
47     printf("\n");
48     cout<<"total"<<"  "<<n<<"  words"<<endl<<endl;
49     for(it=my_map.begin(),i=1;it!=my_map.end();it++,i++)
50     {
51         if(it->first=="")
52         continue;
53         cout<<left;
54         cout<<setw(10)<<it->first;
55         cout<<setw(10)<<it->second;
56         cout<<"                                                            "; 
57         if(i%25==0)
58         cout<<'\n'; 
59     }
60     cout<<'\n';  
61     return 0;
62 }
View Code

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

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<iostream>
 4 #include<fstream>
 5 #include<string>
 6 #include<map>
 7 #include <iomanip>
 8 using namespace std;
 9 int main()
10 {
11     FILE *fp;
12     char text[1024];
13     char s[100];
14     //gets(s);
15     printf("janelove");
16     fp=fopen("d:\\火柴.txt","r");
17     //fp=fopen(s,"r");
18     int n=0;
19     int i;
20     map<string,int>my_map;
21     while(fgets(text,1024,fp)!=NULL)
22     {
23         //puts(text);
24         i=0;
25         while(text[i]!='\0')
26         {
27             char s[30];
28             int j=0;
29             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             }
35             s[j]='\0';
36             if(my_map[s]==0)
37             n++;
38             my_map[s]++;
39             if(text[i]=='\0') break;
40             else
41             i++;
42         }
43          
44     }
45     fclose(fp);
46     map<string,int>::iterator it;
47     printf("\n");
48     cout<<"total"<<"  "<<n<<"  words"<<endl<<endl;
49     for(it=my_map.begin(),i=1;it!=my_map.end();it++,i++)
50     {
51         if(it->first=="")
52         continue;
53         cout<<left;
54         cout<<setw(10)<<it->first;
55         cout<<setw(10)<<it->second;
56         cout<<"                                                            "; 
57         if(i%11==0)
58         cout<<'\n'; 
59     }
60     cout<<'\n';  
61     return 0;
View Code

 

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

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<iostream>
 4 #include<fstream>
 5 #include<string>
 6 #include<map>
 7 #include <iomanip>
 8 using namespace std;
 9 int main()
10 {
11     FILE *fp;
12     char text[1024];
13     char s[100];
14     //gets(s);
15     printf(">wf -s <  War and Peace.txt\n");
16     fp=freopen("d:\\是.txt","r",stdin);
17 //fp=freopen("功能4.FILE","r",stdout==NULL);
18     //fp=fopen(s,"r");
19     int n=0;
20     int i;
21     map<string,int>my_map;
22     while(fgets(text,104,fp)!=NULL)
23     {
24        puts(text);
25         i=0;
26         while(text[i]!='\0')
27         {
28             char s[30];
29             int j=0;
30             while((text[i]>='a'&&text[i]<='z')||(text[i]>='A'&&text[i]<='Z'))
31             {
32                 if(text[i]>='A'&&text[i]<='Z')
33                 text[i]+='a'-'A';
34                 s[j++]=text[i++];  
35             }
36             s[j]='\0';
37             if(my_map[s]==0)
38             n++;
39             my_map[s]++;
40             if(text[i]=='\0') break;
41             else
42             i++;
43         }
44          
45     }
46     fclose(fp);
47     map<string,int>::iterator it;
48     printf("\n\n");
49 //    printf(">wf  -s  test.txt\n");
50     cout<<"total"<<"  "<<n-1<<"  words"<<endl<<endl<<endl;
51     for(it=my_map.begin(),i=1;it!=my_map.end();it++,i++)
52     {
53         if(it->first=="")
54         continue;
55         cout<<left;
56         cout<<setw(10)<<it->first;
57         cout<<setw(10)<<it->second;
58         cout<<"                                                            ";
59         if(i%10==0) 
60       //  cout<<'\n';
61       printf("\n");
62     }
63     cout<<'\n';  
64     return 0;
65 }
View Code

 

 

 

功能 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

posted @ 2017-09-18 21:23  田继平  阅读(395)  评论(0编辑  收藏  举报