N-BOX
TOP
新着情報
フォトギャラリー
デジモノ
おべんきょう
はまりもの
ひとりごと
カメラ
パソコン
掲示板
プロフィール
リンク
メール
afer_88_31.gif
リンクシェア アフィリエイト紹介プログラム
PSX_120_60
デル5_120x60
富士通ショッピングサイト WEB MART

タイピングプログラム作成3

 ここではタイピングの処理が終わってからの処理を考えて生きたいと思います。
 基本的に、ここでは結果を表示させるだけで、データの更新などは行いません。
 まず、タイピング履歴テーブルから、点数や時間などを取得し、タイピング解答テーブルから入力データの内容を表示させます。
 まず最初にタイピング履歴テーブルの内容を表示させていきます。
 データを検索するキーは生徒のIDとタイピング実行回数になります。
String user_id = (String)session.getAttribute("LOGIN");
String w_cnt = (String)session.getAttribute("w_cnt");

String sql = "SELECT * FROM typehis_table where student_id = '";
sql = sql + user_id + "' AND type_cnt = '" + w_cnt + "'";
セッションに登録してある情報から、生徒のIDとタイピング実行回数を取得し、「select」文を使って情報を取得します。
タイピング速度を元にして、検定試験でどの程度の実力があるのかを表示させます。
タイピング速度 検定レベル
1.166以上 1級
1以上 準1級
0.833以上 2級
0.666以上 準2級
0.5以上 3級
0.333以上 4級
0.333未満 4級未満
String buf = "";
if(wspeed >= 1.166){
 buf = "1級レベル";
}else{
 if(wspeed >= 1){
  buf = "準1級レベル";
 }else{
  if(wspeed >= 0.833){
   buf = "2級レベル";
  }else{
   if(wspeed >= 0.666){
    buf = "準2級レベル";
   }else{
    if(wspeed >= 0.5){
     buf = "3級レベル";
    }else{
     if(wspeed >= 0.333){
      buf = "4級レベル";
     }else{
      buf = "合格めざしてもう少し練習しましょう。";
     }
    }
   }
  }
 }
}

次に、タイピング解答テーブルの内容を表示させていきます。
解答テーブルの内容を表示させることで、間違えた部分をチェックできるようにしていきたいと思います。
タイピング解答テーブルの内容を表示させるのですが、タイピング解答テーブルには、生徒が入力した内容しか入っていないので、タイピング解答テーブルのみではどこが間違えているのかを確認することが出来ません。
 問題が入っているタイピングテーブルの内容を、一緒に表示させなければチェックが出来ないので、テーブルの結合を行って、タイピングテーブルとタイピング解答テーブルの内容を同時に取得します。
sql = "SELECT * FROM typeans_table a,type_table t where a.type_id = t.id";
sql = sql + " AND a.student_id = '" + user_id;
sql = sql + "' AND a.type_cnt = '" + w_cnt + "' order by type_date" ;
上記の内容でテーブルの結合を行っています。
「FROM typeans_table a,type_table t」タイピング解答テーブルを「a」、タイピングテーブルを「t」と宣言します。
「where a.type_id = t.id」 タイピング解答テーブルの「type_id」とタイピングテーブルの「id」をイコールで宣言することで、タイピングテーブルとタイピング解答テーブルを結合しています。
あとは、生徒のIDとタイピング実行回数でデータを検索していき、タイピング実行日時でソートして、問題順にデータを取得します
取得したデータを表示させていくのですが、間違っているところの色を赤色に変えて、間違いをわかりやすくしていきます。
スコアが”0”の場合は間違いと言うことなので、スコアが”0”の場合には、赤色の設定を追加します。
wint = result.getInt("a.score");
if(wint == 0){
 buf = "BGCOLOR='#FF0000'";
}
out.println("<TR><TD>タイピング入力</TD><TD " + buf + ">" + result.getString("a.type_data") + "</TD></TR>");


開始時間 2004-08-14 22:34:17
終了時間 2004-08-14 22:35:17
問題数 10
入力文字数 30
タイピング速度 0.5 word/second
得点 1050点
正解率 70.0%
検定レベル 3級レベル


タイピング問題 光沢感
タイピング入力 光沢感
得点 3
時間 2004-08-14 22:34:24

タイピング問題 巨きさ
タイピング入力 大きさ
得点 0
時間 2004-08-14 22:34:27


タイピングが終わると、上記のように結果が表示されます。
一部を抜粋したものですが、間違えているところは、赤色に変更されています。
 これでタイピングのプログラムが一応完成しました。
 しかし、無駄な処理もいっぱいありますし、見た目にもあまりよくはないので、内容は今後変更していきたいとおもいます。
 しかし、まずは動く形を作っていきたいと思いますので、タイピングについては一応の完成とします。
 生徒がタイピングを行うことは出来るようになりましたが、次からは生徒が行ったタイピングの結果を講師が確認できるようにしていきたいと思います。
タイピングプログラム作成2  UP  管理プログラム作成1
夏のボーナスキャンペーン 468×60