夏期休業中の評価課題(javaプログラミング演習)

Post on 13-Jul-2015

298 Views

Category:

Education

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

金沢工業高等専門学校(グローバル情報工学科)

評価課題 コンピュータ演習 III

藤澤武

2014/07/11

ver 0.9

前回からの課題である GUI版のじゃんけんアプリに加えて、GUI版の問い合わせアプリ、JSP]版の問い合わせWEBアプリを夏期休業中の課題とします。8月 27日中に指定された内容で提出すること。

改版履歴 版数 日付 内容 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

はじめに 本ドキュメントは「コンピュータ演習Ⅲ」の評価課題に関するドキュメントである. 課題プログラム 1. GUI版じゃんけんプログラム 2. 問い合わせアプリ( なお,本評価課題は夏休みの宿題を兼ねる. スケジュール 8月27日(13週前) 全課題のソースファイルと実行形式の jarファイルを提出

ソースコードの解説ドキュメントの作成 8月28日(13週後) 受け入れテスト 9月 4日(14週前) 理解度評価 9月 5日(14週後) 理解度評価 受け入れテスト:他人がつくったプログラムを評価する 理解度評価: 詳細未定 注意事項 その1:この間にインターンシップがある学生については対応を考えるが,

ソースコードの解説ドキュメントはインターンシップ前までに提出して

おくこと! その2:夏休み期間は2FのG科の実験室を自習室として使用して良い.

参考資料なども置いておくので自発的に利用すること.家に情報や環境が

無いから作業できなかったなどの言い訳は通らない. GUI版じゃんけんプログラム 教科書P267 リスト4.13 を参考にじゃんけんプログラムを作成して提出する. 提出先は夏期休業中の宿題と同じ.

問い合わせアプリ 指定の期日までに、課題のプログラムを作成し提出すること。なお、プログラムと作成し

たプログラムの理解度を総合的に判断して課題の評価を行う。 要求定義

学生の情報と問い合わせ内容をファイルに保存する GUI 版の Java アプリと、JSP 版のWEBアプリ、この二つを作成する。 共通の機能概要

GUI版と JSP版に共通する仕様を以下に示す。個別の仕様は各アプリの仕様説明の章で個別に説明を行う。 入力項目

入力項目は以下とする。 1. 学科名 2. 学年 3. 学籍番号 4. 名列番号 5. 氏名 6. 問い合わせ内容

ファイル仕様

問い合わせ内容以外は、一行ずつ「項目名:値」のフォーマットで保存し、問い合わせ内

容は「項目名:」で改行し、その後に値を保存する 例

学科:電気電子工学科 学年:5年 学籍番号: 0010101 名列番号:11 氏名: 山田太郎 問い合わせ内容: 同姓同名の人がおおいです。 なぜでしょうか?

GUI版お問い合わせアプリ

GUI 版は、3 種類(レベル)の学生情報の入力方法がある.この中から選択して作ること。レベルに応じて評価点が異なる。最低でもレベル 1が完成していないと合格点(50点)に達することはない 注:各レベルのGUIを実装したプログラムを Share フォルダーに用意してあるので,動作を確認してから開発に着手すること. レベル3まで実現できた場合はボーナスポイントを付与する 要求定義

外部仕様

項目を入力するエリアがあり,「保存」ボタンを押すと,保存先を指定するためのウインド

ウが表示され,ファイルを指定したら入力された値がファイルに保存される ファイル指定画面

入力項目画面仕様 レベル 1:学科はリストから選択する.問い合わせ内容はスクロール可能なテキストエリア,それ以外の項目はテキストフィールドで実現

レベル2:学年をラジオボタンで選択,それ以外はレベル1と同じ

レベル 3:名列番号をスピナーで実現,それ以外はレベル2と同じ

内部仕様

Shareフォルダーにある,JavaDocを参照すること

JSP版お問い合わせWEBアプリ

要求定義

GUI 版との大きな違いは入力項目を確認する画面があることと,ファイルをダウンロードできることである。 外部仕様

画面遷移

※:ShareフォルダーにプロトタイプにHTMLファイルが保存してあるので参考にすること.

���

���

����

����

���

�#2*���

��

��:7?;� ���!� ���!�

��� B��

��� 4��

���� 1234�

���� @@�

��� �� �

�#2*���

��.%0)$A�

��3��(-&,'#�

�1� ���

����(0(+�

?:45</86>=?9"?�

入力方式 学科 リストから学科を一つ選択する 学年 ラジオボタンで選択させる 学籍番号 テキスト入力 名列番号 リストから数字をひとつ選択する(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);

}

}

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>

top related