大学计算机实验总结,KWIC实验总结报告(大学计算机C++).doc

软件体系结构实验报告书 周新:2008082207

PAGE 2

软件体系结构

上机实验报告书

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

计算机科学与技术系

制 订 人:周新

学 号:2008082207

指导教师:朱雪峰 博士

2011年10月27日

1、课程实验目的

通过KWIC(Key Word in Context)检索系统,对软件体系结构有更加深入的了解和认识。通过运用几种体系结构,熟悉常见的软件体系结构,并对这几种结构有进一步了解。

2、任务概述

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

3、实现方法

用C++主要实现了两种结构:主程序、子程序结构,抽象数据类型。

(1)KWIC1工程的入口函数

int _tmain(int argc, _TCHAR* argv[])

{

//界面,结构选择

cout<

char filename[30];

cin>>filename;

cout<

int choose=0;

cin>>choose;

if(1==choose)//主程序和子程序

{

MainSubroutine mainSub;

vector > lines=mainSub.readLines(filename);

vector lineIndex=mainSub.shiftString(lines);

lineIndex=mainSub.firstAlphaSort(lineIndex,lines);

mainSub.outPut(lineIndex,lines);

}

else//抽象收据类型

{

Lines *lines=new Lines;

Input input;

Shift *shift=new Shift;

FirstAlphaSort alphaSort;

Output output;

input.readLines(filename,*lines);

shift->circularShift(*lines);

alphaSort.alphaSort(*shift);

output.print(alphaSort);

delete shift;

delete lines;

}

return 0;

}

(2)主程序、子程序结构实现类

//从文件中按行读取

vector > MainSubroutine::readLines(char* filename)

{

vector > dst;

ifstream infile(filename,ios::in);

if(!infile)

{

cout<

exit(0);

}

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

//按行读取

while(infile.getline(temp,100))

{

int k=0,j=0;

vector line;

line.swap(vector());

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

while(temp[k]!=0)

{

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

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

{

s[j]=temp[k];

s[j+1]='\0';

string ss=s;

line.push_back(ss);

j=0;

}

else if(temp[k]==' ')

{

j=0;

}

else

{

s[j]=temp[k];

j++;

}

k++;

}

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

}

infile.close();

for(int i=0;i

{

f

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值