prev                   head                          next

3−4 アプレットクラス

 本システムで使用しているクラスの説明です。

3−4−1 QAR 
  質問より得られた回答より、希望に近い候補を提示する。

 java.awt.Applet
 + Answer

  プロパティ概要
Vector qq = new Vector(); // 全質問・回答(Question)の集合
Vector rr = new Vector(); // 計算結果、上位5位までResultの集合

Befor befor; // = new Befor(); // 開始前画面
public Base base ; //= new Base(); // 最初の画面
Vector qqgg = new Vector(); // 全質問・回答画面の集合
Vector aaa = new Vector(); // 回答であるCheckboxの集合
Vector rr = new Vector(); // 計算結果、上位5位までResultの集合

Befor befor; // = new Befor(); // 開始前画面
public Base base ; //= new Base(); // 最初の画面
Vector qqgg = new Vector(); // 全質問・回答画面の集合
Kekka kekka; // = new Kekka(); // 最終結果画面
Vector gm = new Vector(); // 全画面の集合

Button bback = new Button(); // 進めボタン
Button bgo = new Button(); // 戻るボタン
Label msg = new Label(); // 操作促進メッセージ
String sid = new String(); // セッションID
boolean basesendflg = true; // サーバからの質問回答情報取得状態のフラグ  
int errno; // エラー番号
String errmsg = new String(); // エラーメッセージ
  エラー状態でなければ、errno=0,errmsg=""である。
GM now=new GM(); // 現在表示の画面

 メソッド概要
  conn()
   サーバcgi(post1.cgi)を起動し、初期交渉をおこないます。
   sidにセッションIDを設定します。

  getqa()
   サーバcgi(post2-1.cgi)を起動し、質問・回答情報を取得し、qqggに格納しま
   す。

  sendbase()
   baseよりユーザ情報を取得し、サーバcgi(post2-2.cgi)を起動し、ユーザ情報
   をサーバDBに書きこみます。

  sendget()
   aaaより回答情報を取得しサーバcgi(post3.cgi)を起動し、サーバに回答を送
   信します。結果情報を取得し



  init_set()
   実行環境を整備します。

  makqg()
   質問実施画面を作成します。

  hyozi()
   表示画面の入れ替えをおこないます。
  

3−4−2 Answer 回答

 java.lang.Object
 + Answer

 プロパティの概要
  int  anm;   回答番号
  String inf;   回答文
  int  flg;   フラグ この質問が選択された場合は1、それ以外は0

 コンストラクタの概要
  Answer( int a, String i )
   回答番号a、回答文iの新しい回答を作成します。

 メソッドの概要
  void setvl( int v )
   選択フラグ設定

  boolean isanm( int n )
   指定回答か、否か 指定回答であればtrue,違う場合はfalseを返します。

  int getvl( int n )
   選択フラグ値取得nが回答番号一致する場合は選択値を、しない場合は0
   を返す

  int getvl()
   選択フラグ値取得 選択フラグの値を返します。

  String getinf()
   回答文取得 回答文を返します。

  int getanm()
   回答番号取得 回答番号を返します。

3−4−3 Question 質問(複数回答との対)

 java.lang. Object
 + Question

 プロパティ
  int  qnm;   質問番号
  int  flg;   質問選択フラグ 複数選択可能か否か
  String inf;   質問文
  Vector ans;   この質問に対応するAnswerの集合

 コンストラクタの概要
  Question()
   空の質問を作成します。
  Question( int a, String i )
   質問番号a、質問文i、選択フラグ0の質問を作成します。
  Question( int a, String i, int f )
   質問番号a、質問文i、選択フラグfの質問を作成します。

 メソッドの概要
  void addan( int a, String i )
   回答番a,回答文iの新しいAnswerを作成して、追加します。
  boolean isqnm( int n )
   指定質問番号nか否かを返します。
  String getinf()
   質問文を返します。
  int getqnm()
   質問番号を返します。
  int getflg()
   選択フラグを返します。
  Vector getans()
   回答の集合を返します。

3−4−4 Result 回答により計算、返却された結果(1メンバ)

 java.lang. Object
 + Result

 プロパティの概要
  int  rnm;   候補番号
  String nam;   候補名
  int  val;   総合スコア値
  int  rank;   順位
  String inf;   候補に関する説明

 コンストラクタの概要
  Result()
   空の結果を作成します。
  Result(String n, int r, int v)
   候補番号0,候補名n,順位r,総合スコアv,説明""の結果を作成します。
  Result(int m, String n, int r, int v, String f)   
   候補番号m,候補名n,順位r,総合スコアv,説明f,の結果を作成します。

 メソッドの概要
  int getrnm(),String getnam(),int getval(),int getrank(),String getinf()
   各プロパティの値を返します。


