您的位置:首页 > 产品设计 > UI/UE

软件工程个人项目--Word frequency program

2013-09-25 05:03 441 查看
(一)工程设计时间预计

1.代码编写:2小时

  (1)文件夹的遍历以及筛选;

  (2)文件夹的读取,以及对读取字符的操作;

  (3)所得结果排序,以及文件输出。

2.程序调试:1小时

  (1)编写数据。

  (2)测试以及调试。

3.预计总时间:3小时

(二)工程所用实际时间

1.代码编写:4小时

  (1)文件夹的遍历以及筛选;

  (2)文件夹的读取,以及对读取字符的操作;

  (3)所得结果排序,以及文件输出。

2.程序调试:3小时

  (1)编写数据。

  (2)测试以及调试。

实际所用总时间:7小时

(三)关于实际时间比预计时间长的分析

在这一过程中对于文件的递归遍历始终无法做到,最终只能用cmd命令在windows环境下dir这个指令和列出文件目录有关

(四)程序部分代码
遍历文件


void Init(int argc,char *argv[]){
string baseDir,command;
baseDir=argv[argc-1];
if (baseDir[baseDir.length()-1]!='\\')
baseDir+='\\';
command="dir "+baseDir+"*.txt "+baseDir+"*.cpp "+baseDir+"*.h "+baseDir+"*.cs"+" /S"+" /B > result.txt";
system(command.c_str());
return;
}


模式选择

for(i=0;i<(*count);i++){
if(argc==2){                     //模式一
for(k=0;w[i].danci[k]!='\0'&&str[k]!='\0';k++)
if(w[i].danci[k]!=str[k] && w[i].danci[k]+'A'-'a'!=str[k] && w[i].danci[k]!=str[k]+'A'-'a')
break;
if(w[i].danci[k]=='\0'&&str[k]=='\0'){
flag1=1;
w[i].times++;
if(w[i].danci[0]>str[0])
strcpy_s(w[i].danci,str);
break;
}
}
else if(argc==3){                //模式二
int m,n;
for(m=strlen(w[i].danci)-1;m>=0;m--)
if(w[i].danci[m]>='a'&&w[i].danci[m]<='z' || w[i].danci[m]>='A' &&w[i].danci[m]<='Z')
break;
for(n=strlen(str)-1;n>=0;n--)
if(str
>='a'&&str
<='z' || str
>='A'&&str
<='Z')
break;
if(m!=n)
break;
else{
for(k=0;k<=m;k++)
if(w[i].danci[k]!=str[k] && w[i].danci[k]+'A'-'a'!=str[k] && w[i].danci[k]!=str[k]+'A'-'a')
break;
if(k=m+1){
flag1=1;
w[i].times++;
if(strcmp(w[i].danci,str)>0)
strcpy_s(w[i].danci,str);
break;

}
}
}
}


(五)代码分析

1.分析报告







(六)所使用的测试用例

测试空文件夹




测试有相同单词的文件




测试有文件中包含文件的文件




测试有不符合后缀的文件




测试-e中数字不同,单词相同的文件




测试-e中大小写不同的文件




测试字母+数字+字母+数字的文件




(七)感想

这次的编程与预计差别非常大,让我了解了很多自己不懂得知识。通过网上搜索和查阅《c++prime》这本书让我了解了很多。





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: