1. 程式人生 > >130242014072 邱慧堅 第3次實驗

130242014072 邱慧堅 第3次實驗

length 情況 以及 context key return 刪除 size 系統

一、實驗目的

1.理解不同體系結構風格的具體內涵。

2.學習體系結構風格的具體實踐。

二、實驗環境

硬件: (依據具體情況填寫)

軟件:Java或任何一種自己熟悉的語言

三、實驗內容

“上下文關鍵字”KWIC(Key Word in Context,文本中的關鍵字)檢索系統接受有序的行集合:每一行是單詞的有序集合;每一個單詞又是字母的有序集合。通過重復地刪除航中第一個單詞,並把它插入行尾,每一行可以被“循環地移動”。KWIC檢索系統以字母表的順序輸出一個所有行循環移動的列表。

嘗試用不同的策略實現這個系統。選擇2-3種體系結構風格來實現。

四、實驗步驟:

要求寫具體實現代碼,並根據實際程序,畫出程序的總體體系結構圖和算法結構圖,以及運行結果截圖。

例如,采用主/子程序的風格

1、體系結構圖:

技術分享圖片

import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collections;

public static String[] input() {
        Scanner scanner 
= new Scanner(System.in); int len = scanner.nextInt(); String[] result = new String[len]; for (int i = 0; i < len; i++) { result[i] = scanner.next(); } return result; } public static List<String[]> shifter(String[] a) { List
<String[]> resultList = new ArrayList<String[]>(); String temp = null; for (int i = 0; i < a.length; i++) { resultList.add(a.clone()); temp = a[0]; for (int k = 0; k < a.length - 1; k++) { a[k] = a[k + 1]; if (k == a.length - 2) { a[a.length - 1] = temp; } } } return resultList; } public static List<String[]> join(List<String[]> a, List<String[]> b) { List<String[]> resultList = new ArrayList<String[]>(); for (int i = 0; i < a.size(); i++) { resultList.add(a.get(i)); } for (int i = 0; i < b.size(); i++) { resultList.add(b.get(i)); } return resultList; } //排序 public static List<String[]> removeRepetition(List<String[]> a) { for (int i = 0; i < a.size(); i++) { for (int j = i; j < a.size() - 1; j++) { if (a.get(i)[0].charAt(0) == a.get(j + 1)[0].charAt(0)) { a.remove(j + 1); } } } return a; } public static List<String[]> sort(List<String[]> a) { String[] temp = null; for (int i = 0; i < a.size(); i++) { for (int j = i; j < a.size() - 1; j++) { if (a.get(i)[0].charAt(0) > a.get(j + 1)[0].charAt(0)) { temp = a.get(i); a.set(i, a.get(j + 1)); a.set(j + 1, temp); } } } return a; } //輸出 public static void ouput(String[] a) { for (int i = 0; i < a.length; i++) { System.out.print(a[i] + " "); } System.out.println(); }

結果:

技術分享圖片

130242014072 邱慧堅 第3次實驗