ここからは、java.awtを継承した内部クラスとなります。
画面系ではレイアウトマネージャーを使用しておらず、setBounds()メソッドにより
変形、配置されます。

3−4−5 GM 画面
 java.awt.Panel
 + GM
 このシステムで使用する画面のベースとなるクラスです。

 プロパティの概要
  String name;  画面名
  GM   next;  前画面
  GM   prev;  次画面
  int  ye;   このパネルの含まれるObjectのある最下y座標の値
  String msg;   エラー発生時のメッセージ

 コンストラクタ概要
  GM()
   本システムの規定値(サイズ、背景色)にてPanelを作成し、非表示とする。
   next,prevにはnullが設定される。

 メソッド概要
  void setname( String n ), void setnext( GM n), void setprev( GM p ),
  void setye( int y )
   各プロパティの値を設定します。

  String getname(), GM getnext(), GM getprev(), int getye(),String getmsg()
   各プロパティ値を返します。

  GM goact()
   次画面移動時の処理(継承するクラスによりオーバーライドされる)をおこない
   ます。次画面が存在し、かつ処理が正常に終了した場合は自身を非表示として、
   次画面を返します。
   次画面が存在しない、または処理が異常終了した場合はnullを返して、必要に
   応じてmsgに理由を設定します。

  GM backact()
   前画面移動時の処理(継承するクラスによりオーバーライドされる)をおこない
   ます。前画面が存在し、かつ処理が正常に終了した場合は自身を非表示として、
   前画面を返します。
   前画面が存在しない、または処理が異常終了した場合はnullを返して、必要に
   応じてmsgに理由を設定します。

3−4−6 Base 初期入力画面
 java.awt.Panel
 + GM
  + Base

 ユーザ情報を入力する画面です。

 コンストラクタの概要
  base()
   初期画面(ユーザ情報入力画面)を作成します。

 プロパティの概要

 メソッドの概要
  String getname(),String getmaddr(),String getaddr(),int getage(),
  int getsex()
  各入力内容を取得します。

  GM goact()
  入力内容をチェックし、誤りがなければサーバ処理を起動して、ユーザ情報を
  サーバDBに書きこみします。処理が正常終了し、次画面が存在すれば、次画面の
  アドレスを返します。
  入力に誤りがある。サーバ処理にてエラーが発生した。あるいは次画面が存在しない
  場合はnullを返し、msgにエラーを設定します。

3−4−7 QAG 質問回答画面
 java.awt.Panel
 + GM
  + QAG

 質問・回答を表示し、利用者が回答選択をおこなう画面です。

 コンストラクタの概要
  QAG()
   空の画面を作成します。

 プロパティの概要
  int  qcnt; この画面に含まれる質問の数

 メソッドの概要
  int getqcnt()
   この画面に含まれる質問の数を返します。
  boolean canadd( Question q )
   質問qがこの画面に追加可能か(画面に納まるか)を返します。
  boolean addqa( int n, Question q )
   質問番号nとして、質問qをこの画面に追加します。追加できればtrue,できなけれ
   ばfalseを返します。 
  GM goact()
  入力内容をチェックし、次画面のクラスがKekka場合は回答情報を送信し、結果情報
  を取得し、正常終了するとResultの集合を作成し、次画面を返します。
  次画面がKekka以外の場合は次画面を返します。
  入力に誤りがある。サーバ処理でエラーが発生した。あるいは次画面が存在しない
  場合はnullを返し、msgにエラーを設定します。

3−4−8 Kekka 結果画面
 java.awt.Panel
 + GM
  + Kekka

 回答より計算された結果情報を表示する画面です。

 コンストラクタの概要
  Kekka()
   結果画面(結果の情報は未設定画面)を作成します。

 プロパティの概要

 メソッドの概要
  void refresh()
   結果情報が設定される各オブジェクトの設定値を初期化します。

  void setrnm(String n)
   1位候補の名前nを設定します。

  void setinf(String i)
   一位候補の説明文iを設定します。

  void addrank(String n, int v)
   上位候補表示覧に候補n,総合スコアnを追加します。

prev                   head                          next