一、
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... "); } 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]='