夏期休業中の評価課題(javaプログラミング演習)
TRANSCRIPT
![Page 1: 夏期休業中の評価課題(Javaプログラミング演習)](https://reader036.vdocuments.site/reader036/viewer/2022071813/55a2b8fd1a28abfc498b4649/html5/thumbnails/1.jpg)
金沢工業高等専門学校(グローバル情報工学科)
評価課題 コンピュータ演習 III
藤澤武
2014/07/11
ver 0.9
前回からの課題である GUI版のじゃんけんアプリに加えて、GUI版の問い合わせアプリ、JSP]版の問い合わせWEBアプリを夏期休業中の課題とします。8月 27日中に指定された内容で提出すること。
![Page 2: 夏期休業中の評価課題(Javaプログラミング演習)](https://reader036.vdocuments.site/reader036/viewer/2022071813/55a2b8fd1a28abfc498b4649/html5/thumbnails/2.jpg)
改版履歴 版数 日付 内容 0.1 H26/07/03 初版作成 0.2.1 H26/07/03 JSP版の外部仕様を一部変更
- データのファイルをダウンロード可能にした 0.9 H26/07/11 WEBアプリにおけるファイル保存のサンプルコードを追加 目次
改版履歴 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
目次 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
はじめに . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
注意事項 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
GUI 版じゃんけんプログラム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
問い合わせアプリ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 要求定義 ...................................................................................................................... 3 共通の機能概要 ........................................................................................................... 3 入力項目 .................................................................................................................. 3 ファイル仕様 ........................................................................................................... 3
GUI版お問い合わせアプリ ........................................................................................ 4 要求定義 .................................................................................................................. 4 外部仕様 .................................................................................................................. 4 内部仕様 .................................................................................................................. 6
JSP版お問い合わせWEBアプリ .............................................................................. 7 要求定義 .................................................................................................................. 7 外部仕様 .................................................................................................................. 7 内部仕様 .................................................................................................................. 8
![Page 3: 夏期休業中の評価課題(Javaプログラミング演習)](https://reader036.vdocuments.site/reader036/viewer/2022071813/55a2b8fd1a28abfc498b4649/html5/thumbnails/3.jpg)
はじめに 本ドキュメントは「コンピュータ演習Ⅲ」の評価課題に関するドキュメントである. 課題プログラム 1. GUI版じゃんけんプログラム 2. 問い合わせアプリ( なお,本評価課題は夏休みの宿題を兼ねる. スケジュール 8月27日(13週前) 全課題のソースファイルと実行形式の jarファイルを提出
ソースコードの解説ドキュメントの作成 8月28日(13週後) 受け入れテスト 9月 4日(14週前) 理解度評価 9月 5日(14週後) 理解度評価 受け入れテスト:他人がつくったプログラムを評価する 理解度評価: 詳細未定 注意事項 その1:この間にインターンシップがある学生については対応を考えるが,
ソースコードの解説ドキュメントはインターンシップ前までに提出して
おくこと! その2:夏休み期間は2FのG科の実験室を自習室として使用して良い.
参考資料なども置いておくので自発的に利用すること.家に情報や環境が
無いから作業できなかったなどの言い訳は通らない. GUI版じゃんけんプログラム 教科書P267 リスト4.13 を参考にじゃんけんプログラムを作成して提出する. 提出先は夏期休業中の宿題と同じ.
![Page 4: 夏期休業中の評価課題(Javaプログラミング演習)](https://reader036.vdocuments.site/reader036/viewer/2022071813/55a2b8fd1a28abfc498b4649/html5/thumbnails/4.jpg)
問い合わせアプリ 指定の期日までに、課題のプログラムを作成し提出すること。なお、プログラムと作成し
たプログラムの理解度を総合的に判断して課題の評価を行う。 要求定義
学生の情報と問い合わせ内容をファイルに保存する GUI 版の Java アプリと、JSP 版のWEBアプリ、この二つを作成する。 共通の機能概要
GUI版と JSP版に共通する仕様を以下に示す。個別の仕様は各アプリの仕様説明の章で個別に説明を行う。 入力項目
入力項目は以下とする。 1. 学科名 2. 学年 3. 学籍番号 4. 名列番号 5. 氏名 6. 問い合わせ内容
ファイル仕様
問い合わせ内容以外は、一行ずつ「項目名:値」のフォーマットで保存し、問い合わせ内
容は「項目名:」で改行し、その後に値を保存する 例
学科:電気電子工学科 学年:5年 学籍番号: 0010101 名列番号:11 氏名: 山田太郎 問い合わせ内容: 同姓同名の人がおおいです。 なぜでしょうか?
![Page 5: 夏期休業中の評価課題(Javaプログラミング演習)](https://reader036.vdocuments.site/reader036/viewer/2022071813/55a2b8fd1a28abfc498b4649/html5/thumbnails/5.jpg)
GUI版お問い合わせアプリ
GUI 版は、3 種類(レベル)の学生情報の入力方法がある.この中から選択して作ること。レベルに応じて評価点が異なる。最低でもレベル 1が完成していないと合格点(50点)に達することはない 注:各レベルのGUIを実装したプログラムを Share フォルダーに用意してあるので,動作を確認してから開発に着手すること. レベル3まで実現できた場合はボーナスポイントを付与する 要求定義
外部仕様
項目を入力するエリアがあり,「保存」ボタンを押すと,保存先を指定するためのウインド
ウが表示され,ファイルを指定したら入力された値がファイルに保存される ファイル指定画面
![Page 6: 夏期休業中の評価課題(Javaプログラミング演習)](https://reader036.vdocuments.site/reader036/viewer/2022071813/55a2b8fd1a28abfc498b4649/html5/thumbnails/6.jpg)
入力項目画面仕様 レベル 1:学科はリストから選択する.問い合わせ内容はスクロール可能なテキストエリア,それ以外の項目はテキストフィールドで実現
レベル2:学年をラジオボタンで選択,それ以外はレベル1と同じ
レベル 3:名列番号をスピナーで実現,それ以外はレベル2と同じ
![Page 7: 夏期休業中の評価課題(Javaプログラミング演習)](https://reader036.vdocuments.site/reader036/viewer/2022071813/55a2b8fd1a28abfc498b4649/html5/thumbnails/7.jpg)
内部仕様
Shareフォルダーにある,JavaDocを参照すること
![Page 8: 夏期休業中の評価課題(Javaプログラミング演習)](https://reader036.vdocuments.site/reader036/viewer/2022071813/55a2b8fd1a28abfc498b4649/html5/thumbnails/8.jpg)
JSP版お問い合わせWEBアプリ
要求定義
GUI 版との大きな違いは入力項目を確認する画面があることと,ファイルをダウンロードできることである。 外部仕様
画面遷移
※:ShareフォルダーにプロトタイプにHTMLファイルが保存してあるので参考にすること.
���
���
����
����
���
�#2*���
��
��:7?;� ���!� ���!�
��� B��
��� 4��
���� 1234�
���� @@�
��� �� �
�#2*���
��.%0)$A�
��3��(-&,'#�
�1� ���
����(0(+�
?:45</86>=?9"?�
![Page 9: 夏期休業中の評価課題(Javaプログラミング演習)](https://reader036.vdocuments.site/reader036/viewer/2022071813/55a2b8fd1a28abfc498b4649/html5/thumbnails/9.jpg)
入力方式 学科 リストから学科を一つ選択する 学年 ラジオボタンで選択させる 学籍番号 テキスト入力 名列番号 リストから数字をひとつ選択する(1〜40) 氏名 テキスト入力 問い合わせ内容 テキストエリアに入力.複数行入力が可能とする ファイルの保存先とダウンロード ファイルは、WEBの公開エリアに保存する。登録完了を知らせる画面には入力されたデータが保存されたファイルをダウンロードするために,ファイルのURLへのリンクが張っ
てある. ファイルの保存先は 公開エリアの「data」フォルダーとする.たとえば WEBアプリのパスが http://localhost:8080/summer_homework/ とすると,データファイルは http://localhost:8080/sumer_homework/data/{ファイル名} でアクセスできる. ファイル名の自動生成 同時に複数の人がこのサービスを利用する場合,データを保存するファイルの名前が同じ
だと,最後に実行した人のデータだけがファイルに保存されることになり,他の人のデー
タは消えてしまう. これを防ぐ必要がある.完全では無いがファイル名をミリ秒までを含めた保存時の時刻
を含めることで,ユーザごとに異なる名前でファイルが作成されるようにする. 内部仕様
1. ミリ秒までふくめた現時刻を求めるサンプルコード import java.util.*;
import java.text.*;
class Test {
public static void main(String[] args) {
Date date1 = new Date();
SimpleDateFormat sdf1 = new SimpleDateFormat("yyMMddHHmmSS");
String s = sdf1.format(date1) ;
System.out.println(s);
}
}
![Page 10: 夏期休業中の評価課題(Javaプログラミング演習)](https://reader036.vdocuments.site/reader036/viewer/2022071813/55a2b8fd1a28abfc498b4649/html5/thumbnails/10.jpg)
2. ファイルをWEBアプリから保存するサンプルコード
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ page import="java.io.*,java.util.Date" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head><body>
<%
String app_path = application.getRealPath("/data");
String file_path = app_path + "/" + "data_file.txt";
BufferedWriter bw = null;
try{
File f = new File(file_path);
FileOutputStream fs = new FileOutputStream(f);
// 出力するファイルの文字コードを強制的に”UTF−8”に変更するために,
//OutputStreamWriter をつかう
OutputStreamWriter os = new OutputStreamWriter(fs, "UTF-8");
bw = new BufferedWriter(os);
String cr = System.getProperty("line.separator");
bw.write("保存すべきデータ at " + new Date());
bw.flush();
}catch(Exception e){
e.printStackTrace();
}finally{
try{
bw.close();
}catch(Exception e2){ e2.printStackTrace(); }
}
%>
<h1><a href="data/data_file.txt">保存したファイルへのリンク</a></h1>
</body>
</html>