码迷,mamicode.com
首页 > 其他好文 > 详细

130242014024-陈敏敏-第3次实验

时间:2017-11-20 19:11:24      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:har   style   ddl   dex   push   取数   input   管道   array   

一、实验目的

1.理解不同体系结构风格的具体内涵。

2.学习体系结构风格的具体实践。

二、实验环境

硬件: (依据具体情况填写)

软件:Java或任何一种自己熟悉的语言

三、实验内容

 

“上下文关键字”KWIC(Key Word in Context,文本中的关键字)检索系统接受有序的行集合:每一行是单词的有序集合;每一个单词又是字母的有序集合。通过重复地删除航中第一个单词,并把它插入行尾,每一行可以被“循环地移动”。KWIC检索系统以字母表的顺序输出一个所有行循环移动的列表。

尝试用不同的策略实现这个系统。选择2-3种体系结构风格来实现。

四、实验步骤:

   

1、体系结构图:

 技术分享图片

 

2、简述体系结构各部件的主要功能,实现思想。

上述的主程序/子程序的方法,将问题分解为输入(Input)、移动(Shifter)、按字母表排序(Alphabetizer)、输出(Output)。

Input : 主函数调用该方法,读取数据,输出到控制台。

Shifter : 主函数调用该方法,实现移位。

Alphabetizer : 主函数调用该方法,对行数据进行按字母顺序排序

Output : 主函数调用该方法,输出到控制台.
   

3、写出主要的代码

package thethird;

import java.util.ArrayList;import java.util.List;import java.util.Scanner;

public class thethird {

    private List<String[]> inList = new ArrayList<String[]>();

    private List<String[]> outList = new ArrayList<String[]>();

    

public static void main(String[] args){

        Thethird msr = new Thethird();

        x.input();

        x.circular();

        x.alphabetize();

        x.output();

    }

    

    /*输入*/

    private void input(){

        Scanner scan = new Scanner(System.in

 

);

        System.out.println("输入");

        while(true){

            String temp;

            temp = scan.nextLine();

            if(!temp.equals("!q")){

                inList.add(temp.split(" "));

            }

            else{

                break;

            }

        }

    }

    

    /*循环*/

    private void circular(){

        ArrayList<String[]> tempList = new ArrayList<String[]>();

        tempList.addAll(inList);

        String temp;

        for(int i = 0;i < tempList.size();i++){

            for(int j = 0;j < tempList.get(i).length;j++){

                outList.add(tempList.get(i).clone());

                temp = tempList.get(i)[0];

                for(int k = 0;k < tempList.get(i).length-1;k++){

                    tempList.get(i)[k] = tempList.get(i)[k+1];

                    if(k == tempList.get(i).length-2){

                        tempList.get(i)[tempList.get(i).length-1] = temp;

                    }

                }

            }

        }

    }

    

   /*按字母排序*/

    private void alphabetize(){

        String[] temp;

        for(int i = 0;i < outList.size();i++){

            for(int j = 0;j < outList.size()-1;j++){

                if(outList.get(i)[0].toLowerCase().charAt(0) > outList.get(j+1)[0].toLowerCase().charAt(0)){

                    temp = outList.get(i);

                    outList.set(i, outList.get(j+1));

                    outList.set(j+1, temp);

                }

            }

        }

    }

    

    /*输出*/

    private void output(){

        System.out.println("输出");

        for(int i = 0;i < outList.size();i++){

            for(int j = 0;j < outList.get(i).length;j++){

                System.out.print(outList.get(i)[j]+" ");

            }

            System.out.println("");

        }

        

    }

}

二、管道-过滤器风格

1、体系结构图:

 技术分享图片

 

 

2、简述体系结构各部件的主要功能,实现思想。

过滤器:输入、循环、按字母表排序、输出

3、写出主要的代码:

/*输入*/
function Input(){
console.log("-------input-------")
var input = input.toString();
/*输入内容*/
console.log(input);
var middle=‘‘;
/*转换数组*/
for(var i=0;i<input.length;i++){
middle += data[i]
if(input[i]==‘ ‘){
arr.push(middle);
middle=‘‘;
}
if(input[i+1]==‘\r‘){
arr.push(middle);
middle=‘‘;
}
if(input[i]==‘\n‘){
arr.push(middle);
middle=‘‘;
}
if(input[i+1] == undefined){
arr.push(middle);
middle=‘‘;
}
}
Shifter(arr)
});
}
/*转换成数组*/
var list=[];
for(var i=0;i<index.length+1;i++){
var middle=‘‘;
var doc=[];
if(index[i-1]){
for(var j=index[i-1]+1;j<index[i];j++){
doc.push(arr[j]);
}
}
else if(index[i-1] == undefined){
for(var j=0;j<index[i];j++){
doc.push(arr[j]);
}
}
if(i == index.length){
for(var j=index[index.length-1]+1;j<arr.length;j++){
doc.push(arr[j]);
}
}
list.push(doc);
}
/*排序*/

function Alphabetizer(complate){
//对数组进行排序
var last = complate.sort();
Output(last);
}

/*输出*/

function Output(last){
var middle = ‘‘;
console.log("-------Output-------");
for(var i=0;i<last.length;i++){
console.log(last[i])
}
}

Input();

130242014024-陈敏敏-第3次实验

标签:har   style   ddl   dex   push   取数   input   管道   array   

原文地址:http://www.cnblogs.com/mm044077/p/7867538.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!