15回目 6月6日の授業内容(中間試験模範解答等)


(前半) (後半)

(課題)

アンケート調査


問題1(1)
import java.util.*;

public class Encode{
  private Map<Character, Character> map = new HashMap<Character, Character>();

  public Encode(){
    this.map.put(new Character('a'), new Character('b'));
    this.map.put(new Character('b'), new Character('c'));
    this.map.put(new Character('c'), new Character('d'));
    this.map.put(new Character('d'), new Character('a'));
  }

  public Character translate(Character character){
    return this.map.get(character);
  }

  public String translate(String s){
    String temp = "";
    for(int i = 0; i < s.length(); i++){
      temp = temp + this.translate(s.charAt(i));
    }
    return temp;
  }

}
問題1(2)
public class Q1{
  public static void main(String args[]){

    Encode encode = new Encode();

    String s = new String("abcd"); 
    System.out.println(s);

    s = encode.translate(s);
    System.out.println(s);

  }
}
問題2(Code.java)
import java.util.*;

public class Code{
  protected Map<Character, Character> map = new HashMap<Character, Character>();

  public Code(){
  }

  public void put(Character c1, Character c2){
    this.map.put(c1, c2);
  }

  public Character translate(Character character){
    return this.map.get(character);
  }

  public String translate(String s){
    String temp = "";
    for(int i = 0; i < s.length(); i++){
      temp = temp + this.translate(s.charAt(i));
    }
    return temp;
  }

}

問題2(Enode.java)
public class Encode{

  private Code code = new Code();

  public Encode(){
    this.code.put(new Character('a'), new Character('b'));
    this.code.put(new Character('b'), new Character('c'));
    this.code.put(new Character('c'), new Character('d'));
    this.code.put(new Character('d'), new Character('a'));
  }

  public String translate(String s){
    return this.code.translate(s);
  }

}

問題2(Decode.java)
public class Decode extends Code{

  public Decode(){
/*
    super.put(new Character('b'), new Character('a'));
    super.put(new Character('c'), new Character('b'));
    super.put(new Character('d'), new Character('c'));
    super.put(new Character('a'), new Character('d'));
*/
    super.map.put(new Character('b'), new Character('a'));
    super.map.put(new Character('c'), new Character('b'));
    super.map.put(new Character('d'), new Character('c'));
    super.map.put(new Character('a'), new Character('d'));

  }

}

問題2(Q2.java)
public class Q2{
  public static void main(String args[]){

    Encode encode = new Encode();
    Decode decode = new Decode();

    String s = new String("abcd"); 
    System.out.println("変換前の文字列 " + s);

    s = encode.translate(s);
    System.out.println("変換後の文字列 " + s);

    s = decode.translate(s);
    System.out.println("逆変換後の文字列 " + s);

  }
}