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

130242014072 邱慧坚 第3次实验

时间:2017-11-18 23:45:34      阅读:411      评论:0      收藏:0      [点我收藏+]

标签:子程序   理解   结构图   str   入行   ima   实验   有序   otf   

一、实验目的

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次实验

标签:子程序   理解   结构图   str   入行   ima   实验   有序   otf   

原文地址:http://www.cnblogs.com/qhj123456/p/7858071.html

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