レポート課題

課題内容

入力される親子の関係から家系図(もどき)を表示するプログラムを作成せよ.

ただし,以下の機能を持つこと.

実装には再帰的データ構造を用いること. また演習で作成したリスト構造のクラス(を変更したもの)またはArrayListクラスを使用してもよい.

親子の関係は以下の形式で与えられるものとする.

<親の名前> <子の名前>(改行)
一組の親子関係が与えられる度に出力を行うこと.

入力は最初の一組をのぞき,親または子のどちらかに既に入力されている人物が指定されると仮定してよい(独立した家系を複数保持することは考慮しなくてよい). また,矛盾した関係についても入力されないものとしてよい. 兄弟の順序に関しては特に任意の順序で表示してよい.

実行例

別ページに示す.

ヒント

入力の処理部分のプログラム例を以下に示すので参考にするとよい.

FamilyTreeTest.java
import java.io.*;
import java.util.StringTokenizer;

public class FamilyTreeTest {
    public static void main(String args[]) {
        try {
            //自分で作成した家系図を表すクラスのインスタンス作成等の
            //初期化の処理を記述

            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            String line;

            while((line = br.readLine()) != null) {
                StringTokenizer tokens = new StringTokenizer(line);
                String parentName = tokens.nextToken();
                String childName = tokens.nextToken();

                //parentNameに親,childNameに子の名前が格納されるので
                //ここで各自必要な処理を記述
            }
            
        } catch(IOException e) {
            e.printStackTrace();
        }
    }
}

レポートの構成

基本的なレポートの構成については レポートの書き方 (内容について)レポートの書き方 (体裁について) を参考にすること.
また,以下の内容を含めること.

提出について

提出〆切
2011年7月5日(火) 17:00 -> 2011年7月12日(火) 17:00
提出場所
LETUSの [2011] 情報科学演習1 -> Java演習 第4期 再帰的なデータ構造 課題提出 にて以下の方法で作成したzipファイルをアップロードすること.
紙に印刷したものを提出する必要はない.

提出用zipファイルの作成方法

LETUSに提出する際はレポート本文をPDFファイルに変換し,ソースファイル,実行結果とともにひとつのzipファイルとして提出すること. 以下にその方法を示す.

いつものようにTeXで作成する.ここではreport.texとし,report.texからreport.dviを作成
$ platex report.tex

以下の2つのコマンドによってreport.dviからreport.pdfファイルを作成する.
$ export CMAPFONTS=$(ls -d /usr/share/ghostscript/*/Resource/CMap)
$ dvipdfmx report.dvi

以下のコマンドによってpdfファイルの内容を確認すること.
$ evince report.pdf

submitというディレクトリを作成してこの中に
提出するファイル(レポート本文のpdfファイル,ソースファイル,実行結果のテキストファイル等)をすべてコピーする.
ファイル名は自由でよい.
$ mkdir submit
$ cp report.pdf submit/
$ cp *.java submit/
$ cp result.txt submit/

submitの内容を63yyxxx.zipというひとつのzipファイルにまとめる.
submitディレクトリ以下の内容が変更された場合はその都度このコマンドを実行すること
$ zip 63yyxxx.zip -r submit/

この63yyxxx.zipをLETUSにて提出する.