KWIC实验报告C.docx

上传人:b****5 文档编号:7544981 上传时间:2023-01-24 格式:DOCX 页数:11 大小:65.58KB
下载 相关 举报
KWIC实验报告C.docx_第1页
第1页 / 共11页
KWIC实验报告C.docx_第2页
第2页 / 共11页
KWIC实验报告C.docx_第3页
第3页 / 共11页
KWIC实验报告C.docx_第4页
第4页 / 共11页
KWIC实验报告C.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

KWIC实验报告C.docx

《KWIC实验报告C.docx》由会员分享,可在线阅读,更多相关《KWIC实验报告C.docx(11页珍藏版)》请在冰豆网上搜索。

KWIC实验报告C.docx

KWIC实验报告C

 

软件体系结构

上机实验报告书

中国石油大学(北京)信息学院

计算机科学与技术系

制订人:

周新

学号:

07

指导教师:

朱雪峰博士

 

2011年10月27日

1、课程实验目的

通过KWIC(KeyWordinContext)检索系统,对软件体系结构有更加深入的了解和认识。

通过运用几种体系结构,熟悉常见的软件体系结构,并对这几种结构有进一步了解。

2、任务概述

用管道过滤器,主程序、子程序,抽象数据类型,隐式调用这四种结构来分别实现KWIC检索系统。

3、实现方法

用C++主要实现了两种结构:

主程序、子程序结构,抽象数据类型。

(1)KWIC1工程的入口函数

int_tmain(intargc,_TCHAR*argv[])

{

ize();j++)

{

cout<

}

cout<

}

cout<

returndst;

}

ize();ize();col++)

{

(srcLines[row][col][0]);

}

(firstCharLine);ize();col++)

{

charmin='z';

for(introw=0;row<();row++)

{

for(intcol=0;col

{

if(min>=firstChar[row][col]&&''!

=firstChar[row][col])

{

rowPos=row;

colPos=col;

min=firstChar[row][col];

}

}

}

firstChar[rowPos][colPos]='';

intlinePos=0;ize();

}

linePos=linePos+colPos;

(lineIndex[linePos]);

}

}

returndstIndex;

}

;col++)

{

cout<

}

cout<

}

cout<

}

(3)抽象数据类型结构实现

行存储类

ush_back(instring);

}

ush_back(inchar);

}

ize();

}

输入类

voidInput:

:

readLines(char*filename,Lines&readLines)

{

//vector>dst;

ifstreaminfile(filename,ios:

:

in);

if(!

infile)

{

cout<<"openerror!

"<

exit(0);

}

chartemp[100]="";//存储从文件中读取的行的临时变量

intlineIndex=0;//行序号

//按行读取

while(temp,100))

{

intk=0,j=0;

vectorline;

(vector());

(line);

chars[20]="";//存储从行中取字符串的临时变量

intstringIndex=0;//字符串序号

(s,lineIndex);

while(temp[k]!

=0)

{

if(temp[k]!

='')

{

(temp[k],stringIndex,lineIndex);

}

//每个单词的截取条件为下一个字符为空格或者为行的末尾

if(temp[k]==''&&temp[k+1]!

='')

{

//(temp[k],stringIndex,lineIndex);//将该字符串加入到指定行的指定字符串中

//('\0',stringIndex,lineIndex);

s[0]='\0';//清空字符串

(s,lineIndex);

stringIndex++;//字符串序号加1

}

k++;

}

lineIndex++;

//(line);//将从文件中中读出的行加入到dst中

}

();

for(inti=0;i<();i++)

{

for(intj=0;j<(i);j++)

{

cout<<(i,j)<<"";

}

cout<

}

cout<

}

循环左移类

//实现所有行的循环移位

voidShift:

:

circularShift(LinessrcLines)

{

intlineIndex=0;

for(introw=0;row<();row++)

{

intcols=(row);

for(intcol=0;col

{

vectornewLine;

(newLine);

for(intnewcol=0;newcol

{

(row,(col+newcol)%cols),lineIndex);

}

lineIndex++;

}

}

}

//获取所有行

LinesShift:

:

getLines(void)

{

returnlineShift;

}

 

//获取某一行

vectorShift:

:

getLine(intlineIndex)

{

return(lineIndex);

}

//获取某一行中某一位置的字符串

stringShift:

:

getString(intlineIndex,intstringIndex)

{

return(lineIndex,stringIndex);

}

 

//获取某一行中某一个字符串中的某一位置的字符

charShift:

:

getChar(intlineIndex,intstringIndex,intcharIndex)

{

return(lineIndex,stringIndex,charIndex);

}

//获取行数

intShift:

:

getLineNum(void)

{

return();

}

//获取某一行的字符串个数

intShift:

:

getStringNum(intlineIndex)

{

return(lineIndex);

}

排序类

//实现按首字母排序

voidFirstAlphaSort:

:

alphaSort(ShiftsrcShiftLines)

{

shiftLines=srcShiftLines;//将传进得Shift对象赋值给成员变量

vectorfirstChar;

for(introw=0;row<();row++)

{

(row,0,0));//获取首字母

}

//首字母排序

for(intloop=0;loop<();loop++)

{

charmin='z';

introwIndex=0;

for(introw=0;row<();row++)

{

if(min>=firstChar[row]&&''!

=firstChar[row])

{

min=firstChar[row];

rowIndex=row;

}

}

(rowIndex);

firstChar[rowIndex]='';//将找到的最小的字母置为‘’,以便在下一次查找时不再保留

}

}

//首字母排序

vectorFirstAlphaSort:

:

getCharSort()

{

returncharSort;

}

//获取行数

intFirstAlphaSort:

:

getLineNum(void)

{

return();

}

//按行的序号,将各字符串合并成一个字符串,然后获取一行

//lineIndex为行序号

stringFirstAlphaSort:

:

getLineAsString(intlineIndex)

{

stringlineString;

for(intstrCount=0;strCount<(lineIndex);strCount++)

{

lineString+=(lineIndex,strCount)+"";

}

lineString+="\0";

returnlineString;

}

输出类

//按字母表顺序输出

voidOutput:

:

print(FirstAlphaSortsortLines)

{

for(introw=0;row<();row++)

{

cout<<()[row])<

}

cout<

}

4、实验的例程

(1)主程序、子程序运行结果

(2)抽象收据类型

5、总结

通过本次实验,首先对软件体系结构有了更真切的了解,尤其是对管道过滤器结构,主程序、子程序结构,抽象数据类型结构,隐式调用这四种结构的理解更加透彻了。

同时还对KWIC有个一个认知的过程。

在实现的上述两种结构的过程中,对增强了数据结构的掌握,以及对面向对象概念的进一步理解。

编程时,遇到了各种大大小小的问题,尤其是数据结构定义方面的,深刻体会到了数据结构的重要性,同时发现了自己编写的代码移植性以及编码风格都不是很好,希望老师给予指点。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 畜牧兽医

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1