130242014070 张宇 第3次实验

Posted 软工-张宇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了130242014070 张宇 第3次实验相关的知识,希望对你有一定的参考价值。

一、实验目的

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

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

二、实验环境

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

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

三、实验内容

 

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

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

四、实验步骤:

采用主/子程序的风格

1、体系结构图:

2、写出主要的代码

排序算法:

 1     public static ArrayList<String[]> sort(ArrayList<String[]> a){
 2         String[] temp=null;
 3         for (int i = 0; i < a.size(); i++) {
 4             for (int j = i; j < a.size()-1; j++) {
 5                 if (a.get(i)[0].charAt(0)>a.get(j+1)[0].charAt(0)) {
 6                     temp=a.get(i);
 7                     a.set(i, a.get(j+1));
 8                     a.set(j+1, temp);
 9                 }
10             }
11         }
12         
13         return a;
14     }

 

3、显示结果:

二、管道、过滤器风格

1.体系结构图

2.主要代码:

 1 private void sort(List<String> lines) { //排序
 2         int size = lines.size();
 3 
 4         for (int i = (size / 2 - 1); i >= 0; i--)
 5             siftDown(lines, i, size);
 6 
 7         for (int i = (size - 1); i >= 1; i--) {
 8             Object tmp = lines.get(0);
 9             lines.set(0, lines.get(i));
10             lines.set(i, (String) tmp);
11             siftDown(lines, 0, i);
12         }
13     }
14 
15     private void siftDown(List<String> lines, int root, int bottom) {
16         int max_child = root * 2 + 1;
17 
18         while (max_child < bottom) {
19             if ((max_child + 1) < bottom)
20                 if (((String) lines.get(max_child + 1))
21                         .compareTo((String) lines.get(max_child)) > 0)
22                     max_child++;
23 
24             if (((String) lines.get(root)).compareTo((String) lines
25                     .get(max_child)) < 0) {
26                 Object tmp = lines.get(root);
27                 lines.set(root, lines.get(max_child));
28                 lines.set(max_child, (String) tmp);
29                 root = max_child;
30                 max_child = root * 2 + 1;
31             } else
32                 break;
33         }
34     }

3..运行结果

五、实验总结

 

以上是关于130242014070 张宇 第3次实验的主要内容,如果未能解决你的问题,请参考以下文章

130242014070-张宇-实验一

130242014070-《电商系统某功能模块》的需求分析与设计的课程小结

操作系统第3次实验报告:管道

第九次作业

嵌入式软件设计第9次实验报告

130242014017-蔡志峰-第3次实验