标签: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();
标签:har style ddl dex push 取数 input 管道 array
原文地址:http://www.cnblogs.com/mm044077/p/7867538.html