您的位置:首页 > 其它

软件工程第二次作业

2017-09-16 21:00 295 查看
一、

1.本周PSP, 类型、任务、开始时间、结束时间、中断时间,delta时间。要求开始和结束时间包括日期。



2.本周进度条: 代码行,博文字数,用到的知识点



3.累积进度图: 到本周为止的代码累积折线图,到本周为止的博文字数累积折线图



4.本周PSP饼状图,按任务类别分类,给出时间所占比例



二、本次软件工程作业主要以C#进行编译,大致内容为:

  1.编写一个程序实现一个文件中单词统计。

  2.从控制台输入文件的名字,然后统计单词的数目。

  3.指定文件目录进行遍历,分别对每一个文件中的单词进行统计,输入前十个出现频次最高的单词及相应的次数。

  4.控制台显示数据。

  Coding代码链接地址:https://coding.net/u/MR__Chen/p/Demo/git

  本程序中主要编写了两个方法,一个statis(char s[])的统计方法,一个sort()的排序方法。statis()方法主要是对单词数目进行统计,sort()对单词出现的频次进行排序,然后在main()函数中先读取文件中的单词数据,然后调用statis()和sort()方法,输出数据在控制台显示。

(一)、statis(char s[])统计方法,具体代码显示如下:

void statis(char s[])
{
int i,j;
int flag=0;  //flag为零时没有重复的
for(i=0;i<=sum;i++)
{
if(strcmp(A[i].str,s)==0)
{
A[i].num++; //重复单词个数加一
flag=1;   //有重复
//sum++;
}
}
if(flag==0)
{
for(j=0;j<30;j++)
A[sum].str[j]=s[j];
A[sum].num++;
sum++;
}
}


(二)、sort()排序方法,具体代码显示如下:

void sort()
{
int i,j;
struct word a;
for(i=0;i<sum;i++)
{
for(j=i+1;j<sum;j++)
if(A[i].num<A[j].num)
{
a=A[j];
A[j]=A[i];
A[i]=a;
}
}
}


(三)、main()函数调用statis(char s[])和sort()方法实现程序,具体代码如下:

void main()
{
char ch,plan[30],s[30];
int i,m=1,flag=0;
FILE *fp;
  while(m<10)
{
  scanf("%s",&plan);
  getchar();
   if((fp=fopen(plan,"r+"))==NULL){
  printf("Open the file failure...\n");

}

fp=fopen(plan,"r");
sum=0;
ch=NULL;
for(i=0;i<1000;i++)
A[i].num=0;
    while(ch!=-1)
{

for(i=0;i<30;i++)
s[i]='\0';
ch=fgetc(fp);
if((65<=ch&&ch<=90)||(ch>=97&&ch<=122))
{
for(i=0;;i++)
{
s[i]=ch;
ch=fgetc(fp);
if((65<=ch&&ch<=90)||(ch>=97&&ch<=122))continue;
else break;
}
statis(s);
}
}
sort();
printf("total %d  words\n",sum);
for(i=0;i<10;i++)
printf("%s\t%d\n",A[i].str,A[i].num);
    printf("---\n");
 m++;
}
}


(四)通过以上代码实现,具体的截图分为以下三个部分:

功能一

功能描述:test.txt中包括单词 My English is very very poor.计数total数值,对于重复出现的very只显示一次。

具体实现截图如下:



功能二

功能描述:支持命令行输入英文作品的文件名,以runbinson.txt文件为例。

具体实现截图如下:



功能三

功能描述:支持命令行输入存储有英文作品文件的目录名,批量统计。(在此,特此说明因为C语言编程能力差,对于C格式调试不擅长,所以没有完全一次性实现添加多个目录后进行集体显示,只实现了一个文件一个文件进行输入,可输入多个文件。)

具体实现截图如下:



(五)本项目的psp图,功能实现因为只达到了功能三,前期功能四有尝试编译,但是发现编译出来后和要求不太符合,所以后期测试也就没有了。



  总结:本次作业通过C语言进行编程,目的测试文件中单词不重复总数和TOP10的单词数量,通过本次编程也暴露出自己的C编程的能力较差,只能尽可能去完成自己可以做完的功能。但愿以后可以运用所学在这些短处有所弥补。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: