diff --git a/CUI_BlackJack/README.txt b/CUI_BlackJack/README.txt new file mode 100644 index 0000000..ee09874 --- /dev/null +++ b/CUI_BlackJack/README.txt @@ -0,0 +1,387 @@ +○システム名 + ブラックジャック + +○システム説明 + 通常のブラックジャックです。 + +○納品物 + 作成したプログラム + +1段階目(Cardクラスの作成) +以下のクラスを作成する。 +実行できないのでコンパイルエラーがなくなれば1段階目は完成とする。 +・クラス名:Card +・フィールドはそれぞれint型のsuitとrankを定義。 +  suit:マークのこと。0:スペード、1:ハート、2:ダイヤ、3:クラブとする。 +  rank:数字のこと。1:A、11:J、12:Q、13:Kとする。 +・Cardクラスはカプセル化し、フィールドはprivateとし、セッターメソッドを作成せず、 + publicなゲッターメソッドのみ作成する。 +・セッターメソッドを作成しない代わりにsuitとrankを引数に持つコンストラクタを作成し、 + コンストラクタの中でフィールドにセットする。 + +2段階目(カード内容の表示) +Cardクラスに以下のpublicメソッドを追加実装する。 +・メソッド名:toString +・引数   :なし +・戻り値  :カードのマークと数字を以下の形式の文字列でリターンする +        ハート 3 +        ダイヤ A +        クラブ 10 +        スペード Q +Test1クラスを作成し、mainメソッドの中で以下を実行する。 +・Cardクラスのインスタンスを以下のように4個作成し、c1~c4に格納する。 +        c1:ハート 3 +        c2:ダイヤ A +        c3:クラブ 10 +        c4:スペード Q +・System.out.println()メソッドの引数にc1~c4を指定し、以下のように表示する。 +<実行例> +ハート 3 +ダイヤ A +クラブ 10 +スペード Q + +3段階目(Deckクラスの作成) +以下のクラスを作成する。 +実行できないのでコンパイルエラーがなくなれば3段階目は完成とする。 +・クラス名:Deck  ←ひと組のカード、という意味 +・フィールドはArrayList型のcardListを定義。 +・引数なしのコンストラクタを作成し、以下の処理を行う。 + 〇cardListにArrayListのインスタンスを作成する + 〇二重のfor文を使用して52枚のCardクラスのインスタンスをcardListに追加する +・Deckクラスのフィールドはprivateとするが、ゲッター・セッターメソッドは作成しないこととする。 + +4段階目(shuffleメソッド、drawCardメソッドの実装) +Deckクラスに以下のpublicメソッドを追加実装する。 +実行できないのでコンパイルエラーがなくなれば3段階目は完成とする。 +・shuffleメソッド + 〇引数 :なし + 〇戻り値:なし + 〇機能 :cardListの中の52枚のカードをランダムに並び替える +・drawCardメソッド + 〇引数 :なし + 〇戻り値:cardListにカードが残っていれば先頭のカード(cardList[0])をリターン +      cardListにカードが残っていなければnullをリターン + 〇機能 :リターンした先頭のカードはcardListから削除し、2枚目以降を前につめる(ArrayListの機能を利用すること) + +5段階目(シャッフルしたカードを表示) +Test2クラスを作成し、mainメソッドの中で以下の処理を行う。 +・Deckクラスのインスタンスを作成する +・作成したDeckインスタンスをシャッフルする +・シャッフルしたDeckインスタンスをカードがなくなるまで以下を繰り返す + 〇先頭のカードを引く + 〇引いたカードを画面に表示する +<実行例> +ハート 3 +ダイヤ A +  : +クラブ 10 +スペード Q  ←全部で52行表示される + +6段階目(Handクラスの作成) +以下のクラスを作成する。 +実行できないのでコンパイルエラーがなくなれば6段階目は完成とする。 +・クラス名:Hand  ←トランプの参加者、という意味 +・以下のフィールドを定義する + 〇hands :ArrayList型、protected ←このhandsは手札の意味 + 〇name :String型、protected +・以下の内容のpublicなコンストラクタを定義する。 + 〇引数 :名前 + 〇機能 :handsにArrayListのインスタンスを作成し、nameに引数の名前をセットする +・以下の内容のpublicなdrawCardメソッドを定義する。 + 〇引数 :Deckクラスのインスタンス + 〇戻り値:なし + 〇機能 :Deckインスタンスから1枚カードを引き、handsに追加する +・以下の内容のpublicなshowHandメソッドを定義する。 + 〇引数 :なし + 〇戻り値:なし + 〇機能 :handsの中の全てのカードを以下の形式で画面に表示する +の手札 + ⇒ ハート 3 + ⇒ ダイヤ A +・handsはゲッター、セッターは不要、nameはゲッターメソッドのみ作成する + +7段階目(Playerクラスの作成) +以下のクラスを作成する。 +実行できないのでコンパイルエラーがなくなれば7段階目は完成とする。 +・クラス名:Player  ←Handクラスを継承する +・以下の内容のpublicなコンストラクタを定義する。 + 〇引数 :名前 + 〇機能 :引数の名前を使って親クラスのコンストラクタを呼び出す +・以下の内容のpublicなselectメソッドを定義する。  ←HitかStandかの選択をする意味 + 〇引数 :Deckクラスのインスタンス + 〇戻り値:boolean型。Hitを選択した場合false、Standを選択した場合true。 + 〇機能 :「どうしますか?」「1:Hit - もう一枚カードを引く」「2:Stand - この手札で勝負」の3行を表示する。 +      キーボードから入力させ、1か2以外であれば「ちゃんとやって」を表示し、再入力する。 +      1を入力した場合はデッキから1枚カードを引き、手札に追加する。 + +8段階目(Standするまで繰り返し) +BlackJackクラスを作成し、mainメソッドで以下の処理を行う。 +・Playerインスタンスを名前を「あなた」で作成する +・Deckクラスのインスタンスを作成する +・作成したDeckインスタンスをシャッフルする +・Playerが2枚カードを引く +・以下の処理をbreakが実行されるまで繰り返す。 + 〇Playerの手札を表示する + 〇区切りの「**********」を表示する + 〇Playerインスタンスのselectメソッドを呼び出し、Standを選択したらループを抜ける +・Standが選択されたら区切りの「@@@@」を表示する +<実行例> +あなたの手札 + ⇒ ハート A + ⇒ スペード 5 +********** +どうしますか? +1:Hit - もう一枚カードを引く +2:Stand - この手札で勝負 +3            ←正しくない入力の場合 +ちゃんとやって +1            ←Hitを入力の場合 +あなたの手札 + ⇒ ハート A + ⇒ スペード 5 + ⇒ スペード J +********** +どうしますか? +1:Hit - もう一枚カードを引く +2:Stand - この手札で勝負 +2            ←Standを入力の場合 +@@@@ + +9段階目(合計値表示) +Handクラスにprotectedのフィールドtotalを追加する。 +totalはセッターは作成せず、ゲッターメソッドのみ作成する。 +Handクラスに以下のメソッドを追加する。 +・calculateTotalメソッド private。 + 〇引数 :なし + 〇戻り値:なし + 〇機能 :handsの中のカードのrankをすべて足し合わせる。 +      ただし、Aは11、J~Kは10と計算する。 +      合計が21を超えた場合、最大でhandsの中のAの数だけ10を減算する。 +・isNaturalBlackJackメソッド public。 + 〇引数 :なし + 〇戻り値:ナチュラルブラックジャックならtrue、違う場合はfalse + 〇機能 :totalが21で手札の枚数が2のときナチュラルブラックジャックと判定する。 +HandクラスのdrawCardメソッドの最後でcalculateTotalメソッドを呼び出す処理を追加する。 +BlackJackクラスのmainメソッドで、Playerの手札を表示した後、以下の処理を追加する。 +・PlayerインスタンスのgetTotalメソッドを使って合計値を表示する +「**********」を表示した後、以下の処理を追加する。 +・ナチュラルブラックジャックか判定し、trueなら「ナチュラルブラックジャック!」を表示し、ループを抜ける +・合計値が21を超えていたら「Busted!」を表示し、ループを抜ける +<実行例> +あなたの手札 + ⇒ ハート 3 + ⇒ ダイヤ 7 +合計値:10 +********** +どうしますか? +1:Hit - もう一枚カードを引く +2:Stand - この手札で勝負 +1 +あなたの手札 + ⇒ ハート 3 + ⇒ ダイヤ 7 + ⇒ ハート 9 +合計値:19 +********** +どうしますか? +1:Hit - もう一枚カードを引く +2:Stand - この手札で勝負 +1 +あなたの手札 + ⇒ ハート 3 + ⇒ ダイヤ 7 + ⇒ ハート 9 + ⇒ スペード 3 +合計値:22 +********** +Busted! +@@@@ + +10段階目(Dealerクラスの作成) +以下のクラスを作成する。 +実行できないのでコンパイルエラーがなくなれば10段階目は完成とする。 +・クラス名:Dealer  ←Handクラスを継承する +・以下の内容のpublicなコンストラクタを定義する。 + 〇引数 :なし + 〇機能 :名前を「ディーラー」として親クラスのコンストラクタを呼び出す + +11段階目(ディーラーの手札表示) +Cardクラスにboolean型のflgUpフィールドを追加し、初期値はtrueとする。 +追加したflgUpはprivateとし、publicなゲッター、セッターメソッドを作成する。 +CardクラスのtoStringメソッドで、カードが裏になっている場合は「???????」を +リターンするように修正する。 +Handクラスに以下のメソッドを追加する。 + 〇メソッド名:getCard public + 〇引数   :index(先頭0) + 〇戻り値  :手札のindex枚目のカード + + 〇メソッド名:showHand public + 〇引数   :boolean型の公開フラグとlong型のミリ秒 + 〇戻り値  :なし + 〇機能   :handsの中の全てのカードを以下の形式で画面に表示するが、 +        1行表示するたびに引数のミリ秒だけsleepする。 +        また、1行の表示内容は公開フラグがtrueの場合は以下のようにする。 +の手札を公開します。 +HandクラスのもともとあったHandクラスの引数なしのshowHandメソッドは上記で追加したメソッドを +falseと0Lの引数で呼び出すのみとする。 +BlackJackクラスのmainメソッドで、以下のよう変更する。 +・Prayerクラスのインスタンス作成をやめ、、Hand型の長さ2の配列hands(参加者の意味)を作成し、 + [0]にDealerクラスの、[1]にPlayerクラスのインスタンスを作成するように変更する。 +・参加者全員にdrawCardメソッドを使って2枚ずつカードを配る。 +・ディーラーの手札の2枚目は裏にするため、CardクラスのsetFlgUpメソッドを使い、false(裏)にする。 +・ディーラーの手札をshowHandメソッドで表示し、区切りの「**********」を表示する。 +・ディーラーの手札の表示が終わったら2枚目を表に戻しておく。 +・プレイヤーがStandかBustしたあと、 + 公開フラグをtrue、ミリ秒を1000にしてディーラーの手札を表示する。 +<実行例> +ディーラーの手札 + ⇒ ダイヤ A + ⇒ ??????? +********** +あなたの手札 + ⇒ ハート K + ⇒ スペード 2 +合計値:12 +********** +どうしますか? +1:Hit - もう一枚カードを引く +2:Stand - この手札で勝負 +1 +あなたの手札 + ⇒ ハート K + ⇒ スペード 2 + ⇒ ハート 3 +合計値:15 +********** +どうしますか? +1:Hit - もう一枚カードを引く +2:Stand - この手札で勝負 +2 +@@@@ +ディーラーの手札を公開します。 + ⇒ ダイヤ A + ⇒ クラブ 3 + +12段階目(ディーラーの合計表示) +Dealerクラスに以下のpublicなメソッドを追加する。 + 〇メソッド名:drawAdditionalCard + 〇引数   :Deckインスタンス + 〇戻り値  :なし + 〇機能   :totalが17未満である間、カードを1枚引く +BlackJackクラスのmainメソッドで以下を修正する。 +・プレイヤーがカードを引き終えた後、 + プレイヤーがBustしていなければDealerクラスのdrawAdditionalCardを呼び出す。 +・ディーラーの手札を表示後、ディーラーの合計値を表示する。 +<実行例> +ディーラーの手札 + ⇒ ダイヤ A + ⇒ ??????? +********** +あなたの手札 + ⇒ ハート K + ⇒ スペード 2 +合計値:12 +********** +どうしますか? +1:Hit - もう一枚カードを引く +2:Stand - この手札で勝負 +1 +あなたの手札 + ⇒ ハート K + ⇒ スペード 2 + ⇒ ハート 3 +合計値:15 +********** +どうしますか? +1:Hit - もう一枚カードを引く +2:Stand - この手札で勝負 +2 +@@@@ +ディーラーの手札を公開します。 + ⇒ ダイヤ A + ⇒ クラブ 3 + ⇒ ハート 2 + ⇒ ダイヤ 3 +合計:19 + +13段階目(勝敗表示) +Dealerクラスに以下のpublicなメソッドを追加する。 + 〇メソッド名:compareTo + 〇引数   :Playerインスタンス + 〇戻り値  :ディーラーが勝ちなら0より大きい整数、 +        プレイヤーが勝ちなら0より小さい整数、 +        引き分けなら0 + 〇機能   :プレイヤーがBustなら無条件にディーラーの勝ち +        プレイヤーがBustでなく、ディーラーがBustならプレイヤーの勝ち +        どちらか一方がナチュラルブラックジャックならその人が勝ち +        上記以外は合計値が高い方が勝ち +BlackJackクラスのmainメソッドで、ディーラーの合計値を表示後、以下の処理を追加する。 +・compareToメソッドの戻り値に応じ、以下のいずれかを表示する。 +<プレイヤーの名前>は勝ちです。 +<プレイヤーの名前>は負けです。 +<プレイヤーの名前>は引き分けです。 + +14段階目(掛け金計算) +Handクラスに以下のpublicなメソッドを追加する。 + 〇メソッド名:clearHands() + 〇引数   :なし + 〇戻り値  :なし + 〇機能   :手札を全部削除する +Playerクラスにint型のmoneyフィールドとbetMoneyフィールドを追加する。 +どちらもprivateとし、セッターは作らず、ゲッターメソッドのみpublicのみで作成する。 +Playerクラスのコンストラクタの引数にmoneyを追加し、引数のmoneyをそのままフィールドにセットする +Playerクラスに以下のpublicなメソッドを追加する。 + 〇メソッド名:addMoney + 〇引数   :加算金額 + 〇戻り値  :なし + 〇機能   :moneyフィールドに引数の加算金額を加える。 + + 〇メソッド名:bet + 〇引数   :なし + 〇戻り値  :なし + 〇機能   :キーボードから掛け金を入力させ、以下のエラーの場合は対応するエラーメッセージを +        表示して再入力させる。エラー出なければbetMoneyに設定する。 +         ●int型に変換できない +           →数値を入力してください +         ●0円以下 +           →1以上にしてね! +         ●持ち金(money)を超えている +           →そんなにお金持ってないでしょ! +BlackJackクラスのmainメソッドに以下の処理を追加する。 +・最初に以下を表示する +  全5回ゲームを行います。 +  ※ただし持ち金が無くなった時点でゲーム終了です。 +・Playerのインスタンス作成時、初期の持ち金10000円とする。 +・以下の処理を5回繰り返す。 + 〇ゲームの最初に以下を表示する +  (一行空行をあける) +  <回数>回目のゲームを開始します。 +  BET金額を入力してください。(持ち金:<プレイヤーの持ち金>円) + 〇Playerクラスのbetメソッドで掛け金を入力する。 + 〇区切り線「==========================================================」を表示する + 〇12段階目の処理を行う。ただし、各参加者にカードを2枚ずつ配る前に全員の手札を削除する。 + 〇勝敗表示は以下とする。 +<プレイヤーの名前>は勝ちです。配当金をお渡しします。 +<プレイヤーの名前>は負けです。掛け金は没収します。 +<プレイヤーの名前>は引き分けです。掛け金を払い戻します。 + 〇負けの場合は持ち金から掛け金を減算、引き分けの場合は±0、 +  勝ちの場合は持ち金に掛け金を加算する。 +  ただし、プレイヤーがナチュラルブラックジャックで勝った場合は掛け金を1.5倍して加算。 + 〇清算した結果、持ち金が0になったら以下を表示してプログラムを終了する。 +お金がありません。。。もう終わりです。 + 〇5回ゲームしたら最後に以下の表示をしてプログラムを終了する。 +あなたのスコアは<持ち金>円でした + +<以下、時間が余った人向け> +15段階目(例外判定) +例外処理を入れないといけないところを考えて適切に処理する +例)デッキからカードを引こうとしたらもうデッキにカードがない場合 etc + +16段階目(複数のプレイヤー) +実際のカジノでは1人のディーラーが複数のプレイヤーと同時にゲームするのが普通。 +プレイヤーが複数でもゲームできるようにする。 + +17段階目(特別ルール) +スプリットやインシュランスなどの特別ルールを実装する。 +ルールはネット等で調べること。どのルールを実装するかは開発者に任せる。 diff --git a/CUI_BlackJack/実行例/このファイルを実行してください.bat b/CUI_BlackJack/実行例/このファイルを実行してください.bat new file mode 100644 index 0000000..6cd8193 --- /dev/null +++ b/CUI_BlackJack/実行例/このファイルを実行してください.bat @@ -0,0 +1,2 @@ +java -jar BlackJack.jar +pause diff --git a/CUI_HitAndBlow/Javadoc/allclasses-frame.html b/CUI_HitAndBlow/Javadoc/allclasses-frame.html new file mode 100644 index 0000000..c118cf0 --- /dev/null +++ b/CUI_HitAndBlow/Javadoc/allclasses-frame.html @@ -0,0 +1,20 @@ + + + + + + +すべてのクラス + + + + + +

すべてのクラス

+
+ +
+ + diff --git a/CUI_HitAndBlow/Javadoc/allclasses-noframe.html b/CUI_HitAndBlow/Javadoc/allclasses-noframe.html new file mode 100644 index 0000000..97d145c --- /dev/null +++ b/CUI_HitAndBlow/Javadoc/allclasses-noframe.html @@ -0,0 +1,20 @@ + + + + + + +すべてのクラス + + + + + +

すべてのクラス

+
+ +
+ + diff --git a/CUI_HitAndBlow/Javadoc/constant-values.html b/CUI_HitAndBlow/Javadoc/constant-values.html new file mode 100644 index 0000000..4cc0306 --- /dev/null +++ b/CUI_HitAndBlow/Javadoc/constant-values.html @@ -0,0 +1,121 @@ + + + + + + +定数フィールド値 + + + + + + + + + + + +
+

定数フィールド値

+

コンテンツ

+
+ + + + + + diff --git a/CUI_HitAndBlow/Javadoc/deprecated-list.html b/CUI_HitAndBlow/Javadoc/deprecated-list.html new file mode 100644 index 0000000..853237b --- /dev/null +++ b/CUI_HitAndBlow/Javadoc/deprecated-list.html @@ -0,0 +1,121 @@ + + + + + + +非推奨のリスト + + + + + + + + + + + +
+

非推奨のAPI

+

コンテンツ

+
+ + + + + + diff --git a/CUI_HitAndBlow/Javadoc/help-doc.html b/CUI_HitAndBlow/Javadoc/help-doc.html new file mode 100644 index 0000000..e240f03 --- /dev/null +++ b/CUI_HitAndBlow/Javadoc/help-doc.html @@ -0,0 +1,218 @@ + + + + + + +APIヘルプ + + + + + + + + + + + +
+

APIドキュメントの構成

+
このAPI (Application Programming Interface)ドキュメントには、次に説明するナビゲーション・バーにある項目に対応するページが含まれます。
+
+
+
    +
  • +

    パッケージ

    +

    各パッケージには、そのパッケージのクラスおよびインタフェースのリストと、それぞれのサマリーを含むページがあります。このページは6つのカテゴリで構成されます。

    +
      +
    • インタフェース(イタリック)
    • +
    • クラス
    • +
    • 列挙型
    • +
    • 例外
    • +
    • エラー
    • +
    • 注釈型
    • +
    +
  • +
  • +

    クラスまたはインタフェース

    +

    各クラス、インタフェース、ネストされたクラスおよびネストされたインタフェースには個別のページがあります。各ページには次のように、クラスまたはインタフェースの説明と、サマリー表およびメンバーの詳細説明が含まれます。

    +
      +
    • クラス階層表示
    • +
    • 直系のサブクラス
    • +
    • 既知のサブインタフェースのリスト
    • +
    • 既知の実装クラスのリスト
    • +
    • クラスまたはインタフェースの宣言
    • +
    • クラスまたはインタフェースの説明
    • +
    +
      +
    • ネストされたクラスのサマリー
    • +
    • フィールドのサマリー
    • +
    • コンストラクタのサマリー
    • +
    • メソッドのサマリー
    • +
    +
      +
    • フィールドの詳細
    • +
    • コンストラクタの詳細
    • +
    • メソッドの詳細
    • +
    +

    各サマリー・エントリには、その項目の詳細説明の中から1行目の文が表示されます。サマリー・エントリはアルファベット順ですが、詳細説明はソース・コードに現れる順になっています。これによって、プログラマが設定した論理的なグループ分けが保持されます。

    +
  • +
  • +

    注釈型

    +

    各注釈型には、それ自身の個別のページと次のセクションがあります:

    +
      +
    • 注釈型の宣言
    • +
    • 注釈型の説明
    • +
    • 必須要素のサマリー
    • +
    • 任意要素のサマリー
    • +
    • 要素の詳細
    • +
    +
  • +
  • +

    列挙型

    +

    各列挙型には、それ自身の個別のページと次のセクションがあります:

    +
      +
    • 列挙型の宣言
    • +
    • 列挙型の説明
    • +
    • 列挙型定数のサマリー
    • +
    • 列挙型定数の詳細
    • +
    +
  • +
  • +

    階層ツリー(クラス階層)

    +

    すべてのパッケージにはクラス階層ページがあり、さらに各パッケージの階層があります。各階層ページは、クラスのリストとインタフェースのリストを含みます。クラスはjava.lang.Objectを開始点とする継承構造で編成されます。インタフェースは、java.lang.Objectからは継承しません。

    +
      +
    • 概要ページを表示しているときに「階層ツリー」をクリックすると、全パッケージの階層が表示されます。
    • +
    • 特定のパッケージ、クラスまたはインタフェースを表示しているときに「階層ツリー」をクリックすると、該当するパッケージのみの階層が表示されます。
    • +
    +
  • +
  • +

    非推奨のAPI

    +

    非推奨のAPIページは、非推奨のAPIをすべてリストします。非推奨のAPIとは、機能改良などの理由から使用をお薦めできなくなったAPIのことで、通常はそれに代わるAPIが提供されます。非推奨のAPIは今後の実装で削除される可能性があります。

    +
  • +
  • +

    索引

    +

    索引には、すべてのクラス、インタフェース、コンストラクタ、メソッドおよびフィールドのアルファベット順のリストが含まれます。

    +
  • +
  • +

    前/次

    +

    これらのリンクにより、前または次のクラス、インタフェース、パッケージまたは関連ページへ移動できます。

    +
  • +
  • +

    フレーム/フレームなし

    +

    これらのリンクはHTMLフレームの表示と非表示を切り替えます。すべてのページはフレームありでも、フレームなしでも表示できます。

    +
  • +
  • +

    すべてのクラス

    +

    すべてのクラスリンクには、すべてのクラスおよびインタフェース(非staticのネストされた型を除く)が表示されます。

    +
  • +
  • +

    直列化された形式

    +

    直列化可能または外部化可能な各クラスは、直列化フィールドとメソッドの説明を含みます。この情報は、APIを使用する開発者ではなく、再実装を行う担当者に役立ちます。ナビゲーション・バーにリンクがない場合、直列化されたクラスに移動して、クラス記述の「関連項目」セクションにある「直列化された形式」をクリックすることにより、この情報を表示できます。

    +
  • +
  • +

    定数フィールド値

    +

    定数フィールド値ページには、static finalフィールドとその値のリストがあります。

    +
  • +
+このヘルプ・ファイルは、標準docletを使用して生成されたAPIドキュメントに適用されます。
+ + + + + + diff --git a/CUI_HitAndBlow/Javadoc/hitandblow/main/HitAndBlow.html b/CUI_HitAndBlow/Javadoc/hitandblow/main/HitAndBlow.html new file mode 100644 index 0000000..c1354a6 --- /dev/null +++ b/CUI_HitAndBlow/Javadoc/hitandblow/main/HitAndBlow.html @@ -0,0 +1,252 @@ + + + + + + +HitAndBlow + + + + + + + + + + + + +
+
hitandblow.main
+

クラス HitAndBlow

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • hitandblow.main.HitAndBlow
    • +
    +
  • +
+
+
    +
  • +
    +
    +
    public class HitAndBlow
    +extends java.lang.Object
    +
    Hit And Blowゲームを行うプログラムです。 + メソッドの構成、プログラミングの手法については問いませんが、仕様を守る・不具合は出さないことに気をつけてコーディングしてください + +

    【処理簡易仕様】 +

      +
    • Playerにゲームを行う桁数を決めてもらう
    • +
    • コンピュータが数字を選ぶ
    • +
    • Playerに当てる数字を入力してもらう
    • +
    • 入力した数値のエラーチェック(桁数、重複など)
    • +
    • 正誤チェック(xHit yBlow)
    • +
    • すべてHitになるまで、当てる数字を入力してもらう
    • +
    + +

    +
    +
    関連項目:
    +
    Hit And Blowのルールはこちら
    +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      コンストラクタのサマリー

      + + + + + + + + +
      コンストラクタ 
      コンストラクタと説明
      HitAndBlow() 
      +
    • +
    + +
      +
    • + + +

      メソッドのサマリー

      +
        +
      • + + +

        クラスから継承されたメソッド java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      コンストラクタの詳細

      + + + +
        +
      • +

        HitAndBlow

        +
        public HitAndBlow()
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/CUI_HitAndBlow/Javadoc/hitandblow/main/package-frame.html b/CUI_HitAndBlow/Javadoc/hitandblow/main/package-frame.html new file mode 100644 index 0000000..12c6344 --- /dev/null +++ b/CUI_HitAndBlow/Javadoc/hitandblow/main/package-frame.html @@ -0,0 +1,21 @@ + + + + + + +hitandblow.main + + + + + +

hitandblow.main

+
+

クラス

+ +
+ + diff --git a/CUI_HitAndBlow/Javadoc/hitandblow/main/package-summary.html b/CUI_HitAndBlow/Javadoc/hitandblow/main/package-summary.html new file mode 100644 index 0000000..9cf6482 --- /dev/null +++ b/CUI_HitAndBlow/Javadoc/hitandblow/main/package-summary.html @@ -0,0 +1,141 @@ + + + + + + +hitandblow.main + + + + + + + + + + + +
+

パッケージ hitandblow.main

+
+
+
    +
  • + + + + + + + + + + + + +
    クラスのサマリー 
    クラス説明
    HitAndBlow +
    Hit And Blowゲームを行うプログラムです。
    +
    +
  • +
+
+ + + + + + diff --git a/CUI_HitAndBlow/Javadoc/hitandblow/main/package-tree.html b/CUI_HitAndBlow/Javadoc/hitandblow/main/package-tree.html new file mode 100644 index 0000000..0f9655f --- /dev/null +++ b/CUI_HitAndBlow/Javadoc/hitandblow/main/package-tree.html @@ -0,0 +1,130 @@ + + + + + + +hitandblow.main クラス階層 + + + + + + + + + + + +
+

パッケージhitandblow.mainの階層

+
+
+

クラス階層

+
    +
  • java.lang.Object + +
  • +
+
+ + + + + + diff --git a/CUI_HitAndBlow/Javadoc/index-all.html b/CUI_HitAndBlow/Javadoc/index-all.html new file mode 100644 index 0000000..223f983 --- /dev/null +++ b/CUI_HitAndBlow/Javadoc/index-all.html @@ -0,0 +1,132 @@ + + + + + + +索引 + + + + + + + + + + + +
H  + + +

H

+
+
HitAndBlow - hitandblow.mainのクラス
+
+
Hit And Blowゲームを行うプログラムです。
+
+
HitAndBlow() - クラス のコンストラクタhitandblow.main.HitAndBlow
+
 
+
hitandblow.main - パッケージ hitandblow.main
+
 
+
+H 
+ + + + + + diff --git a/CUI_HitAndBlow/Javadoc/index.html b/CUI_HitAndBlow/Javadoc/index.html new file mode 100644 index 0000000..51b7a52 --- /dev/null +++ b/CUI_HitAndBlow/Javadoc/index.html @@ -0,0 +1,72 @@ + + + + + + +生成されたドキュメント(タイトルなし) + + + + + + +<noscript> +<div>ブラウザのJavaScriptが無効になっています。</div> +</noscript> +<h2>フレーム関連のアラート</h2> +<p>このドキュメントはフレーム機能を使用して表示するように作成されています。フレームを表示できないWebクライアントの場合にこのメッセージが表示されます。<a href="hitandblow/main/package-summary.html">フレームに対応していないバージョン</a>にリンクします。</p> + + + diff --git a/CUI_HitAndBlow/Javadoc/overview-tree.html b/CUI_HitAndBlow/Javadoc/overview-tree.html new file mode 100644 index 0000000..331fc5a --- /dev/null +++ b/CUI_HitAndBlow/Javadoc/overview-tree.html @@ -0,0 +1,134 @@ + + + + + + +クラス階層 + + + + + + + + + + + +
+

すべてのパッケージの階層

+パッケージ階層: + +
+
+

クラス階層

+
    +
  • java.lang.Object + +
  • +
+
+ + + + + + diff --git a/CUI_HitAndBlow/Javadoc/package-list b/CUI_HitAndBlow/Javadoc/package-list new file mode 100644 index 0000000..2adcc93 --- /dev/null +++ b/CUI_HitAndBlow/Javadoc/package-list @@ -0,0 +1 @@ +hitandblow.main diff --git a/CUI_HitAndBlow/Javadoc/script.js b/CUI_HitAndBlow/Javadoc/script.js new file mode 100644 index 0000000..b346356 --- /dev/null +++ b/CUI_HitAndBlow/Javadoc/script.js @@ -0,0 +1,30 @@ +function show(type) +{ + count = 0; + for (var key in methods) { + var row = document.getElementById(key); + if ((methods[key] & type) != 0) { + row.style.display = ''; + row.className = (count++ % 2) ? rowColor : altColor; + } + else + row.style.display = 'none'; + } + updateTabs(type); +} + +function updateTabs(type) +{ + for (var value in tabs) { + var sNode = document.getElementById(tabs[value][0]); + var spanNode = sNode.firstChild; + if (value == type) { + sNode.className = activeTableTab; + spanNode.innerHTML = tabs[value][1]; + } + else { + sNode.className = tableTab; + spanNode.innerHTML = "" + tabs[value][1] + ""; + } + } +} diff --git a/CUI_HitAndBlow/Javadoc/stylesheet.css b/CUI_HitAndBlow/Javadoc/stylesheet.css new file mode 100644 index 0000000..98055b2 --- /dev/null +++ b/CUI_HitAndBlow/Javadoc/stylesheet.css @@ -0,0 +1,574 @@ +/* Javadoc style sheet */ +/* +Overall document style +*/ + +@import url('resources/fonts/dejavu.css'); + +body { + background-color:#ffffff; + color:#353833; + font-family:'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size:14px; + margin:0; +} +a:link, a:visited { + text-decoration:none; + color:#4A6782; +} +a:hover, a:focus { + text-decoration:none; + color:#bb7a2a; +} +a:active { + text-decoration:none; + color:#4A6782; +} +a[name] { + color:#353833; +} +a[name]:hover { + text-decoration:none; + color:#353833; +} +pre { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; +} +h1 { + font-size:20px; +} +h2 { + font-size:18px; +} +h3 { + font-size:16px; + font-style:italic; +} +h4 { + font-size:13px; +} +h5 { + font-size:12px; +} +h6 { + font-size:11px; +} +ul { + list-style-type:disc; +} +code, tt { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + padding-top:4px; + margin-top:8px; + line-height:1.4em; +} +dt code { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + padding-top:4px; +} +table tr td dt code { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + vertical-align:top; + padding-top:4px; +} +sup { + font-size:8px; +} +/* +Document title and Copyright styles +*/ +.clear { + clear:both; + height:0px; + overflow:hidden; +} +.aboutLanguage { + float:right; + padding:0px 21px; + font-size:11px; + z-index:200; + margin-top:-9px; +} +.legalCopy { + margin-left:.5em; +} +.bar a, .bar a:link, .bar a:visited, .bar a:active { + color:#FFFFFF; + text-decoration:none; +} +.bar a:hover, .bar a:focus { + color:#bb7a2a; +} +.tab { + background-color:#0066FF; + color:#ffffff; + padding:8px; + width:5em; + font-weight:bold; +} +/* +Navigation bar styles +*/ +.bar { + background-color:#4D7A97; + color:#FFFFFF; + padding:.8em .5em .4em .8em; + height:auto;/*height:1.8em;*/ + font-size:11px; + margin:0; +} +.topNav { + background-color:#4D7A97; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + height:2.8em; + padding-top:10px; + overflow:hidden; + font-size:12px; +} +.bottomNav { + margin-top:10px; + background-color:#4D7A97; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + height:2.8em; + padding-top:10px; + overflow:hidden; + font-size:12px; +} +.subNav { + background-color:#dee3e9; + float:left; + width:100%; + overflow:hidden; + font-size:12px; +} +.subNav div { + clear:left; + float:left; + padding:0 0 5px 6px; + text-transform:uppercase; +} +ul.navList, ul.subNavList { + float:left; + margin:0 25px 0 0; + padding:0; +} +ul.navList li{ + list-style:none; + float:left; + padding: 5px 6px; + text-transform:uppercase; +} +ul.subNavList li{ + list-style:none; + float:left; +} +.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited { + color:#FFFFFF; + text-decoration:none; + text-transform:uppercase; +} +.topNav a:hover, .bottomNav a:hover { + text-decoration:none; + color:#bb7a2a; + text-transform:uppercase; +} +.navBarCell1Rev { + background-color:#F8981D; + color:#253441; + margin: auto 5px; +} +.skipNav { + position:absolute; + top:auto; + left:-9999px; + overflow:hidden; +} +/* +Page header and footer styles +*/ +.header, .footer { + clear:both; + margin:0 20px; + padding:5px 0 0 0; +} +.indexHeader { + margin:10px; + position:relative; +} +.indexHeader span{ + margin-right:15px; +} +.indexHeader h1 { + font-size:13px; +} +.title { + color:#2c4557; + margin:10px 0; +} +.subTitle { + margin:5px 0 0 0; +} +.header ul { + margin:0 0 15px 0; + padding:0; +} +.footer ul { + margin:20px 0 5px 0; +} +.header ul li, .footer ul li { + list-style:none; + font-size:13px; +} +/* +Heading styles +*/ +div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 { + background-color:#dee3e9; + border:1px solid #d0d9e0; + margin:0 0 6px -8px; + padding:7px 5px; +} +ul.blockList ul.blockList ul.blockList li.blockList h3 { + background-color:#dee3e9; + border:1px solid #d0d9e0; + margin:0 0 6px -8px; + padding:7px 5px; +} +ul.blockList ul.blockList li.blockList h3 { + padding:0; + margin:15px 0; +} +ul.blockList li.blockList h2 { + padding:0px 0 20px 0; +} +/* +Page layout container styles +*/ +.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer { + clear:both; + padding:10px 20px; + position:relative; +} +.indexContainer { + margin:10px; + position:relative; + font-size:12px; +} +.indexContainer h2 { + font-size:13px; + padding:0 0 3px 0; +} +.indexContainer ul { + margin:0; + padding:0; +} +.indexContainer ul li { + list-style:none; + padding-top:2px; +} +.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt { + font-size:12px; + font-weight:bold; + margin:10px 0 0 0; + color:#4E4E4E; +} +.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd { + margin:5px 0 10px 0px; + font-size:14px; + font-family:'DejaVu Sans Mono',monospace; +} +.serializedFormContainer dl.nameValue dt { + margin-left:1px; + font-size:1.1em; + display:inline; + font-weight:bold; +} +.serializedFormContainer dl.nameValue dd { + margin:0 0 0 1px; + font-size:1.1em; + display:inline; +} +/* +List styles +*/ +ul.horizontal li { + display:inline; + font-size:0.9em; +} +ul.inheritance { + margin:0; + padding:0; +} +ul.inheritance li { + display:inline; + list-style:none; +} +ul.inheritance li ul.inheritance { + margin-left:15px; + padding-left:15px; + padding-top:1px; +} +ul.blockList, ul.blockListLast { + margin:10px 0 10px 0; + padding:0; +} +ul.blockList li.blockList, ul.blockListLast li.blockList { + list-style:none; + margin-bottom:15px; + line-height:1.4; +} +ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList { + padding:0px 20px 5px 10px; + border:1px solid #ededed; + background-color:#f8f8f8; +} +ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList { + padding:0 0 5px 8px; + background-color:#ffffff; + border:none; +} +ul.blockList ul.blockList ul.blockList ul.blockList li.blockList { + margin-left:0; + padding-left:0; + padding-bottom:15px; + border:none; +} +ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast { + list-style:none; + border-bottom:none; + padding-bottom:0; +} +table tr td dl, table tr td dl dt, table tr td dl dd { + margin-top:0; + margin-bottom:1px; +} +/* +Table styles +*/ +.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary { + width:100%; + border-left:1px solid #EEE; + border-right:1px solid #EEE; + border-bottom:1px solid #EEE; +} +.overviewSummary, .memberSummary { + padding:0px; +} +.overviewSummary caption, .memberSummary caption, .typeSummary caption, +.useSummary caption, .constantsSummary caption, .deprecatedSummary caption { + position:relative; + text-align:left; + background-repeat:no-repeat; + color:#253441; + font-weight:bold; + clear:none; + overflow:hidden; + padding:0px; + padding-top:10px; + padding-left:1px; + margin:0px; + white-space:pre; +} +.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link, +.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link, +.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover, +.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover, +.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active, +.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active, +.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited, +.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited { + color:#FFFFFF; +} +.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span, +.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + padding-bottom:7px; + display:inline-block; + float:left; + background-color:#F8981D; + border: none; + height:16px; +} +.memberSummary caption span.activeTableTab span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + margin-right:3px; + display:inline-block; + float:left; + background-color:#F8981D; + height:16px; +} +.memberSummary caption span.tableTab span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + margin-right:3px; + display:inline-block; + float:left; + background-color:#4D7A97; + height:16px; +} +.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab { + padding-top:0px; + padding-left:0px; + padding-right:0px; + background-image:none; + float:none; + display:inline; +} +.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd, +.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd { + display:none; + width:5px; + position:relative; + float:left; + background-color:#F8981D; +} +.memberSummary .activeTableTab .tabEnd { + display:none; + width:5px; + margin-right:3px; + position:relative; + float:left; + background-color:#F8981D; +} +.memberSummary .tableTab .tabEnd { + display:none; + width:5px; + margin-right:3px; + position:relative; + background-color:#4D7A97; + float:left; + +} +.overviewSummary td, .memberSummary td, .typeSummary td, +.useSummary td, .constantsSummary td, .deprecatedSummary td { + text-align:left; + padding:0px 0px 12px 10px; +} +th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th, +td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{ + vertical-align:top; + padding-right:0px; + padding-top:8px; + padding-bottom:3px; +} +th.colFirst, th.colLast, th.colOne, .constantsSummary th { + background:#dee3e9; + text-align:left; + padding:8px 3px 3px 7px; +} +td.colFirst, th.colFirst { + white-space:nowrap; + font-size:13px; +} +td.colLast, th.colLast { + font-size:13px; +} +td.colOne, th.colOne { + font-size:13px; +} +.overviewSummary td.colFirst, .overviewSummary th.colFirst, +.useSummary td.colFirst, .useSummary th.colFirst, +.overviewSummary td.colOne, .overviewSummary th.colOne, +.memberSummary td.colFirst, .memberSummary th.colFirst, +.memberSummary td.colOne, .memberSummary th.colOne, +.typeSummary td.colFirst{ + width:25%; + vertical-align:top; +} +td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover { + font-weight:bold; +} +.tableSubHeadingColor { + background-color:#EEEEFF; +} +.altColor { + background-color:#FFFFFF; +} +.rowColor { + background-color:#EEEEEF; +} +/* +Content styles +*/ +.description pre { + margin-top:0; +} +.deprecatedContent { + margin:0; + padding:10px 0; +} +.docSummary { + padding:0; +} + +ul.blockList ul.blockList ul.blockList li.blockList h3 { + font-style:normal; +} + +div.block { + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; +} + +td.colLast div { + padding-top:0px; +} + + +td.colLast a { + padding-bottom:3px; +} +/* +Formatting effect styles +*/ +.sourceLineNo { + color:green; + padding:0 30px 0 0; +} +h1.hidden { + visibility:hidden; + overflow:hidden; + font-size:10px; +} +.block { + display:block; + margin:3px 10px 2px 0px; + color:#474747; +} +.deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink, +.overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel, +.seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink { + font-weight:bold; +} +.deprecationComment, .emphasizedPhrase, .interfaceName { + font-style:italic; +} + +div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase, +div.block div.block span.interfaceName { + font-style:normal; +} + +div.contentContainer ul.blockList li.blockList h2{ + padding-bottom:0px; +} diff --git a/CUI_HitAndBlow/README.txt b/CUI_HitAndBlow/README.txt new file mode 100644 index 0000000..46c28a5 --- /dev/null +++ b/CUI_HitAndBlow/README.txt @@ -0,0 +1,148 @@ +○システム名 + ヒットアンドブロー + +○システム説明 + Playerにゲームを行う桁数を決めてもらう + コンピュータが数字を選ぶ + Playerに当てる数字を入力してもらう + 入力した数値のエラーチェック(桁数、重複など) + 正誤チェック(xHit: yBlow) + すべてHitになるまで、当てる数字を入力してもらう + +○納品物 + 作成したプログラム + 設計書 + +○早く終わったら・・・・ + CUI_BlackJackを作成してください + +〇設計書 +プログラミングの各段階ごとに処理詳細シートに追記する。 +印刷を意識し、印刷プレビューや罫線も意識して作成すること。 + +〇プログラミング +1段階目(問題作成) +4桁のランダムな数字を表示させる。必ず4桁なので先頭0もOK。ただし、数字が重複しないこと。 +<実行例> +0683 + +2段階目(回答妥当性チェック) +4桁のランダムな数字を表示させた後、キーボードから数字を入力させ、 +以下のチェックを行う。エラーがあればエラーメッセージを表示し、再度入力させる。 +・桁数が4桁か + NGの場合のエラーメッセージ「桁数に過ちがあります」 +・全部半角数字か + NGの場合のエラーメッセージ「数値ではありません」 +・重複している数字がないか + NGの場合のエラーメッセージ「重複している値があります」 +<実行例> +0683 ←コンピュータが選んだランダムな4桁 +12345 ←4桁以外を入力 +桁数に過ちがあります +123A ←半角数字以外を入力 +数値ではありません +1233 ←重複する数字を入力 +重複している値があります +1234 ←重複しない4桁の数字を入力 + +3段階目(Hit判定) +1段階目を使って4桁のランダムな数字を表示させる。 +その後2段階目を使って4桁の重複しない数字を入力させる。 +ランダムな数字と入力した数字でHitを数え、以下を表示する + 入力した数字 ( ?Hit)  例:1234 ( 1Hit) +<実行例> +0283 ←コンピュータが選んだランダムな4桁 +1234 ←重複しない4桁の数字を入力 +1234 ( 1Hit) ←Hitを表示 + +4段階目(HitとBlow判定) +1段階目を使って4桁のランダムな数字を表示させる。 +その後2段階目を使って4桁の重複しない数字を入力させる。 +ランダムな数字と入力した数字でHitとBlowを数え、以下を表示する + 入力した数字 ( ?Hit: ?Blow)  例:1234 ( 1Hit: 1Blow) +<実行例> +0283 ←コンピュータが選んだランダムな4桁 +1234 ←重複しない4桁の数字を入力 +1234 ( 1Hit: 1Blow) ←HitとBlowを表示 + +5段階目(正解するまで繰り返し) +以下の手順で4桁限定のHitAndBlowを完成させる。 +1段階目で4桁のランダムの数字を作成するがそれを表示しないように変更する。 +4Hitになるまで以下の処理を繰り返す。 +・何回目の回答かを表示する +・2段階目を使って4桁の重複しない数字を入力させる +・HitとBlowを数え表示する +<実行例> +1回目の回答 +2974 +2974 ( 0Hit: 1Blow) +2回目の回答 +7639 +7639 ( 0Hit: 1Blow) +3回目の回答 +5780 +5780 ( 1Hit: 0Blow) +4回目の回答 +5143 +5143 ( 0Hit: 3Blow) +5回目の回答 +4381 +4381 ( 0Hit: 3Blow) +6回目の回答 +3410 +6回でクリア + +6段階目(桁数指定) +5段階目の先頭に桁数を入力させる処理を追加する。 +桁数が1~9以外であれば再入力させ、1~9であればその桁数でHitAndBlowを実行するように変更する。 +<実行例> +何桁の数字で開始しますか?(1 ~ 9) +10 +正しい数値を入力してください +3 +1回目の回答 +264 +264 ( 0Hit: 1Blow) +2回目の回答 +703 +703 ( 0Hit: 0Blow) +3回目の回答 +485 +485 ( 0Hit: 1Blow) +4回目の回答 +914 +914 ( 0Hit: 1Blow) +5回目の回答 +892 +892 ( 1Hit: 0Blow) +6回目の回答 +596 +6回でクリア + + +○<以下、時間が余った人向け> + +7段階目(アニメーション) +「コンピュータが数字を選んでいます。。。。」のアニメーションを実装する。 +<実行例> +何桁の数字で開始しますか?(1 ~ 9) +3 +コンピュータが数字を選んでいます。。。。 +1回目の回答 +264 +264 ( 0Hit: 1Blow) +2回目の回答 +703 +703 ( 0Hit: 0Blow) +3回目の回答 +485 +485 ( 0Hit: 1Blow) +4回目の回答 +914 +914 ( 0Hit: 1Blow) +5回目の回答 +892 +892 ( 1Hit: 0Blow) +6回目の回答 +596 +6回でクリア diff --git a/CUI_HitAndBlow/src/hitandblow/main/HitAndBlow.java b/CUI_HitAndBlow/src/hitandblow/main/HitAndBlow.java new file mode 100644 index 0000000..752418c --- /dev/null +++ b/CUI_HitAndBlow/src/hitandblow/main/HitAndBlow.java @@ -0,0 +1,14 @@ +/* + * HitAndBlow.java + * 作成 IT-College 2016 + *------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ + +package hitandblow.main; + +public class HitAndBlow { + public static void main(String[] args) { + + } +} diff --git a/CUI_HitAndBlow/実行例/このファイルを実行してください.bat b/CUI_HitAndBlow/実行例/このファイルを実行してください.bat new file mode 100644 index 0000000..93640f5 --- /dev/null +++ b/CUI_HitAndBlow/実行例/このファイルを実行してください.bat @@ -0,0 +1,2 @@ +java -jar HitAndBlow.jar +pause diff --git a/CUI_HitAndBlow/設計書サンプル.xlsx b/CUI_HitAndBlow/設計書サンプル.xlsx new file mode 100644 index 0000000..a4906bc Binary files /dev/null and b/CUI_HitAndBlow/設計書サンプル.xlsx differ diff --git a/CUI_Poker/src/Poker.java b/CUI_Poker/src/Poker.java new file mode 100644 index 0000000..f91c37d --- /dev/null +++ b/CUI_Poker/src/Poker.java @@ -0,0 +1,13 @@ +/* + * Poker.java + * 作成 IT-College 2017 + *------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ + +import java.io.IOException; + +public class Poker { + public static void main(String[] args) throws IOException { + } +} diff --git a/CUI_Poker/実行例/このファイルを実行してください.bat b/CUI_Poker/実行例/このファイルを実行してください.bat new file mode 100644 index 0000000..bac71b4 --- /dev/null +++ b/CUI_Poker/実行例/このファイルを実行してください.bat @@ -0,0 +1,2 @@ +java -jar Poker.jar +pause diff --git a/CUI_じゃんけん/src/RPS.java b/CUI_じゃんけん/src/RPS.java new file mode 100644 index 0000000..d7a5e8b --- /dev/null +++ b/CUI_じゃんけん/src/RPS.java @@ -0,0 +1,16 @@ +/* + * RPS.java + * 作成 IT-College 2017 + *------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ + +public class RPS { + + /** + * @param args + */ + public static void main(String[] args) { + + } +} diff --git a/CUI_じゃんけん/実行例/このファイルを実行してください.bat b/CUI_じゃんけん/実行例/このファイルを実行してください.bat new file mode 100644 index 0000000..3c1e5ba --- /dev/null +++ b/CUI_じゃんけん/実行例/このファイルを実行してください.bat @@ -0,0 +1,2 @@ +java -jar RPS.jar +pause diff --git a/CUI_エラトステネスの篩/src/Eratosthenes.java b/CUI_エラトステネスの篩/src/Eratosthenes.java new file mode 100644 index 0000000..bcf1c22 --- /dev/null +++ b/CUI_エラトステネスの篩/src/Eratosthenes.java @@ -0,0 +1,15 @@ +/* + * Eratosthenes.java + * 作成 IT-College 2017 + *------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ + +public class Eratosthenes { + + /** + * @param args + */ + public static void main(String[] args) { + } +} diff --git a/CUI_エラトステネスの篩/実行例/このファイルを実行してください.bat b/CUI_エラトステネスの篩/実行例/このファイルを実行してください.bat new file mode 100644 index 0000000..a17bbcd --- /dev/null +++ b/CUI_エラトステネスの篩/実行例/このファイルを実行してください.bat @@ -0,0 +1,2 @@ +java -jar Eratosthenes.jar +pause diff --git a/CUI_オセロ/src/othello/Game.java b/CUI_オセロ/src/othello/Game.java new file mode 100644 index 0000000..1fa35d6 --- /dev/null +++ b/CUI_オセロ/src/othello/Game.java @@ -0,0 +1,14 @@ +/* + * Game.java + * 作成 IT-College 2017 + *------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ + +package othello; + +public class Game { + + public static void main(String[] args) { + } +} diff --git a/CUI_オセロ/実行例/このファイルを実行してください.bat b/CUI_オセロ/実行例/このファイルを実行してください.bat new file mode 100644 index 0000000..2042c0f --- /dev/null +++ b/CUI_オセロ/実行例/このファイルを実行してください.bat @@ -0,0 +1,2 @@ +java -jar othello.jar +pause diff --git a/CUI_オブジェクト指向復習問題/Question1/.gitignore b/CUI_オブジェクト指向復習問題/Question1/.gitignore new file mode 100644 index 0000000..ae3c172 --- /dev/null +++ b/CUI_オブジェクト指向復習問題/Question1/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/CUI_オブジェクト指向復習問題/Question1/README.md b/CUI_オブジェクト指向復習問題/Question1/README.md new file mode 100644 index 0000000..f5bcd76 --- /dev/null +++ b/CUI_オブジェクト指向復習問題/Question1/README.md @@ -0,0 +1,11 @@ +# オブジェクト指向総合復習問題 Question1 +完成したプログラムを確認しコメントを追加してください。 +追加するコメントは以下とします。 + +- クラス自体へのコメント + Induction.javaを参考にして書いてみてください + +- メソッド自体へのコメント + Induction.javaを参考にして書いてみてください + +- 1行1行処理のコメント \ No newline at end of file diff --git a/CUI_オブジェクト指向復習問題/Question1/file/DBCurriculum.csv b/CUI_オブジェクト指向復習問題/Question1/file/DBCurriculum.csv new file mode 100644 index 0000000..3b7906d --- /dev/null +++ b/CUI_オブジェクト指向復習問題/Question1/file/DBCurriculum.csv @@ -0,0 +1,9 @@ +05/26 10:00,DB概要・環境構築 +05/26 13:30,パラメータ設定、SQL基礎 +05/27 10:00,SQL応用(結合・サブクエリ) +05/27 13:30,SQL応用(グルーピング・集約関数) +05/31 10:00,トランザクション、ロック +05/31 13:30,インデックス、ストアドプロシージャ、JDBC +06/01 10:00,SQLインジェクション対策 +06/01 13:30,DAO/DTO +06/02 10:00,DAO/DTOを用いたCRUD構築演習 \ No newline at end of file diff --git a/CUI_オブジェクト指向復習問題/Question1/file/JavaCurriculum.csv b/CUI_オブジェクト指向復習問題/Question1/file/JavaCurriculum.csv new file mode 100644 index 0000000..ebb1ad5 --- /dev/null +++ b/CUI_オブジェクト指向復習問題/Question1/file/JavaCurriculum.csv @@ -0,0 +1,23 @@ +04/21 10:00,Javaを始めよう +04/21 13:30,プログラムの書き方 +04/22 10:00,アルゴリズム +04/22 13:30,式と演算子 +04/25 10:00,制御構文(if文、while文) +04/26 13:30,制御構文(switch、do~while、for文) +05/02 10:00,配列 +05/02 13:30,メソッド +05/06 10:00,複数クラスを用いた開発 +05/11 10:00,Java基本文法総合演習 +05/12 10:00,オブジェクト指向概要 +05/12 13:30,インスタンスとクラス +05/13 10:00,様々なクラス機構 +05/13 13:30,カプセル化 +05/19 10:00,継承 +05/19 13:30,抽象クラス、インタフェース +05/20 10:00,多態性 +05/20 13:30,Java標準ライブラリ +05/23 10:00,アノテーション +05/23 13:30,例外 +05/24 10:00,コレクション +05/24 13:30,Java総合テスト +05/25 10:00,オブジェクト指向プログラミング総合演習 \ No newline at end of file diff --git a/CUI_オブジェクト指向復習問題/Question1/src/com/rhizome/beans/course/Course.java b/CUI_オブジェクト指向復習問題/Question1/src/com/rhizome/beans/course/Course.java new file mode 100644 index 0000000..cb2d343 --- /dev/null +++ b/CUI_オブジェクト指向復習問題/Question1/src/com/rhizome/beans/course/Course.java @@ -0,0 +1,86 @@ +package com.rhizome.beans.course; + +import java.io.FileNotFoundException; +import java.util.List; + +import com.rhizome.beans.curriculum.Curriculum; + +/** + * TODO + * + * @author ITCollege + * @since 2022 + * ------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +public abstract class Course { + // コース名 + protected String courseName; + // カリキュラムリスト + protected List curriculumList; + + /** + * TODO + * + * @throws FileNotFoundException TODO + */ + protected Course() throws FileNotFoundException { + this.courseName = getCourseName(); + // TODO + createInductionCurriculums(); + } + + /** + * TODO + */ + public void printAllCurriculumName() { + for (int i = 0; i < this.curriculumList.size(); i++) { + Curriculum curriculum = curriculumList.get(i); + + // TODO + System.out.println(curriculum.getCurriculumName()); + + // TODO + curriculum.printAllUnitName(); + + System.out.println("■■■■■■■■■■■■■■■■■■■■■■■■■■"); + } + } + + /** + * TODO + * + * @return TODO + */ + public abstract String getCourseName(); + + /** + * TODO + * + * @param dateTime TODO + * @return TODO + */ + public String getUnitNameByDateTime(String dateTime) { + String unitName = null; + + // TODO + for (int i = 0; i < curriculumList.size(); i++) { + Curriculum curriculum = curriculumList.get(i); + // TODO + unitName = curriculum.getUnitName(dateTime); + + // TODO + if (unitName != null) { + break; + } + } + return unitName; + } + + /** + * TODO + * + * @throws FileNotFoundException TODO + */ + protected abstract void createInductionCurriculums() throws FileNotFoundException; +} diff --git a/CUI_オブジェクト指向復習問題/Question1/src/com/rhizome/beans/course/JavaCourse.java b/CUI_オブジェクト指向復習問題/Question1/src/com/rhizome/beans/course/JavaCourse.java new file mode 100644 index 0000000..370fdd3 --- /dev/null +++ b/CUI_オブジェクト指向復習問題/Question1/src/com/rhizome/beans/course/JavaCourse.java @@ -0,0 +1,52 @@ +package com.rhizome.beans.course; + +import java.io.FileNotFoundException; +import java.util.ArrayList; + +import com.rhizome.beans.curriculum.Curriculum; +import com.rhizome.beans.curriculum.DBCurriculum; +import com.rhizome.beans.curriculum.JavaCurriculum; + +/** + * TODO + * + * @author ITCollege + * @since 2022 + * ------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +public class JavaCourse extends Course { + // コース名 + private final static String COURCE_NAME = "Javaコース"; + + /** + * TODO + * + * @throws FileNotFoundException TODO + */ + public JavaCourse() throws FileNotFoundException { + super(); + } + + @Override + public String getCourseName() { + return COURCE_NAME; + } + + /** + * TODO + * + * @throws FileNotFoundException TODO + */ + protected void createInductionCurriculums() throws FileNotFoundException { + // TODO + JavaCurriculum javaCurriculum = new JavaCurriculum(); + // TODO + DBCurriculum dbCurriculum = new DBCurriculum(); + + // TODO + super.curriculumList = new ArrayList(); + super.curriculumList.add(javaCurriculum); + super.curriculumList.add(dbCurriculum); + } +} \ No newline at end of file diff --git a/CUI_オブジェクト指向復習問題/Question1/src/com/rhizome/beans/curriculum/Curriculum.java b/CUI_オブジェクト指向復習問題/Question1/src/com/rhizome/beans/curriculum/Curriculum.java new file mode 100644 index 0000000..1a9f957 --- /dev/null +++ b/CUI_オブジェクト指向復習問題/Question1/src/com/rhizome/beans/curriculum/Curriculum.java @@ -0,0 +1,109 @@ +package com.rhizome.beans.curriculum; + +import java.io.File; +import java.io.FileNotFoundException; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Scanner; + +/** + * TODO + * + * @author ITCollege + * @since 2022 + * ------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +public abstract class Curriculum { + // カリキュラムがあるフォルダのパス + private final static String CURRICULUM_FOLDER_PATH = "file/"; + + // カリキュラム対象ファイル + private File targetFile; + + // カリキュラムのマップ <実施日時(String), 単元名(String)>で保持 + private Map curriculumMap = new LinkedHashMap(); + + /** + * TODO + * + * @param fileName TODO + * @throws FileNotFoundException TODO + */ + protected Curriculum(String fileName) throws FileNotFoundException { + this.targetFile = new File(CURRICULUM_FOLDER_PATH + fileName + ".csv"); + + // TODO + createCurriculumMap(); + } + + /** + * TODO key:日付 value:単元名 + * + * @return TODO + * @throws FileNotFoundException TODO + */ + private void createCurriculumMap() throws FileNotFoundException { + Scanner scanner = null; + try { + // ファイルを読み込む + scanner = new Scanner(this.targetFile, "UTF-8"); + // ファイルの内容を1行1行読み込み、リストに加える + while (scanner.hasNext()) { + // 日付とカリキュラム名で分割 + String[] lineData = scanner.nextLine().split(","); + // マップに追加 + curriculumMap.put(lineData[0], lineData[1]); + } + } finally { + // もしScannerがnullではなかったらクローズする + if (scanner != null) { + scanner.close(); + } + } + } + + /** + * TODO + * + * @param dateTime TODO + * @return TODO + */ + public String getUnitName(String dateTime) { + return this.getCurriculumMap().get(dateTime); + } + + /** + * TODO + */ + public void printAllUnitName() { + for (String key : this.getCurriculumMap().keySet()) { + System.out.println(key + ":" + this.getCurriculumMap().get(key)); + } + } + + /** + * TODO + * + * @return TODO + */ + public Map getCurriculumMap() { + return this.curriculumMap; + } + + /** + * TODO + * + * @param curriculumMap TODO + */ + public void setCurriculumMap(Map curriculumMap) { + this.curriculumMap = curriculumMap; + } + + /** + * TODO + * + * @return TODO + */ + public abstract String getCurriculumName(); +} diff --git a/CUI_オブジェクト指向復習問題/Question1/src/com/rhizome/beans/curriculum/DBCurriculum.java b/CUI_オブジェクト指向復習問題/Question1/src/com/rhizome/beans/curriculum/DBCurriculum.java new file mode 100644 index 0000000..6f661b3 --- /dev/null +++ b/CUI_オブジェクト指向復習問題/Question1/src/com/rhizome/beans/curriculum/DBCurriculum.java @@ -0,0 +1,28 @@ +package com.rhizome.beans.curriculum; + +import java.io.FileNotFoundException; + +/** + * TODO + * + * @author ITCollege + * @since 2022 + * ------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +public class DBCurriculum extends Curriculum { + // DBカリキュラム名一覧のテキストファイル名 + private final static String DB_CURRICULUM_FILE_NAME = "DBCurriculum"; + + // カリキュラム名 + private final static String CURRICULUM_NAME = "DB"; + + public DBCurriculum() throws FileNotFoundException { + super(DB_CURRICULUM_FILE_NAME); + } + + @Override + public String getCurriculumName() { + return CURRICULUM_NAME; + } +} \ No newline at end of file diff --git a/CUI_オブジェクト指向復習問題/Question1/src/com/rhizome/beans/curriculum/JavaCurriculum.java b/CUI_オブジェクト指向復習問題/Question1/src/com/rhizome/beans/curriculum/JavaCurriculum.java new file mode 100644 index 0000000..492da4b --- /dev/null +++ b/CUI_オブジェクト指向復習問題/Question1/src/com/rhizome/beans/curriculum/JavaCurriculum.java @@ -0,0 +1,37 @@ +package com.rhizome.beans.curriculum; + +import java.io.FileNotFoundException; + +/** + * TODO + * + * @author ITCollege + * @since 2022 + * ------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +public class JavaCurriculum extends Curriculum { + // Javaカリキュラム名一覧のテキストファイル名 + private final static String JAVA_CURRICULUM_FILE_NAME = "JavaCurriculum"; + + // カリキュラム名 + private final static String CURRICULUM_NAME = "Java"; + + // 使用するテキスト名 + public final static String JAVA_TEXT = "スッキリわかるJava入門"; + + /** + * TODO + * + * @param fileName TODO + * @throws FileNotFoundException TODO + */ + public JavaCurriculum() throws FileNotFoundException { + super(JAVA_CURRICULUM_FILE_NAME); + } + + @Override + public String getCurriculumName() { + return CURRICULUM_NAME; + } +} \ No newline at end of file diff --git a/CUI_オブジェクト指向復習問題/Question1/src/com/rhizome/beans/student/JavaStudent.java b/CUI_オブジェクト指向復習問題/Question1/src/com/rhizome/beans/student/JavaStudent.java new file mode 100644 index 0000000..7d1d597 --- /dev/null +++ b/CUI_オブジェクト指向復習問題/Question1/src/com/rhizome/beans/student/JavaStudent.java @@ -0,0 +1,66 @@ +package com.rhizome.beans.student; + +import com.rhizome.beans.course.Course; + +/** + * TODO + * + * @author ITCollege + * @since 2022 + * ------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +public class JavaStudent extends Student { + + // 受講するコース(受講コースは共通のためstatic) + private static Course courses; + + private final static String INTRO_DEFAULT_MESSAGE = "初心者なので頑張ります!"; + + /** + * TODO + * + * @param name TODO + * @param age TODO + */ + public JavaStudent(String name, int age) { + super(name, age); + } + + /** + * TODO + * + * @param name TODO + * @param age TODO + * @param introMessage TODO + */ + public JavaStudent(String name, int age, String message) { + super(name, age, message); + } + + @Override + public void introduce() { + System.out.println("初めまして。" + this.name + "と申します。"); + + // TODO + if (introMessage != null) { + System.out.println(introMessage); + } else { + System.out.println(INTRO_DEFAULT_MESSAGE); + } + } + + /** + * TODO + */ + public static Course getCourses() { + return courses; + } + + /** + * TODO + */ + public static void setCourses(Course courses) { + JavaStudent.courses = courses; + } +} diff --git a/CUI_オブジェクト指向復習問題/Question1/src/com/rhizome/beans/student/Learn.java b/CUI_オブジェクト指向復習問題/Question1/src/com/rhizome/beans/student/Learn.java new file mode 100644 index 0000000..667908c --- /dev/null +++ b/CUI_オブジェクト指向復習問題/Question1/src/com/rhizome/beans/student/Learn.java @@ -0,0 +1,40 @@ +package com.rhizome.beans.student; + +/** + * TODO + * + * @author ITCollege + * @since 2022 + * ------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ + +public interface Learn { + /** + * TODO + * + * @param unit TODO + */ + void question(String unit); + + /** + * TODO + * + * @param unit TODO + */ + void learn(String unit); + + /** + * TODO + * + * @param unit TODO + */ + void review(String unit); + + /** + * TODO + * + * @param unit TODO + */ + void prepare(String unit); +} \ No newline at end of file diff --git a/CUI_オブジェクト指向復習問題/Question1/src/com/rhizome/beans/student/Student.java b/CUI_オブジェクト指向復習問題/Question1/src/com/rhizome/beans/student/Student.java new file mode 100644 index 0000000..6ba2ccc --- /dev/null +++ b/CUI_オブジェクト指向復習問題/Question1/src/com/rhizome/beans/student/Student.java @@ -0,0 +1,68 @@ +package com.rhizome.beans.student; + +/** + * TODO + * + * @author ITCollege + * @since 2022 + * ------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +public abstract class Student implements Learn { + // 名前 + protected String name; + + // 年齢 + protected int age; + + // 自己紹介メッセージ + protected String introMessage; + + /** + * TODO + * + * @param name TODO + * @param age TODO + */ + protected Student(String name, int age) { + this.name = name; + this.age = age; + } + + /** + * TODO + * + * @param name TODO + * @param age TODO + * @param introMessage TODO + */ + public Student(String name, int age, String message) { + this(name, age); + this.introMessage = message; + } + + /** + * TODO + */ + public abstract void introduce(); + + @Override + public void question(String unit) { + System.out.println(unit + "の質問をします。"); + } + + @Override + public void learn(String unit) { + System.out.println(unit + "の学習をします。"); + } + + @Override + public void review(String unit) { + System.out.println(unit + "の復習をします。"); + } + + @Override + public void prepare(String unit) { + System.out.println(unit + "の予習をします。"); + } +} \ No newline at end of file diff --git a/CUI_オブジェクト指向復習問題/Question1/src/com/rhizome/main/Induction.java b/CUI_オブジェクト指向復習問題/Question1/src/com/rhizome/main/Induction.java new file mode 100644 index 0000000..ed8bc0e --- /dev/null +++ b/CUI_オブジェクト指向復習問題/Question1/src/com/rhizome/main/Induction.java @@ -0,0 +1,107 @@ +package com.rhizome.main; + +import java.io.FileNotFoundException; +import java.util.ArrayList; +import java.util.List; + +import com.rhizome.beans.course.Course; +import com.rhizome.beans.course.JavaCourse; +import com.rhizome.beans.student.JavaStudent; +import com.rhizome.beans.student.Student; + +/** + * 新入社員研修実行クラス + * コースや受講生を作成し、研修を実施するクラス + * + * @author ITCollege + * @since 2022 + * ------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +public class Induction { + + public static void main(String[] args) { + + // TODO + Course javaCourse = null; + try { + javaCourse = createCourse(); + } catch (FileNotFoundException e) { + System.out.println("コース作成時にエラーが発生しました。システムを終了します"); + // TODO + e.printStackTrace(); + System.exit(0); + } + JavaStudent.setCourses(javaCourse); + + // TODO + List studentList = createStudentList(); + // TODO + introduceTime(studentList); + + // TODO + inductionStart(); + } + + /** + * コース作成メソッド + * @return 作成したコース + * @throws FileNotFoundException カリキュラム作成時のエラー + */ + private static Course createCourse() throws FileNotFoundException{ + // TODO + JavaCourse javaCourse = new JavaCourse(); + return javaCourse; + } + + /** + * 受講生作成メソッド + * @return 作成した受講生リスト + */ + private static List createStudentList() { + List studentList = new ArrayList(); + // TODO + Student studentTanaka = new JavaStudent("田中", 22); + Student studentYamada = new JavaStudent("山田", 22, "少しだけ経験ありますが、忘れているので頑張ります!"); + + // TODO + studentList.add(studentTanaka); + studentList.add(studentYamada); + + return studentList; + } + + /** + * 自己紹介タイム + * 受講生分 introduceメソッドを実行する + * @param studentList 受講生リスト + */ + private static void introduceTime(List studentList) { + System.out.println("研修初日なので自己紹介をしていただきます。"); + System.out.println(); + + // TODO + for (int i = 0; i < studentList.size(); i++) { + System.out.println((i + 1) + "人目"); + + // TODO + studentList.get(i).introduce(); + System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); + } + } + + /** + * 研修開始メソッド + */ + private static void inductionStart() { + System.out.println("今回の研修では以下のJavaとDBを学びます"); + // TODO + JavaStudent.getCourses().printAllCurriculumName(); + System.out.println(); + + // TODO + String today = "06/01 10:00"; // 本当は現在日時から作成するべきだが今回は固定とする + String unitName = JavaStudent.getCourses().getUnitNameByDateTime(today); + System.out.println("今日学習する単元は" + unitName + "です。"); + } +} diff --git a/CUI_オブジェクト指向復習問題/Question2-1/README.md b/CUI_オブジェクト指向復習問題/Question2-1/README.md new file mode 100644 index 0000000..c03c8d4 --- /dev/null +++ b/CUI_オブジェクト指向復習問題/Question2-1/README.md @@ -0,0 +1,3 @@ +# オブジェクト指向総合復習問題 Question2-1 + +TODOコメントを埋めて、カリキュラム関連クラスを作ろう! \ No newline at end of file diff --git a/CUI_オブジェクト指向復習問題/Question2-1/file/DBCurriculum.csv b/CUI_オブジェクト指向復習問題/Question2-1/file/DBCurriculum.csv new file mode 100644 index 0000000..3b7906d --- /dev/null +++ b/CUI_オブジェクト指向復習問題/Question2-1/file/DBCurriculum.csv @@ -0,0 +1,9 @@ +05/26 10:00,DB概要・環境構築 +05/26 13:30,パラメータ設定、SQL基礎 +05/27 10:00,SQL応用(結合・サブクエリ) +05/27 13:30,SQL応用(グルーピング・集約関数) +05/31 10:00,トランザクション、ロック +05/31 13:30,インデックス、ストアドプロシージャ、JDBC +06/01 10:00,SQLインジェクション対策 +06/01 13:30,DAO/DTO +06/02 10:00,DAO/DTOを用いたCRUD構築演習 \ No newline at end of file diff --git a/CUI_オブジェクト指向復習問題/Question2-1/file/JavaCurriculum.csv b/CUI_オブジェクト指向復習問題/Question2-1/file/JavaCurriculum.csv new file mode 100644 index 0000000..ebb1ad5 --- /dev/null +++ b/CUI_オブジェクト指向復習問題/Question2-1/file/JavaCurriculum.csv @@ -0,0 +1,23 @@ +04/21 10:00,Javaを始めよう +04/21 13:30,プログラムの書き方 +04/22 10:00,アルゴリズム +04/22 13:30,式と演算子 +04/25 10:00,制御構文(if文、while文) +04/26 13:30,制御構文(switch、do~while、for文) +05/02 10:00,配列 +05/02 13:30,メソッド +05/06 10:00,複数クラスを用いた開発 +05/11 10:00,Java基本文法総合演習 +05/12 10:00,オブジェクト指向概要 +05/12 13:30,インスタンスとクラス +05/13 10:00,様々なクラス機構 +05/13 13:30,カプセル化 +05/19 10:00,継承 +05/19 13:30,抽象クラス、インタフェース +05/20 10:00,多態性 +05/20 13:30,Java標準ライブラリ +05/23 10:00,アノテーション +05/23 13:30,例外 +05/24 10:00,コレクション +05/24 13:30,Java総合テスト +05/25 10:00,オブジェクト指向プログラミング総合演習 \ No newline at end of file diff --git a/CUI_オブジェクト指向復習問題/Question2-1/src/com/rhizome/beans/curriculum/Curriculum.java b/CUI_オブジェクト指向復習問題/Question2-1/src/com/rhizome/beans/curriculum/Curriculum.java new file mode 100644 index 0000000..90f88e4 --- /dev/null +++ b/CUI_オブジェクト指向復習問題/Question2-1/src/com/rhizome/beans/curriculum/Curriculum.java @@ -0,0 +1,99 @@ +package com.rhizome.beans.curriculum; + +import java.io.File; +import java.io.FileNotFoundException; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Scanner; + +/** + * カリキュラムクラス + * 各カリキュラムの元となる抽象クラス + * + * @author ITCollege + * @since 2022 + * ------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +public abstract class Curriculum { + // カリキュラムがあるフォルダのパス + private final static String CURRICULUM_FOLDER_PATH = "file/"; + + // カリキュラム対象ファイル + private File targetFile; + + // カリキュラムのマップ <実施日時(String), 単元名(String)>で保持 + private Map curriculumMap = new LinkedHashMap(); + + /** + * Curriculumクラスのコンストラクタ + * カリキュラムファイルインスタンスを作成する + * カリキュラム一覧を読み込みMapにする + * + * @param fileName + * @throws FileNotFoundException + */ + protected Curriculum(String fileName) throws FileNotFoundException { + this.targetFile = new File(CURRICULUM_FOLDER_PATH + fileName + ".csv"); + + // TODO カリキュラム一覧を読み込み、マップにするメソッドを呼ぶ + } + + /** + * カリキュラムファイルから単元名一覧を読み込みマップを作成する + * key:日付 value:単元名 + * @return 作成したマップ + * @throws FileNotFoundException ファイルがなかった場合エラーとする + */ + private void createCurriculumMap() throws FileNotFoundException { + Scanner scanner = null; + try{ + // ファイルを読み込む + scanner = new Scanner(this.targetFile, "UTF-8"); + // ファイルの内容を1行1行読み込み、リストに加える + while (scanner.hasNext()) { + // 日付とカリキュラム名で分割 + String[] lineData = scanner.nextLine().split(","); + // マップに追加 + curriculumMap.put(lineData[0], lineData[1]); + } + } finally { + // もしScannerがnullではなかったらクローズする + if (scanner != null) { + scanner.close(); + } + } + } + + /** + * TODO + * getUnitName()メソッド + * 日時を指定して、カリキュラムの単元名を取得する + * @param dateTime 日時 + * @return 単元名 + */ + + /** + * カリキュラム情報Mapからすべての単元名を表示する + */ + public void printAllUnitName() { + for (String key : this.getCurriculumMap().keySet()) { + System.out.println(key + ":" + this.getCurriculumMap().get(key)); + } + } + + /** + * curriculumMapのGetter + * @return curriculumMapフィールド + */ + + /** + * curriculumMapのSetter + * @param curriculumMap セットするマップ + */ + + /** + * カリキュラム名のGetter 抽象メソッド + * @return カリキュラム名 + */ +} diff --git a/CUI_オブジェクト指向復習問題/Question2-1/src/com/rhizome/beans/curriculum/DBCurriculum.java b/CUI_オブジェクト指向復習問題/Question2-1/src/com/rhizome/beans/curriculum/DBCurriculum.java new file mode 100644 index 0000000..e2a3ce8 --- /dev/null +++ b/CUI_オブジェクト指向復習問題/Question2-1/src/com/rhizome/beans/curriculum/DBCurriculum.java @@ -0,0 +1,34 @@ +package com.rhizome.beans.curriculum; + +/** + * DBのカリキュラムクラス + * DBのカリキュラムやテキスト情報を保持したクラス + * TODO Curriculumクラスを継承する + * + * @author ITCollege + * @since 2022 + * ------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +public class DBCurriculum { + // DBカリキュラム名一覧のテキストファイル名 + private final static String DB_CURRICULUM_FILE_NAME = "DBCurriculum"; + + // カリキュラム名 + private final static String CURRICULUM_NAME = "DB"; + + /** + * TODO + * DBCurriculumクラスのコンストラクタ + * 親のコンストラクタに、カリキュラムのファイル名を引数で渡す + * + * @throws FileNotFoundException カリキュラム一覧ファイルが見つからなかった場合はエラー + */ + + /** + * TODO + * getCurriculumNameメソッドのオーバーライド + * + * @return カリキュラム名 + */ +} \ No newline at end of file diff --git a/CUI_オブジェクト指向復習問題/Question2-1/src/com/rhizome/beans/curriculum/JavaCurriculum.java b/CUI_オブジェクト指向復習問題/Question2-1/src/com/rhizome/beans/curriculum/JavaCurriculum.java new file mode 100644 index 0000000..3faae5a --- /dev/null +++ b/CUI_オブジェクト指向復習問題/Question2-1/src/com/rhizome/beans/curriculum/JavaCurriculum.java @@ -0,0 +1,37 @@ +package com.rhizome.beans.curriculum; + +/** + * Javaのカリキュラムクラス + * Javaのカリキュラムやテキスト情報を保持したクラス + * TODO Curriculumクラスを継承する + * + * @author ITCollege + * @since 2022 + * ------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +public class JavaCurriculum { + // Javaカリキュラム名一覧のテキストファイル名 + private final static String JAVA_CURRICULUM_FILE_NAME = "JavaCurriculum"; + + // カリキュラム名 + private final static String CURRICULUM_NAME = "Java"; + + // 使用するテキスト名 + public final static String JAVA_TEXT = "スッキリわかるJava入門"; + + /** + * TODO + * JavaCurriculumクラスのコンストラクタ + * 親のコンストラクタに、カリキュラムのファイル名を引数で渡す + * + * @throws FileNotFoundException カリキュラム一覧ファイルが見つからなかった場合はエラー + */ + + /** + * TODO + * getCurriculumNameメソッドのオーバーライド + * + * @return カリキュラム名 + */ +} \ No newline at end of file diff --git a/CUI_オブジェクト指向復習問題/Question2-2/README.md b/CUI_オブジェクト指向復習問題/Question2-2/README.md new file mode 100644 index 0000000..8bc0744 --- /dev/null +++ b/CUI_オブジェクト指向復習問題/Question2-2/README.md @@ -0,0 +1,4 @@ +# オブジェクト指向総合復習問題 Question2-2 + +TODOコメントを埋めて、コース関連クラスを作ろう! +カリキュラム関連クラスは以前の問題からコピーして移行しましょう。 \ No newline at end of file diff --git a/CUI_オブジェクト指向復習問題/Question2-2/src/com/rhizome/beans/course/Course.java b/CUI_オブジェクト指向復習問題/Question2-2/src/com/rhizome/beans/course/Course.java new file mode 100644 index 0000000..75a9899 --- /dev/null +++ b/CUI_オブジェクト指向復習問題/Question2-2/src/com/rhizome/beans/course/Course.java @@ -0,0 +1,70 @@ +package com.rhizome.beans.course; + +import java.util.List; + +import com.rhizome.beans.curriculum.Curriculum; + +/** + * コースクラス + * 各コースの元となる抽象クラス + * + * @author ITCollege + * @since 2022 + * ------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +public abstract class Course { + // コース名 + protected String courseName; + // カリキュラムリスト + protected List curriculumList; + + /** + * TODO + * Courceクラスのコンストラクタ + * コース名フィールドを初期化する + * 新人研修のカリキュラムリストを作成する + * + * @throws FileNotFoundException ファイルがなかった場合エラーとする + */ + + /** + * TODO + * printAllCurriculumName()メソッド + * カリキュラムリストの中にあるすべてのカリキュラムのカリキュラム名と単元名を表示する + */ + + /** + * TODO + * getUnitNameByDateTime()メソッド + * 日付を元に単元名を取得するメソッド + * + * @param dateTime 文字列の日時 「MM/dd HH:mm」形式 + * @return 単元名 or 指定した日時で取得できなかった場合はnull + */ + public String getUnitNameByDateTime(String dateTime) { + String unitName = null; + + // 全カリキュラムから捜索 + // カリキュラムマップから日時で検索 + + // 見つかった場合はループを終える + } + + + /** + * TODO + * getCourseName()メソッド + * コース名を返却する抽象メソッド + * + * @return コース名 + */ + + /** + * TODO + * createInductionCurriculums()メソッド + * 新入社員研修カリキュラムを作成する抽象メソッド + * + * @throws FileNotFoundException カリキュラム一覧ファイルが見つからなかった場合はエラー + */ +} diff --git a/CUI_オブジェクト指向復習問題/Question2-2/src/com/rhizome/beans/course/JavaCourse.java b/CUI_オブジェクト指向復習問題/Question2-2/src/com/rhizome/beans/course/JavaCourse.java new file mode 100644 index 0000000..4e1d271 --- /dev/null +++ b/CUI_オブジェクト指向復習問題/Question2-2/src/com/rhizome/beans/course/JavaCourse.java @@ -0,0 +1,33 @@ +package com.rhizome.beans.course; + +/** + * Javaのコースクラス + * Javaコースとして、コース名やカリキュラム情報を保持するクラス + * TODO Courseクラスを継承する + * + * @author ITCollege + * @since 2022 + * ------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +public class JavaCourse { + // コース名 + private final static String COURCE_NAME = "Javaコース"; + + /** + * TODO + * getCourceNameメソッドのオーバーライド + * + * @return コース名 + */ + + /** + * TODO + * createInductionCurriculums()メソッド + * 新入社員研修 Javaコース作成 + * curriculumListフィールドに、カリキュラムを追加していく + * JavaコースはJavaのカリキュラムとDBのカリキュラムが含まれる + * + * @throws FileNotFoundException カリキュラム一覧ファイルが見つからなかった場合はエラー + */ +} \ No newline at end of file diff --git a/CUI_オブジェクト指向復習問題/Question2-3/README.md b/CUI_オブジェクト指向復習問題/Question2-3/README.md new file mode 100644 index 0000000..fc6fa2b --- /dev/null +++ b/CUI_オブジェクト指向復習問題/Question2-3/README.md @@ -0,0 +1,4 @@ +# オブジェクト指向総合復習問題 Question2-3 + +TODOコメントを埋めて、受講生関連クラスを作ろう! +カリキュラム関連クラス、コース関連クラスは以前の問題からコピーして移行しましょう。 \ No newline at end of file diff --git a/CUI_オブジェクト指向復習問題/Question2-3/src/com/rhizome/beans/student/JavaStudent.java b/CUI_オブジェクト指向復習問題/Question2-3/src/com/rhizome/beans/student/JavaStudent.java new file mode 100644 index 0000000..702a588 --- /dev/null +++ b/CUI_オブジェクト指向復習問題/Question2-3/src/com/rhizome/beans/student/JavaStudent.java @@ -0,0 +1,63 @@ +package com.rhizome.beans.student; + +import com.rhizome.beans.course.Course; + +/** + * Javaの受講生クラス + * Java受講生として、コース情報や研修で行う動作を保持するクラス + * TODO Studentクラスを継承する + * + * @author ITCollege + * @since 2022 + * ------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +public class JavaStudent{ + + // 受講するコース(受講コースは共通のためstatic) + private static Course courses; + + // デフォルト自己紹介 + private final static String INTRO_DEFAULT_MESSAGE = "初心者なので頑張ります!"; + + /** + * TODO + * JavaStudentクラスのコンストラクタ + * nameフィールドとageフィールドを初期化 + * + * @param name 名前 + * @param age 年齢 + */ + + /** + * JavaStudentクラスのコンストラクタ + * nameフィールド、ageフィールド、introMessageフィールドを初期化 + * + * @param name 名前 + * @param age 年齢 + * @param introMessage 自己紹介メッセージ + */ + + /** + * TODO + * introduceメソッドのオーバーライド + */ + @Override + public void introduce() { + System.out.println("初めまして。" + this.name + "と申します。"); + + /* + * TODO + * もしメッセージが代入されていれば代入されたメッセージを表示する + * メッセージが代入されていなければデフォルトの自己紹介メッセージを表示する + */ + } + + public static Course getCourses() { + return courses; + } + + public static void setCourses(Course courses) { + JavaStudent.courses = courses; + } +} diff --git a/CUI_オブジェクト指向復習問題/Question2-3/src/com/rhizome/beans/student/Learn.java b/CUI_オブジェクト指向復習問題/Question2-3/src/com/rhizome/beans/student/Learn.java new file mode 100644 index 0000000..ed7e405 --- /dev/null +++ b/CUI_オブジェクト指向復習問題/Question2-3/src/com/rhizome/beans/student/Learn.java @@ -0,0 +1,45 @@ +package com.rhizome.beans.student; + +/** + * 学習インタフェース + * 学習する際に必要となる機能 + * + * @author ITCollege + * @since 2022 + * ------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ + +public interface Learn { + /** + * TODO + * question()メソッド + * 質問メソッド + * + * @param unit 単元名 + */ + + /** + * TODO + * learn()メソッド + * 学習メソッド + * + * @param unit 単元名 + */ + + /** + * TODO + * review()メソッド + * 復習メソッド + * + * @param unit 単元名 + */ + + /** + * TODO + * prepare()メソッド + * 予習メソッド + * + * @param unit 単元名 + */ +} \ No newline at end of file diff --git a/CUI_オブジェクト指向復習問題/Question2-3/src/com/rhizome/beans/student/Student.java b/CUI_オブジェクト指向復習問題/Question2-3/src/com/rhizome/beans/student/Student.java new file mode 100644 index 0000000..619b2da --- /dev/null +++ b/CUI_オブジェクト指向復習問題/Question2-3/src/com/rhizome/beans/student/Student.java @@ -0,0 +1,66 @@ +package com.rhizome.beans.student; + +/** + * 受講生クラス + * 各コースの受講生の元となる抽象クラス + * TODO Learnインターフェースを実装する + * + * @author ITCollege + * @since 2022 + * ------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +public abstract class Student { + // 名前 + protected String name; + + // 年齢 + protected int age; + + // 自己紹介メッセージ + protected String introMessage; + + /** + * TODO + * Studentクラスのコンストラクタ + * nameとageフィールド初期化用 + * + * @param name 名前 + * @param age 年齢 + */ + + /** + * Studentクラスのコンストラクタ + * nameフィールド、ageフィールド、introMessageフィールドを初期化 + * + * @param name 名前 + * @param age 年齢 + * @param introMessage 自己紹介メッセージ + */ + + /** + * TODO + * introduce()メソッド 抽象メソッド + * 自己紹介メソッド + */ + + /** + * TODO + * questionメソッドのオーバーライド + */ + + /** + * TODO + * learnメソッドのオーバーライド + */ + + /** + * TODO + * reviewメソッドのオーバーライド + */ + + /** + * TODO + * prepareメソッドのオーバーライド + */ +} \ No newline at end of file diff --git a/CUI_オブジェクト指向復習問題/Question2-4/README.md b/CUI_オブジェクト指向復習問題/Question2-4/README.md new file mode 100644 index 0000000..4f44e52 --- /dev/null +++ b/CUI_オブジェクト指向復習問題/Question2-4/README.md @@ -0,0 +1,4 @@ +# オブジェクト指向総合復習問題 Question2-3 + +TODOコメントを埋めて、研修実施クラスを作ろう! +カリキュラム関連クラス、コース関連クラス、受講生関連クラスは以前の問題からコピーして移行しましょう。 \ No newline at end of file diff --git a/CUI_オブジェクト指向復習問題/Question2-4/src/com/rhizome/main/Induction.java b/CUI_オブジェクト指向復習問題/Question2-4/src/com/rhizome/main/Induction.java new file mode 100644 index 0000000..f979f74 --- /dev/null +++ b/CUI_オブジェクト指向復習問題/Question2-4/src/com/rhizome/main/Induction.java @@ -0,0 +1,63 @@ +package com.rhizome.main; + +/** + * 新入社員研修実行クラス + * コースや受講生を作成し、研修を実施するクラス + * + * @author ITCollege + * @since 2022 + * ------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +public class Induction { + + public static void main(String[] args) { + + // TODO createCourseメソッドを使用して、コース作成 + + // TODO Java受講生のコースセット + + // TODO createStudentListメソッドを使用して、受講生作成 + + // TODO introduceTimeメソッドを使用して、自己紹介タイム + + // TODO inductionStartメソッドを使用して、研修スタート + } + + /** + * TODO + * createCourse()メソッド + * Javaコース作成メソッド + * + * @return 作成したコース + * @throws FileNotFoundException カリキュラム作成時のエラー + */ + + /** + * TODO + * createStudentList()メソッド + * 受講生作成メソッド + * 受講生は2人以上作ってリストに追加してください + * + * @return 作成した受講生リスト + */ + + /** + * TODO + * introduceTime()メソッド + * 自己紹介タイム + * 受講生分introduceメソッドを実行する + * + * @param studentList 受講生リスト + */ + + /** + * TODO + * 研修開始メソッド + * JavaとDBの単元をすべて表示して、 + * 本日の単元を表示する + * 「本日」はカリキュラムファイルの日時を見て、単元名を取得できる日時なら何でもよいです + * + * inductionStart()メソッド + */ +} diff --git a/CUI_オブジェクト指向復習問題/README.md b/CUI_オブジェクト指向復習問題/README.md new file mode 100644 index 0000000..2448b4b --- /dev/null +++ b/CUI_オブジェクト指向復習問題/README.md @@ -0,0 +1,31 @@ +# オブジェクト指向総合復習問題 +本問題はオブジェクト指向を総合的に学べる問題となっています。 + +# システム概要 +研修システム + +# 機能一覧 +- カリキュラム作成機能 +- コース作成機能 +- 受講生作成機能 +- 研修実施機能 + +# 仕様説明 +本システムでは、Javaコースを開講することができ、 +コースを作成することで自動的にカリキュラムが設定されるようになっています。 +Javaコースでは、「Java」と「DB」のカリキュラムがそれぞれ設定され、 +カリキュラム内容としては、fileフォルダに入っているCSVファイルにてそれぞれ確認・修正できるようになっています。 +また、Javaコースを受講する受講生も作成し、研修を実施することができます。 + +# 問題概要 +本問題では、上記の仕様を満たすシステムを段階的にプログラムしていき、 +最終的に研修システムとして実行できるようにしていきます。 +オブジェクト指向全範囲を使用していますので、テキストやネットを駆使しながら解いていきましょう。 + +# 段階 +1. 完成したプログラムにコメントを追加してみよう +2. TODOに沿ってプログラムしてみよう + 1. カリキュラム関連のクラスを作成 + 2. コース関連のクラスを作成 + 3. 受講生関連のクラス作成 + 4. メインとなる研修クラスを作成 \ No newline at end of file diff --git a/CUI_カレンダー表示/src/Calendar.java b/CUI_カレンダー表示/src/Calendar.java new file mode 100644 index 0000000..317601b --- /dev/null +++ b/CUI_カレンダー表示/src/Calendar.java @@ -0,0 +1,15 @@ +/* + * Calendar.java + * 作成 IT-College 2017 + *------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ + +public class Calendar { + + /** + * @param args + */ + public static void main(String[] args) { + } +} diff --git a/CUI_カレンダー表示/実行例/このファイルを実行してください.bat b/CUI_カレンダー表示/実行例/このファイルを実行してください.bat new file mode 100644 index 0000000..a00d743 --- /dev/null +++ b/CUI_カレンダー表示/実行例/このファイルを実行してください.bat @@ -0,0 +1,2 @@ +java -jar Calendar.jar +pause diff --git a/CUI_タイピングゲーム/file/Sentence.txt b/CUI_タイピングゲーム/file/Sentence.txt new file mode 100644 index 0000000..79dea9d --- /dev/null +++ b/CUI_タイピングゲーム/file/Sentence.txt @@ -0,0 +1,23 @@ +“ú–{�‘–¯‚́A�‘‰Ƃ̖¼—_‚ɂ©‚¯�A‘S—͂ð‚ ‚°‚ñ‚̐’�‚‚ȗ�‘z‚ƖړI‚ð’B�¬‚·‚邱‚Ƃ𐾂¤�B +‘S‚Ă̐l‚͐¶‚܂ê‚Ȃª‚ç‚ɂµ‚療µ‚­Ž©—R‚œƗ§‚µ‚è‚è�Aˆê’è‚̐¶—ˆ‚̌ —˜‚ð—L‚µ‚Ă¢‚é�B +“V‚͐l‚̏ã‚ɐl‚𑢂炸�l‚̉º‚ɐl‚𑢂炸‚Ƃ¢‚¦‚è +�‘‹«‚̒·‚¢ƒgƒ“ƒlƒ‹‚𔲂¯‚é‚Ɛፑ‚ł ‚Á‚½ +޶‚Á‚Ă­‚ê‚é�l‚ðŽ�‚‚±‚Ƃ͑傫‚ȍK•Ÿ‚ł ‚é +�¼‚̗t‚̗t–ˆ‚Ɍ‹‚Ԕ’˜I‚̒u‚«‚Ă͂±‚ڂꂱ‚ڂê‚Ă͒u‚­ +�æ‚ɍs‚­�@‚ ‚ƂɎc‚é‚à“¯‚¶‚±‚Ɓ@˜A‚ê‚čs‚¯‚ʂð‚킩‚ꂼ‚Ǝv‚¤ +�g‚͂½‚Ƃ¦�@•�‘ ‚̖ì•ӂɁ@‚­‚¿‚ʂƂà�@—¯‚ߒu‚©‚܂µ�@‘å˜a�° +‚½‚ƂАg‚́@‰ڈ΂̓‡�ª‚Ɂ@‹€‚¿‚é‚Ƃà�@�°‚͓Œ‚́@ŒN‚â‚܂à‚ç‚ñ +’ú‚߂Ȃ¯‚ê‚ΕK‚¸‚¢‚‚©‚͂ł«‚é�B“w—͕͂K‚¸•ñ‚í‚ê‚é +‚ ‚Ȃ½‚ª‹󂵂­�¶‚«‚½�¡“ú‚́A�ð“úŽ€‚ñ‚ł¢‚Á‚½Ž҂ª‚ ‚ê‚قǐ¶‚«‚½‚¢‚Ɗè‚Á‚½–¾“ú +ƒvƒ�ƒOƒ‰ƒ€‚͑¼�l‚ª—�‰ð‚³‚¹‚Ă­‚ê‚é‚à‚̂ł͂Ȃ­�AŽ©•ª‚ŗ�‰ð‚·‚é‚à‚̂¾ +�d—v‚Ȃ̂͑½—l‰»‚³‚ꂽ‰¿’lŠςð”F‚߂邱‚ƂƁA‚»‚ê‚ɍ‡‚킹‚ç‚ê‚é�_“ +‚¿‚å‚Á‚Ƃâ‚Á‚ė�‰ð‚ł«‚Ȃ©‚Á‚½‚炽‚­‚³‚ñ‚â‚é +•·‚­‚͈ꎞ‚̒p�A•·‚©‚ʂ͈ꐶ‚̒p +‹}‚¢‚Ă͎–‚ðŽd‘¹‚¸‚é +Ž©•ª‚ª‚µ‚½‚¢‚±‚Ƃð‚·‚é‚̂ł͂Ȃ­�AŽ©•ª‚ª‚·‚ׂ«‚±‚Ƃð�D‚«‚ɂȂ邱‚Æ +Œ™‚Ȃ±‚Ƃ©‚瓦‚°‚Ăà�A•K‚¸‚¢‚‚©‚͂»‚ê‚ð�æ‚è‰z‚¦‚Ȃ«‚á‚Ȃç‚Ȃ¢ +‚â‚Á‚Čã‰÷‚·‚é‚̂ƁA‚â‚炸‚Ɍã‰÷‚·‚é‚̂́AˆӖ¡‚ª‚¿‚ª‚¤ +‚ǂ¤‚¹‚¢‚‚©‚â‚é‚Ȃç‚΁A�¡‚â‚Á‚è‚¢‚đ¹‚͂Ȃ¢ +‰ߋŽ‚ð’ljù‚·‚é�lŠԂɂȂÁ‚Ă͂Ȃç‚Ȃ¢�B‚»‚ׂ̈ɂ͕׋­‚·‚鎖‚¾ +Š撣‚Á‚Ă¢‚é‚Á‚Ă¢‚¤‚͎̂ü‚肪”F‚߂鎖‚ŁAŽ©•ª‚ª‚µ‚ñ‚ǂ¢‚©‚çŠ撣‚Á‚Ă¢‚é‚̂ł͂Ȃ¢ +‘厖‚Ȃ̂͂ǂ̓¹‚ð‘I‚Ԃ©‚ł͂Ȃ­�A‘I‚񂾓¹‚łǂ¤�¶‚«‚邩 diff --git a/CUI_タイピングゲーム/src/Typing.java b/CUI_タイピングゲーム/src/Typing.java new file mode 100644 index 0000000..5b0ff3c --- /dev/null +++ b/CUI_タイピングゲーム/src/Typing.java @@ -0,0 +1,12 @@ +/* + * Typing.java + * 作成 IT-College 2017 + *------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ + +public class Typing { + public static void main(String[] args) { + + } +} \ No newline at end of file diff --git a/CUI_タイピングゲーム/src/UtilClass.java b/CUI_タイピングゲーム/src/UtilClass.java new file mode 100644 index 0000000..dcf4c4d --- /dev/null +++ b/CUI_タイピングゲーム/src/UtilClass.java @@ -0,0 +1,54 @@ +/* + * UtilClass.java + * 作成 IT-College 2017 + *------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ + +import java.io.File; +import java.io.FileNotFoundException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Scanner; + +public class UtilClass { + private static ArrayList getFileList() { + ArrayList list = new ArrayList(); + + String strFileName = "file/Sentence.txt"; + + try (Scanner scanner = new Scanner(new File(strFileName))) { + + while(scanner.hasNext()) { + String line = scanner.nextLine(); + list.add(line); + } + + + } catch (FileNotFoundException e) { + // TODO 自動生成された catch ブロック + System.out.println("ファイルが読み込めませんでした"); + list = null; + } + + + return list; + } + + public static String getRandomSentence() { + ArrayList list = getFileList(); + String retStr = ""; + + if (list == null || list.size() <= 0) { + return "ファイル内容が不正です"; + } + + Collections.shuffle(list); + + return list.get(0); + } + + public static boolean chkStringEquals(String baseStr, String targetStr) { + return baseStr.trim().equals(targetStr.trim()); + } +} diff --git a/CUI_タイピングゲーム/実行例/このファイルを実行してください.bat b/CUI_タイピングゲーム/実行例/このファイルを実行してください.bat new file mode 100644 index 0000000..96cb6a6 --- /dev/null +++ b/CUI_タイピングゲーム/実行例/このファイルを実行してください.bat @@ -0,0 +1,2 @@ +java -jar Typing.jar +pause diff --git a/CUI_ヒストグラム表示/src/Histogram.java b/CUI_ヒストグラム表示/src/Histogram.java new file mode 100644 index 0000000..b7e175c --- /dev/null +++ b/CUI_ヒストグラム表示/src/Histogram.java @@ -0,0 +1,15 @@ +/* + * Histogram.java + * 作成 IT-College 2017 + *------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ + +public class Histogram { + + /** + * @param args + */ + public static void main(String[] args) { + } +} diff --git a/CUI_ヒストグラム表示/実行例/パターン1_このファイルを実行してください.bat b/CUI_ヒストグラム表示/実行例/パターン1_このファイルを実行してください.bat new file mode 100644 index 0000000..cee0d62 --- /dev/null +++ b/CUI_ヒストグラム表示/実行例/パターン1_このファイルを実行してください.bat @@ -0,0 +1,2 @@ +java -jar Histgram.jar 1 2 3 +pause diff --git a/CUI_ヒストグラム表示/実行例/パターン2_このファイルを実行してください.bat b/CUI_ヒストグラム表示/実行例/パターン2_このファイルを実行してください.bat new file mode 100644 index 0000000..9668145 --- /dev/null +++ b/CUI_ヒストグラム表示/実行例/パターン2_このファイルを実行してください.bat @@ -0,0 +1,2 @@ +java -jar Histgram.jar 1 2 3 4 5 6 7 8 9 +pause diff --git a/CUI_ヒストグラム表示/実行例/パターン3_このファイルを実行してください.bat b/CUI_ヒストグラム表示/実行例/パターン3_このファイルを実行してください.bat new file mode 100644 index 0000000..9fa8572 --- /dev/null +++ b/CUI_ヒストグラム表示/実行例/パターン3_このファイルを実行してください.bat @@ -0,0 +1,2 @@ +java -jar Histgram.jar +pause diff --git a/CUI_ラムダ&StreamAPI/src/common/japan/Prefecture.java b/CUI_ラムダ&StreamAPI/src/common/japan/Prefecture.java new file mode 100644 index 0000000..904c412 --- /dev/null +++ b/CUI_ラムダ&StreamAPI/src/common/japan/Prefecture.java @@ -0,0 +1,75 @@ +package common.japan; + +/** + * 都道府県 + * + * @author IT College + */ +public enum Prefecture { + HOKKAIDO("北海道", "札幌", 5381733, 83424.22), + AOMORI("青森県", "青森", 1308265, 9645.40), + IWATE("岩手県", "盛岡", 1279594, 15275.01), + MIYAGI("宮城県", "仙台", 2333899, 7282.14), + AKITA("秋田県", "秋田", 1023119, 11637.54), + YAMAGATA("山形県", "山形", 1123891, 9323.15), + FUKUSHIMA("福島県", "福島", 1914039, 13783.75), + IBARAKI("茨城県", "水戸", 2916976, 6096.93), + TOCHIGI("栃木県", "宇都宮", 1974255, 6408.09), + GUMMA("群馬県", "前橋", 1973115, 6362.28), + SAITAMA("埼玉県", "さいたま", 7266534, 3797.75), + CHIBA("千葉県", "千葉", 6222666, 5157.64), + TOKYO("東京都", "新宿", 13515271, 2190.90), + KANAGAWA("神奈川県", "横浜", 9126214, 2415.81), + NIIGATA("新潟県", "新潟", 2304264, 12584.10), + TOYAMA("富山県", "富山", 1066328, 4247.61), + ISHIKAWA("石川県", "金沢", 1154008, 4186.15), + FUKUI("福井県", "福井", 786740, 4190.43), + YAMANASHI("山梨県", "甲府", 834930, 4464.99), + NAGANO("長野県", "長野", 2098804, 13561.56), + GIFU("岐阜県", "岐阜", 2031903, 10621.29), + SHIZUOKA("静岡県", "静岡", 3700305, 7778.70), + AICHI("愛知県", "名古屋", 7483128, 5172.40), + MIE("三重県", "津", 1815865, 5774.39), + SHIGA("滋賀県", "大津", 1412916, 4017.38), + KYOTO("京都府", "京都", 2610353, 4612.20), + OSAKA("大阪府", "大阪", 8839469, 1904.99), + HYOGO("兵庫県", "神戸", 5534800, 8400.90), + NARA("奈良県", "奈良", 1364316, 3690.94), + WAKAYAMA("和歌山県", "和歌山", 963579, 4724.68), + TOTTORI("鳥取県", "鳥取", 573441, 3507.05), + SHIMANE("島根県", "松江", 694352, 6708.23), + OKAYAMA("岡山県", "岡山", 1921525, 7114.62), + HIROSHIMA("広島県", "広島", 2843990, 8479.38), + YAMAGUCHI("山口県", "山口", 1404729, 6112.30), + TOKUSHIMA("徳島県", "徳島", 755733, 4146.93), + KAGAWA("香川県", "高松", 976263, 1876.73), + EHIME("愛媛県", "松山", 1385262, 5676.10), + KOCHI("高知県", "高知", 728276, 7103.91), + FUKUOKA("福岡県", "福岡", 5101556, 4986.40), + SAGA("佐賀県", "佐賀", 832832, 2440.64), + NAGASAKI("長崎県", "長崎", 1377187, 4132.32), + KUMAMOTO("熊本県", "熊本", 1786170, 7409.32), + OITA("大分県", "大分", 1166338, 6340.61), + MIYAZAKI("宮崎県", "宮崎", 1104069, 7735.31), + KAGOSHIMA("鹿児島県", "鹿児島", 1648177, 9188.10), + OKINAWA("沖縄県", "那覇", 1433566, 2281.00); + + /** 都道府県名 */ + public final String name; + + /** 都道府県庁所在地 */ + public final String capitalCity; + + /** 人口(2015年10月1日 国勢調査人口) */ + public final int population; + + /** 面積(単位: km^2) */ + public final double area; + + private Prefecture(String name, String capitalCity, int population, double area) { + this.name = name; + this.capitalCity = capitalCity; + this.population = population; + this.area = area; + } +} diff --git a/CUI_ラムダ&StreamAPI/src/common/japan/Region.java b/CUI_ラムダ&StreamAPI/src/common/japan/Region.java new file mode 100644 index 0000000..e6d27cc --- /dev/null +++ b/CUI_ラムダ&StreamAPI/src/common/japan/Region.java @@ -0,0 +1,93 @@ +package common.japan; + +import java.util.Arrays; +import java.util.List; + +/** + * 地方 + * + * @author IT College + * + */ +public enum Region { + + HOKKAIDO("北海道", new Prefecture[] { + Prefecture.HOKKAIDO + }), + TOHOKU("東北", new Prefecture[] { + Prefecture.AOMORI, + Prefecture.IWATE, + Prefecture.MIYAGI, + Prefecture.AKITA, + Prefecture.YAMAGATA, + Prefecture.FUKUSHIMA + }), + KANTO("関東", new Prefecture[] { + Prefecture.IBARAKI, + Prefecture.TOCHIGI, + Prefecture.GUMMA, + Prefecture.SAITAMA, + Prefecture.CHIBA, + Prefecture.TOKYO, + Prefecture.KANAGAWA + }), + CHUBE("中部", new Prefecture[] { + Prefecture.NIIGATA, + Prefecture.TOYAMA, + Prefecture.ISHIKAWA, + Prefecture.FUKUI, + Prefecture.YAMANASHI, + Prefecture.NAGANO, + Prefecture.GIFU, + Prefecture.SHIZUOKA, + Prefecture.AICHI + }), + KINKI("近畿", new Prefecture[] { + Prefecture.MIE, + Prefecture.SHIGA, + Prefecture.KYOTO, + Prefecture.OSAKA, + Prefecture.HYOGO, + Prefecture.NARA, + Prefecture.WAKAYAMA + }), + CHUGOKU("中国", new Prefecture[] { + Prefecture.TOTTORI, + Prefecture.SHIMANE, + Prefecture.OKAYAMA, + Prefecture.HIROSHIMA, + Prefecture.YAMAGUCHI + }), + SHIKOKU("四国", new Prefecture[] { + Prefecture.TOKUSHIMA, + Prefecture.KAGAWA, + Prefecture.EHIME, + Prefecture.KOCHI + }), + KYUSHU("九州", new Prefecture[] { + Prefecture.FUKUOKA, + Prefecture.SAGA, + Prefecture.NAGASAKI, + Prefecture.KUMAMOTO, + Prefecture.OITA, + Prefecture.MIYAZAKI, + Prefecture.KAGOSHIMA + }), + OKINAWA("沖縄", new Prefecture[] { + Prefecture.OKINAWA + }); + + private Region(String name, Prefecture[] prefectures) { + this.name = name; + this.prefectures = prefectures; + } + + /** 地方名 */ + public final String name; + private final Prefecture[] prefectures; + + /** 地方に属する都道府県 */ + public List getPrefectureList() { + return Arrays.asList(Arrays.copyOf(prefectures, prefectures.length)); + } +} diff --git a/CUI_ラムダ&StreamAPI/src/common/japan/package-info.java b/CUI_ラムダ&StreamAPI/src/common/japan/package-info.java new file mode 100644 index 0000000..730efb4 --- /dev/null +++ b/CUI_ラムダ&StreamAPI/src/common/japan/package-info.java @@ -0,0 +1,7 @@ +/** + * 日本パッケージ
+ * @see データ元 + * @author IT College + * + */ +package common.japan; \ No newline at end of file diff --git a/CUI_ラムダ&StreamAPI/src/ptraEx/PTraEx_01.java b/CUI_ラムダ&StreamAPI/src/ptraEx/PTraEx_01.java new file mode 100644 index 0000000..14c4a21 --- /dev/null +++ b/CUI_ラムダ&StreamAPI/src/ptraEx/PTraEx_01.java @@ -0,0 +1,20 @@ +/* + * PTraEx_01.java + * 作成 IT-College 2017 + *------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +package ptraEx; + +import common.japan.Prefecture; + +public class PTraEx_01 { + public static void main(String[] args) { + /* + * 以下の処理をforEachを使って書き換えて下さい + */ + for (Prefecture prefecture : Prefecture.values()) { + System.out.println(prefecture.name); + } + } +} diff --git a/CUI_ラムダ&StreamAPI/src/ptraEx/PTraEx_02.java b/CUI_ラムダ&StreamAPI/src/ptraEx/PTraEx_02.java new file mode 100644 index 0000000..08f452e --- /dev/null +++ b/CUI_ラムダ&StreamAPI/src/ptraEx/PTraEx_02.java @@ -0,0 +1,28 @@ +/* + * PTraEx_02.java + * 作成 IT-College 2017 + *------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +package ptraEx; + +import java.util.ArrayList; +import java.util.List; + +import common.japan.Prefecture; + +public class PTraEx_02 { + public static void main(String[] args) { + /* + * 以下の処理をmapとforEachを使って書き換えて下さい + */ + List capitalCityList = new ArrayList<>(); + for (Prefecture prefecture : Prefecture.values()) { + capitalCityList.add(prefecture.capitalCity); + } + + for (String capitalCity : capitalCityList) { + System.out.println(capitalCity); + } + } +} diff --git a/CUI_ラムダ&StreamAPI/src/ptraEx/PTraEx_03.java b/CUI_ラムダ&StreamAPI/src/ptraEx/PTraEx_03.java new file mode 100644 index 0000000..af107b4 --- /dev/null +++ b/CUI_ラムダ&StreamAPI/src/ptraEx/PTraEx_03.java @@ -0,0 +1,22 @@ +/* + * PTraEx_03.java + * 作成 IT-College 2017 + *------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +package ptraEx; + +import common.japan.Prefecture; + +public class PTraEx_03 { + public static void main(String[] args) { + /* + * 以下の処理をmap、filter、forEachを使って書き換えて下さい + */ + for (Prefecture prefecture : Prefecture.values()) { + if (prefecture.name.endsWith("府")) { + System.out.println(prefecture.name); + } + } + } +} diff --git a/CUI_ラムダ&StreamAPI/src/ptraEx/PTraEx_04.java b/CUI_ラムダ&StreamAPI/src/ptraEx/PTraEx_04.java new file mode 100644 index 0000000..299e225 --- /dev/null +++ b/CUI_ラムダ&StreamAPI/src/ptraEx/PTraEx_04.java @@ -0,0 +1,23 @@ +/* + * PTraEx_04.java + * 作成 IT-College 2017 + *------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +package ptraEx; + +import common.japan.Prefecture; +import common.japan.Region; + +public class PTraEx_04 { + public static void main(String[] args) { + /* + * 以下の処理をmap、flatMap、forEachを使って書き換えて下さい + */ + for (Region region : Region.values()) { + for (Prefecture prefecture : region.getPrefectureList()) { + System.out.println(prefecture.name); + } + } + } +} diff --git a/CUI_ラムダ&StreamAPI/src/ptraEx/PTraEx_05.java b/CUI_ラムダ&StreamAPI/src/ptraEx/PTraEx_05.java new file mode 100644 index 0000000..21604a8 --- /dev/null +++ b/CUI_ラムダ&StreamAPI/src/ptraEx/PTraEx_05.java @@ -0,0 +1,19 @@ +/* + * PTraEx_05.java + * 作成 IT-College 2017 + *------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +package ptraEx; + +public class PTraEx_05 { + public static void main(String[] args) { + /* + * 以下の処理をif文・switch文・for文・while文を使わずに実装してください + * ・都道府県名と都道府県庁所在地名が異なる都道府県を抽出する + * ・抽出した都道府県を"都道府県名(都道府県庁所在地名)"の形でコンソールに出力する + * ・抽出した都道府県のうち、人口が100万人以上の都道府県を抽出する + * ・抽出した都道府県の人口の合計を算出してコンソールに出力する + */ + } +} diff --git a/CUI_ラムダ&StreamAPI/src/ptraEx/PTraEx_06.java b/CUI_ラムダ&StreamAPI/src/ptraEx/PTraEx_06.java new file mode 100644 index 0000000..083e90f --- /dev/null +++ b/CUI_ラムダ&StreamAPI/src/ptraEx/PTraEx_06.java @@ -0,0 +1,17 @@ +/* + * PTraEx_06.java + * 作成 IT-College 2017 + *------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +package ptraEx; + +public class PTraEx_06 { + public static void main(String[] args) { + /* + * 以下の処理をfor文・while文を使わずに実装してください + * ・100以下の素数をコンソール出力する + * ・100以下の素数の和をコンソール出力する + */ + } +} diff --git a/CUI_ラムダ&StreamAPI/src/ptraEx/PTraEx_07.java b/CUI_ラムダ&StreamAPI/src/ptraEx/PTraEx_07.java new file mode 100644 index 0000000..9ae3c96 --- /dev/null +++ b/CUI_ラムダ&StreamAPI/src/ptraEx/PTraEx_07.java @@ -0,0 +1,36 @@ +/* + * PTraEx_07.java + * 作成 IT-College 2017 + *------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +package ptraEx; + +import java.util.Arrays; +import java.util.List; + +public class PTraEx_07 { + public static void main(String[] args) { + /* + * isAllOddNumberメソッドを実装し、以下の処理でエラーが出ないようにしてください。 + */ + if (!isAllOddNumber(Arrays.asList(1, 3, 5, 7, 9))) { + throw new IllegalStateException(); + } + if (!isAllOddNumber(Arrays.asList(111, 1119, 47, 99))) { + throw new IllegalStateException(); + } + if (isAllOddNumber(Arrays.asList(2, 5, 7, 11, 13, 15, 18))) { + throw new IllegalStateException(); + } + } + + /** + * 与えられた整数リストの要素が全て奇数かどうか判定する + * @param numbers 判定対象の整数リスト + * @return リストの全要素が奇数であればtrue、それ以外はfalseを返す + */ + private static boolean isAllOddNumber(List numbers) { + throw new UnsupportedOperationException("この行を削除し、if文・switch文・for文・while文を使わずに実装してください"); + } +} diff --git a/CUI_ラムダ&StreamAPI/src/ptraEx/PTraEx_08.java b/CUI_ラムダ&StreamAPI/src/ptraEx/PTraEx_08.java new file mode 100644 index 0000000..b4deb5d --- /dev/null +++ b/CUI_ラムダ&StreamAPI/src/ptraEx/PTraEx_08.java @@ -0,0 +1,23 @@ +/* + * PTraEx_08.java + * 作成 IT-College 2017 + *------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +package ptraEx; + +public class PTraEx_08 { + public static void main(String[] args) { + /* + * 以下の処理をif文・switch文・for文・while文を使わずに実装してください + * ・本州に属する都府県のリストを生成し、変数に格納する + * ・上記のリストについて以下の値をコンソール出力する + * ・人口の最小値 + * ・人口の最大値 + * ・人口の平均値 + * ・人口密度の最小値 + * ・人口密度の最大値 + * ・人口密度の平均値 + */ + } +} diff --git a/CUI_社員メンテナンス/README.txt b/CUI_社員メンテナンス/README.txt new file mode 100644 index 0000000..36489fe --- /dev/null +++ b/CUI_社員メンテナンス/README.txt @@ -0,0 +1,24 @@ +○システム名 + DAO + +○システム説明 + employeeテーブルを管理するDAOプログラムを作成 + +○出題タイミング + 「Java-DB連携(MySQL).pptx」が終了後に出題 + +○配布物 + 実行例 + +○課題の進め方 + ・個人で実施させる場合(1日予定) + 基本的には講師・他の受講生に対する質問はなしにしてください。 + ※ただし、教室全体のレベルが低い場合は受講生同士での質問はOKにしてください。 + 時間は日次作業(スピーチ・小テスト等)が終わり次第残りの時間をすべて充てて作業させてください。 + ・グループで実施させる場合(1.5日予定) + グループでクラス設計をさせ、設計を元に各々作成する(コピペは厳禁) +○納品物 + 作成したプログラム + +○早く終わったら・・・・ + テストを実施させてください diff --git a/CUI_社員メンテナンス/sql/.gitignore b/CUI_社員メンテナンス/sql/.gitignore new file mode 100644 index 0000000..4c66567 --- /dev/null +++ b/CUI_社員メンテナンス/sql/.gitignore @@ -0,0 +1 @@ +/~$DAO作成用テーブル定義書.xlsx diff --git a/CUI_社員メンテナンス/sql/CreateTable-MySQL.sql b/CUI_社員メンテナンス/sql/CreateTable-MySQL.sql new file mode 100644 index 0000000..1e5aa53 --- /dev/null +++ b/CUI_社員メンテナンス/sql/CreateTable-MySQL.sql @@ -0,0 +1,39 @@ +-- employeeテーブルの作成 +DROP TABLE IF EXISTS employee; +CREATE TABLE employee ( + id_employee INT AUTO_INCREMENT PRIMARY KEY + , nm_employee VARCHAR(50) NOT NULL + , kn_employee VARCHAR(50) NOT NULL + , mail_address VARCHAR(100) NOT NULL + , password VARCHAR(10) NOT NULL + , id_department INT NOT NULL +) +AUTO_INCREMENT = 10000; + +-- 部署テーブルの作成 +DROP TABLE IF EXISTS department; +CREATE TABLE department ( + id_department INT AUTO_INCREMENT PRIMARY KEY + , nm_department VARCHAR(10) NOT NULL +) +AUTO_INCREMENT = 10; + +-- 社員テーブルのデータ +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('山田龍也','ヤマダタツヤ','yamada@hoge.jp','aaa',10); +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('高橋準','タカハシジュン','jtaka@hoge.jp','bbb',10); +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('麻枝史明','マエダフミアキ','fmak@hoge.jp','ccc',11); +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('丸戸章介','マルトショウスケ','marusyo@hoge.jp','ddd',12); +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('三宅武','ミヤケタケシ','miya@hoge.jp','eee',13); +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('丸井悠','マルイハルカ','haru@hoge.jp','fff',13); +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('涼元香織','スズモトカオリ','suzumoto@hoge.jp','ggg',13); +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('葉山稔','ハヤマミノル','mhayama@hoge.jp','hhh',14); +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('川上朱里','カワカミアカリ','kawakami@hoge.jp','iii',14); +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('杉井肇','スギイハジメ','sugi@hoge.jp','jjj',15); + +-- 部署テーブルのデータ +INSERT INTO department (nm_department) VALUES ('役員'); +INSERT INTO department (nm_department) VALUES ('人事・総務部'); +INSERT INTO department (nm_department) VALUES ('経理部'); +INSERT INTO department (nm_department) VALUES ('システム開発事業部'); +INSERT INTO department (nm_department) VALUES ('教育事業部'); +INSERT INTO department (nm_department) VALUES ('営業企画部'); diff --git a/CUI_社員メンテナンス/sql/CreateTable-PostgreSQL.sql b/CUI_社員メンテナンス/sql/CreateTable-PostgreSQL.sql new file mode 100644 index 0000000..b8c7d9c --- /dev/null +++ b/CUI_社員メンテナンス/sql/CreateTable-PostgreSQL.sql @@ -0,0 +1,39 @@ +-- employeeテーブルの作成 +DROP TABLE IF EXISTS employee; +CREATE TABLE employee ( + id_employee serial PRIMARY KEY + ,nm_employee varchar(50) NOT NULL + ,kn_employee varchar(50) NOT NULL + ,mail_address varchar(100) NOT NULL + ,password varchar(10) NOT NULL + ,id_department integer NOT NULL +); +ALTER SEQUENCE employee_id_employee_seq RESTART WITH 10000; + +-- 部署テーブルの作成 +DROP TABLE IF EXISTS department; +CREATE TABLE department ( + id_department serial PRIMARY KEY + ,nm_department varchar(10) NOT NULL +); +alter sequence department_id_department_seq restart with 10; + +-- 社員テーブルのデータ +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('山田龍也','ヤマダタツヤ','yamada@hoge.jp','aaa',10); +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('高橋準','タカハシジュン','jtaka@hoge.jp','bbb',10); +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('麻枝史明','マエダフミアキ','fmak@hoge.jp','ccc',11); +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('丸戸章介','マルトショウスケ','marusyo@hoge.jp','ddd',12); +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('三宅武','ミヤケタケシ','miya@hoge.jp','eee',13); +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('丸井悠','マルイハルカ','haru@hoge.jp','fff',13); +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('涼元香織','スズモトカオリ','suzumoto@hoge.jp','ggg',13); +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('葉山稔','ハヤマミノル','mhayama@hoge.jp','hhh',14); +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('川上朱里','カワカミアカリ','kawakami@hoge.jp','iii',14); +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('杉井肇','スギイハジメ','sugi@hoge.jp','jjj',15); + +-- 部署テーブルのデータ +INSERT INTO department (nm_department) VALUES ('役員'); +INSERT INTO department (nm_department) VALUES ('人事・総務部'); +INSERT INTO department (nm_department) VALUES ('経理部'); +INSERT INTO department (nm_department) VALUES ('システム開発事業部'); +INSERT INTO department (nm_department) VALUES ('教育事業部'); +INSERT INTO department (nm_department) VALUES ('営業企画部'); diff --git a/CUI_社員メンテナンス/sql/DAO作成用テーブル定義書.xlsx b/CUI_社員メンテナンス/sql/DAO作成用テーブル定義書.xlsx new file mode 100644 index 0000000..c5588e9 Binary files /dev/null and b/CUI_社員メンテナンス/sql/DAO作成用テーブル定義書.xlsx differ diff --git a/CUI_社員メンテナンス/src/com/rhizome/example/db/dao/DepartmentDAO.java b/CUI_社員メンテナンス/src/com/rhizome/example/db/dao/DepartmentDAO.java new file mode 100644 index 0000000..b5358fd --- /dev/null +++ b/CUI_社員メンテナンス/src/com/rhizome/example/db/dao/DepartmentDAO.java @@ -0,0 +1,78 @@ +/* + * DepartmentDAO.java + * 作成 IT-College 2016 + *------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +package com.rhizome.example.db.dao; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +import com.rhizome.example.db.dao.base.BaseDao; +import com.rhizome.example.db.entity.Department; + +/** + * 部署テーブルのDAOです + * @author IT-College + * + */ +public class DepartmentDAO extends BaseDao { + /** + * コンストラクタ + * @param con + */ + public DepartmentDAO(Connection con) { + super(con); + } + + @Override + protected String getTableId() { + return "department"; + } + + @Override + protected Department rowMapping(ResultSet rs) throws SQLException { + Department department = new Department(); + department.setIdDepartment(rs.getInt("id_department")); + department.setNmDepartment(rs.getString("nm_department")); + return department; + } + + @Override + protected List setPrimaryKey() { + List aryPK = new ArrayList<>(); + aryPK.add("id_department"); + return aryPK; + } + + @Override + protected List setColumnsList() { + List aryColumns = new ArrayList<>(); + aryColumns.add("id_department"); + aryColumns.add("nm_department"); + return aryColumns; + } + + /** + * id_departmentを除く項目を登録するメソッド + * departmentテーブルでは、pk項目がオートインクリメントのため、pk項目を外して登録します + * @param emp 部署テーブルのDTO + * @return 登録件数 + * @throws SQLException SQLの実行失敗時に起こる例外 + */ + public int insertRemovePk(Department emp) throws SQLException { + StringBuffer sql = new StringBuffer(); + sql.append("INSERT INTO "); + sql.append(super.tableId); + sql.append(" (nm_department) VALUES (?)"); + + super.stmt = super.con.prepareStatement(sql.toString()); + super.stmt.setString(1, emp.getNmDepartment()); + + return super.stmt.executeUpdate(); + } +} diff --git a/CUI_社員メンテナンス/src/com/rhizome/example/db/dao/EmployeeDAO.java b/CUI_社員メンテナンス/src/com/rhizome/example/db/dao/EmployeeDAO.java new file mode 100644 index 0000000..67f7fd7 --- /dev/null +++ b/CUI_社員メンテナンス/src/com/rhizome/example/db/dao/EmployeeDAO.java @@ -0,0 +1,136 @@ +/* + * EmployeeDAO.java + * 作成 IT-College 2016 + *------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +package com.rhizome.example.db.dao; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +import com.rhizome.example.db.dao.base.BaseDao; +import com.rhizome.example.db.entity.Employee; + + +/** + * employeeのDAOクラス + * + * @author IT-College + * + */ +public class EmployeeDAO extends BaseDao { + /** + * コンストラクタ + * + * @param con + */ + public EmployeeDAO(Connection con) { + super(con); + } + + @Override + protected String getTableId() { + return "employee"; + } + + @Override + protected Employee rowMapping(ResultSet rs) throws SQLException { + Employee employee = new Employee(); + employee.setIdEmployee(rs.getInt("id_employee")); + employee.setNmEmployee(rs.getString("nm_employee")); + employee.setKnEmployee(rs.getString("kn_employee")); + employee.setMailAddress(rs.getString("mail_address")); + employee.setPassword(rs.getString("password")); + employee.setIdDepartment(rs.getInt("id_department")); + return employee; + } + + @Override + protected List setPrimaryKey() { + ArrayList aryPK = new ArrayList(); + aryPK.add("id_employee"); + return aryPK; + } + + @Override + protected List setColumnsList() { + ArrayList aryColumns = new ArrayList<>(); + aryColumns.add("id_employee"); + aryColumns.add("nm_employee"); + aryColumns.add("kn_employee"); + aryColumns.add("mail_address"); + aryColumns.add("password"); + aryColumns.add("id_department"); + return aryColumns; + }; + + /** + * パラメータを指定して検索するメソッド + * + * @param param EmployeeのDTO + * @return 検索結果 + * @throws SQLException SQLの実行失敗時に起こる例外 + */ + public List selectByPram(Employee param) throws SQLException { + List aryParam = new ArrayList<>(); + StringBuffer sql = new StringBuffer(); + sql.append(super.sqlSelectAll); + + String where = " WHERE "; + if (super.setSQLParam(sql, "id_employee", param.getIdEmployee(), aryParam, where)) { + where = " AND "; + } + if (super.setSQLParam(sql, "nm_employee", param.getNmEmployee(), aryParam, where)) { + where = " AND "; + } + if (super.setSQLParam(sql, "kn_employee", param.getKnEmployee(), aryParam, where)) { + where = " AND "; + } + if (super.setSQLParam(sql, "mail_address", param.getMailAddress(), aryParam, where)) { + where = " AND "; + } + if (super.setSQLParam(sql, "password", param.getPassword(), aryParam, where)) { + where = " AND "; + } + if (super.setSQLParam(sql, "id_department", param.getIdDepartment(), aryParam, where)) { + where = " AND "; + } + + List aryResult = new ArrayList(); + this.stmt = con.prepareStatement(sql.toString()); + this.setParamValue(aryParam, 1); + ResultSet rs = stmt.executeQuery(); + while (rs.next()) { + aryResult.add(this.rowMapping(rs)); + } + stmt.close(); + return aryResult; + } + + /** + * id_employeeを除く項目を登録するメソッド + * employeeテーブルでは、pk項目がオートインクリメントのため、pk項目を外して登録します + * @param emp 社員テーブルのDTO + * @return 登録件数 + * @throws SQLException SQLの実行失敗時に起こる例外 + */ + public int insertRemovePk(Employee emp) throws SQLException { + StringBuffer sql = new StringBuffer(); + sql.append("INSERT INTO "); + sql.append(super.tableId); + sql.append(" (nm_employee, kn_employee, mail_address, password, id_department) VALUES (?, ?, ?, ?, ?)"); + + super.stmt = super.con.prepareStatement(sql.toString()); + super.stmt.setString(1, emp.getNmEmployee()); + super.stmt.setString(2, emp.getKnEmployee()); + super.stmt.setString(3, emp.getMailAddress()); + super.stmt.setString(4, emp.getPassword()); + super.stmt.setInt(5, emp.getIdDepartment()); + + return super.stmt.executeUpdate(); + } +} diff --git a/CUI_社員メンテナンス/src/com/rhizome/example/db/dao/base/BaseDao.java b/CUI_社員メンテナンス/src/com/rhizome/example/db/dao/base/BaseDao.java new file mode 100644 index 0000000..20c8984 --- /dev/null +++ b/CUI_社員メンテナンス/src/com/rhizome/example/db/dao/base/BaseDao.java @@ -0,0 +1,327 @@ +/* + * BaseDao.java + * 作成 IT-College 2016 + *------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +package com.rhizome.example.db.dao.base; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +import com.rhizome.example.db.entity.base.BaseEntity; +import com.rhizome.example.exception.AppException; + + +/** + * DAOの基底クラスです。 各SQLにおいての単純なCRUDを提供します。 + * DAOを作る場合は、このクラスを継承して作成してください。 + * + * @author IT-College + * + */ +public abstract class BaseDao { + protected Connection con; + protected PreparedStatement stmt; + protected String tableId; + protected List aryPrimaryKey; + protected List columnsList; + + protected String sqlSelectAll; + protected String sqlInsertAllColumn; + protected String sqlUpdateByPK; + protected String sqlDeleteByPK; + + protected BaseDao(Connection con) { + this.con = con; + this.tableId = this.getTableId(); + this.aryPrimaryKey = this.setPrimaryKey(); + this.columnsList = this.setColumnsList(); + this.sqlSelectAll = this.getSelectSQL(); + this.sqlUpdateByPK = this.getUpdateSQL(); + this.sqlDeleteByPK = this.getDeleteSQL(); + this.sqlInsertAllColumn = this.getInsertSQL(); + } + + /** + * 全件検索SQLの取得 + * + * @return 全件検索用のSQL + */ + private String getSelectSQL() { + return "SELECT * FROM " + this.tableId; + } + + /** + * 更新用SQLの取得
+ * 主キーは更新しないものとする + * + * @return 主キー以外の項目を更新するSQL + */ + private String getUpdateSQL() { + StringBuffer strSQL = new StringBuffer(); + strSQL.append("UPDATE "); + strSQL.append(this.tableId); + strSQL.append(" SET "); + + for (String col : this.columnsList) { + if (!aryPrimaryKey.contains(col)) { + strSQL.append(col); + strSQL.append(" = ?,"); + } + } + strSQL.replace(strSQL.length() - 1, strSQL.length(), ""); + + return strSQL.toString(); + } + + /** + * 削除用SQLの取得 + * + * @return 全件削除用のSQL + */ + private String getDeleteSQL() { + return "DELETE FROM " + this.tableId; + } + + /** + * 全カラムを対象とした登録用SQLの取得 + * + * @return 全項目を対象としたinsertのSQL + */ + private String getInsertSQL() { + StringBuffer strSQL = new StringBuffer(); + strSQL.append("INSERT INTO "); + strSQL.append(this.tableId); + strSQL.append(" ("); + for (String col : this.columnsList) { + strSQL.append(col); + strSQL.append(","); + } + strSQL.replace(strSQL.length() - 1, strSQL.length(), ""); + strSQL.append(") VALUES ("); + + for (int i = 0; i < this.aryPrimaryKey.size(); i++) { + strSQL.append("?,"); + } + strSQL.replace(strSQL.length() - 1, strSQL.length(), ""); + strSQL.append(")"); + + return strSQL.toString(); + } + + /** + * 絞り込み条件、登録/更新値等をSQLにセットする + * + * @param aryParam 条件を格納したList int項目ならばIntegerクラス、varchar項目ならばStringクラスで格納してください + * @param index Statementの置換文字インデックス(開始番号) + * @throws SQLException 置換失敗した場合の例外 + */ + protected void setParamValue(List aryParam, int index) throws SQLException { + if (aryParam.size() > 0) { + for (int i = 0; i < aryParam.size(); i++, index++) { + if (aryParam.get(i) instanceof Integer) { + this.stmt.setInt(index, Integer.parseInt(aryParam.get(i).toString())); + } else if (aryParam.get(i) instanceof String) { + this.stmt.setString(index, aryParam.get(i).toString()); + } + } + } + } + + /** + * 更新・登録・削除を行うSQLの実行 + * + * @return 変更件数 + * @throws SQLException + */ + protected int doExecuteUpdate() throws SQLException { + int ret = -1; + ret = this.stmt.executeUpdate(); + this.stmt.close(); + return ret; + } + + /** + * 全検索メソッド + * + * @return 検索結果 + * @throws SQLException + */ + public List findAll() throws SQLException { + List aryResult = new ArrayList(); + String sql = this.sqlSelectAll; + this.stmt = con.prepareStatement(sql); + ResultSet rs = stmt.executeQuery(); + while (rs.next()) { + aryResult.add(this.rowMapping(rs)); + } + stmt.close(); + return aryResult; + } + + /** + * 主キー検索メソッド + * @param aryParam 主キー条件を格納したList(int項目ならばIntegerクラス、varchar項目ならばStringクラスで格納してください) + * @return 検索した結果のDTO + * @throws SQLException SQLで何かしらのエラーが発生した場合の例外 + * @throws AppException SQL生成時に起こった例外 + */ + public T findByPrimaryKey(List aryParam) throws SQLException, AppException { + this.stmt = con.prepareStatement(sqlConcatPrimaryKey(this.sqlSelectAll, aryParam)); + this.setParamValue(aryParam, 1); + ResultSet rs = stmt.executeQuery(); + T ret = null; + if (rs.next()) { + ret = this.rowMapping(rs); + } + stmt.close(); + return ret; + } + + /** + * * 登録を行うメソッド + * + * @param aryParam 登録値の順に指定(必須) + * @return 登録件数 + * @throws SQLException SQLで何かしらのエラーが発生した場合の例外 + */ + public int insertByAllColumns(List aryParam) throws SQLException { + this.stmt = con.prepareStatement(this.sqlInsertAllColumn); + this.setParamValue(aryParam, 1); + return this.doExecuteUpdate(); + } + + /** + * 主キーを更新条件に値を登録するメソッド + * + * @param aryParam 更新値 テーブルに設定しているカラム順に指定してください。全項目必須です。 + * @return 更新件数 + * @throws SQLException SQLで何かしらのエラーが発生した場合の例外 + * @throws AppException SQL生成時に起こった例外 + */ + public int updateByPrimaryKey(List aryParam, List aryPKeyParam) throws SQLException, AppException { + this.stmt = con.prepareStatement(sqlConcatPrimaryKey(this.sqlUpdateByPK, aryPKeyParam)); + this.setParamValue(aryParam, 1); + this.setParamValue(aryPKeyParam, aryParam.size() + 1); + return this.doExecuteUpdate(); + } + + /** + * 主キーを削除条件にレコードを削除するメソッド + * + * @param aryParam 主キー条件を格納したList(int項目ならばIntegerクラス、varchar項目ならばStringクラスで格納してください) + * @return 削除件数 + * @throws SQLException SQLで何かしらのエラーが発生した場合の例外 + * @throws AppException SQL生成時に起こった例外 + */ + public int deleteByPrimaryKey(List aryPKeyParam) throws SQLException, AppException { + this.stmt = con.prepareStatement(sqlConcatPrimaryKey(this.sqlDeleteByPK, aryPKeyParam)); + this.setParamValue(aryPKeyParam, 1); + return this.doExecuteUpdate(); + } + + /** + * SQLに主キー条件をWhereとして追加するメソッド + * @param sql 主キー条件を追加したいSQL + * @param aryPKeyParam 主キー条件に指定したい値のリスト(主キーのカラム数と差異がある場合は例外が発生します) + * @return 主キー条件を追加した状態のSQL + * @throws AppException SQL生成時に起こった例外 + */ + private String sqlConcatPrimaryKey(String sql, List aryPKeyParam) throws AppException { + StringBuffer sbSQL = new StringBuffer(); + if (aryPrimaryKey.size() != aryPKeyParam.size()) { + throw new AppException(AppException.ERROR_CODE.PARAM_SIZE_ERROR); + } + sbSQL.append(sql); + for (int i = 0; i < aryPrimaryKey.size(); i++) { + if (i == 0) { + sbSQL.append(" WHERE "); + } else { + sbSQL.append(" AND "); + } + sbSQL.append(aryPrimaryKey.get(i)); + sbSQL.append(" = ?"); + } + return sbSQL.toString(); + } + + // ============================================ Utilメソッド + /** + * 指定された文字列に"%"が含まれている場合はLIKE、なければ"="を返すメソッド + * @param val 条件式に設定したい値 + * @return LIKE or = + */ + protected String likeORequals(String val) { + if (val.contains("%")) { + return " LIKE "; + } + return " = "; + } + + /** + * 条件式に設定する値を追記するメソッド + * + * @param sql 追記対象のSQL + * @param columns 対象のカラム名 + * @param param 条件に指定したい値(int項目ならばIntegerクラス、varchar項目ならばStringクラスで格納してください) + * @param aryParam 条件値を格納しているLIST(SQL生成時に、paramの値を格納します) + * @param where 条件式を連結する際の文字列(WHERE, AND, ORなど) + * @return 追記が正常に出来れていればTRUE, できなかった場合はfalse + */ + protected boolean setSQLParam(StringBuffer sql, String columns, Object param, List aryParam, String where) { + if (param != null) { + if (param instanceof String) { + if (((String) param).length() > 0) { + sql.append(where); + sql.append(columns); + sql.append(this.likeORequals((String) param)); + sql.append("?"); + aryParam.add(param); + return true; + } + } else { + sql.append(where); + sql.append(columns); + sql.append(" = ?"); + aryParam.add(param); + return true; + } + } + return false; + } + + // ============================================ 抽象メソッド + /** + * テーブル物理名を取得する + * + * @return tableName + */ + protected abstract String getTableId(); + + /** + * 取得したデータのマッピング + * + * @param rs + * @return ArrayList + */ + protected abstract T rowMapping(ResultSet rs) throws SQLException; + + /** + * カラム一覧をセットする + * + * @return + */ + protected abstract List setColumnsList(); + + /** + * PKをセットする + * + * @return + */ + protected abstract List setPrimaryKey(); +} diff --git a/CUI_社員メンテナンス/src/com/rhizome/example/db/entity/Department.java b/CUI_社員メンテナンス/src/com/rhizome/example/db/entity/Department.java new file mode 100644 index 0000000..a4f39ad --- /dev/null +++ b/CUI_社員メンテナンス/src/com/rhizome/example/db/entity/Department.java @@ -0,0 +1,71 @@ +/* + * Department.java + * 作成 IT-College 2016 + *------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +package com.rhizome.example.db.entity; + +import com.rhizome.example.db.entity.base.BaseEntity; + +/** + * DepartmentテーブルのEntity + * @author IT-College + * + */ +public class Department implements BaseEntity { + public static final String TITLE_ID_DEPARTMENT = "部署ID"; + public static final String TITLE_NM_DEPARTMENT = "部署名"; + + /** 部署ID */ + private Integer idDepartment; + /** 部署名 */ + private String nmDepartment; + + /** + * 部署IDを取得します + * @return 部署ID + */ + public Integer getIdDepartment() { + return idDepartment; + } + /** + * 部署IDを設定します + * @param idDepartment 部署ID + */ + public void setIdDepartment(Integer idDepartment) { + this.idDepartment = idDepartment; + } + /** + * 部署名を取得します + * @return 部署名 + */ + public String getNmDepartment() { + return nmDepartment; + } + /** + * 部署名を設定します + * @param nmDepartment 部署名 + */ + public void setNmDepartment(String nmDepartment) { + this.nmDepartment = nmDepartment; + } + + @Override + public String getHeaderTitle() { + StringBuffer sb = new StringBuffer(); + sb.append(TITLE_ID_DEPARTMENT); + sb.append(TAB); + sb.append(TITLE_NM_DEPARTMENT); + return sb.toString(); + } + + @Override + public String toString() { + StringBuffer sb = new StringBuffer(); + sb.append(idDepartment); + sb.append(TAB); + sb.append(nmDepartment); + return sb.toString(); + } +} diff --git a/CUI_社員メンテナンス/src/com/rhizome/example/db/entity/Employee.java b/CUI_社員メンテナンス/src/com/rhizome/example/db/entity/Employee.java new file mode 100644 index 0000000..ed97460 --- /dev/null +++ b/CUI_社員メンテナンス/src/com/rhizome/example/db/entity/Employee.java @@ -0,0 +1,155 @@ +/* + * Employee.java + * 作成 IT-College 2016 + *------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +package com.rhizome.example.db.entity; + +import com.rhizome.example.db.entity.base.BaseEntity; + +/** + * EmployeeテーブルのEntity + * @author IT-College + * + */ +public class Employee implements BaseEntity { + public static final String TITLE_ID_EMPLOYEE = "社員ID"; + public static final String TITLE_NM_EMPLOYEE = "社員名"; + public static final String TITLE_KN_EMPLOYEE = "フリガナ"; + public static final String TITLE_MAIL = "メールアドレス"; + public static final String TITLE_PASSWORD = "パスワード"; + public static final String TITLE_ID_DEPARTMENT = "部署ID"; + + /** 社員ID */ + private Integer idEmployee; + /** 社員名 */ + private String nmEmployee; + /** 社員名カナ */ + private String knEmployee; + /** メールアドレス */ + private String mailAddress; + /** パスワード */ + private String password; + /** 部署ID */ + private Integer idDepartment; + + /** + * 社員IDを取得します + * @return 社員ID + */ + public Integer getIdEmployee() { + return idEmployee; + } + /** + * 社員IDを設定します + * @param idEmployee 社員ID + */ + public void setIdEmployee(Integer idEmployee) { + this.idEmployee = idEmployee; + } + /** + * 社員名を取得します + * @return 社員名 + */ + public String getNmEmployee() { + return nmEmployee; + } + /** + * 社員名を設定します + * @param nmEmployee 社員名 + */ + public void setNmEmployee(String nmEmployee) { + this.nmEmployee = nmEmployee; + } + /** + * 社員名カナを取得します + * @return 社員名カナ + */ + public String getKnEmployee() { + return knEmployee; + } + /** + * 社員名カナを設定します + * @param knEmployee 社員名カナ + */ + public void setKnEmployee(String knEmployee) { + this.knEmployee = knEmployee; + } + /** + * メールアドレスを取得します + * @return メールアドレス + */ + public String getMailAddress() { + return mailAddress; + } + /** + * メールアドレスを設定します + * @param mailAddress メールアドレス + */ + public void setMailAddress(String mailAddress) { + this.mailAddress = mailAddress; + } + /** + * パスワードを取得します + * @return パスワード + */ + public String getPassword() { + return password; + } + /** + * パスワードを設定します + * @param password パスワード + */ + public void setPassword(String password) { + this.password = password; + } + /** + * 部署IDを取得します + * @return 部署ID + */ + public Integer getIdDepartment() { + return idDepartment; + } + /** + * 部署IDを設定します + * @param idDepartment 部署ID + */ + public void setIdDepartment(Integer idDepartment) { + this.idDepartment = idDepartment; + } + + @Override + public String getHeaderTitle() { + StringBuffer sb = new StringBuffer(); + sb.append(TITLE_ID_EMPLOYEE); + sb.append(TAB); + sb.append(TITLE_NM_EMPLOYEE); + sb.append(TAB); + sb.append(TITLE_KN_EMPLOYEE); + sb.append(TAB); + sb.append(TITLE_MAIL); + sb.append(TAB); + sb.append(TITLE_PASSWORD); + sb.append(TAB); + sb.append(TITLE_ID_DEPARTMENT); + return sb.toString(); + } + + @Override + public String toString() { + StringBuffer sb = new StringBuffer(); + sb.append(idEmployee); + sb.append(TAB); + sb.append(nmEmployee); + sb.append(TAB); + sb.append(knEmployee); + sb.append(TAB); + sb.append(mailAddress); + sb.append(TAB); + sb.append(password); + sb.append(TAB); + sb.append(idDepartment); + return sb.toString(); + } +} diff --git a/CUI_社員メンテナンス/src/com/rhizome/example/db/entity/base/BaseEntity.java b/CUI_社員メンテナンス/src/com/rhizome/example/db/entity/base/BaseEntity.java new file mode 100644 index 0000000..cc25014 --- /dev/null +++ b/CUI_社員メンテナンス/src/com/rhizome/example/db/entity/base/BaseEntity.java @@ -0,0 +1,22 @@ +/* + * BaseEntity.java + * 作成 IT-College 2016 + *------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +package com.rhizome.example.db.entity.base; + +/** + * 各Entityのインタフェース + * @author IT-College + * + */ +public interface BaseEntity { + String TAB = "\t"; + + /** + * カラム名一覧を取得するメソッド + * @return カラム名一覧の文字列 + */ + String getHeaderTitle(); +} diff --git a/CUI_社員メンテナンス/src/com/rhizome/example/exception/AppException.java b/CUI_社員メンテナンス/src/com/rhizome/example/exception/AppException.java new file mode 100644 index 0000000..a918bab --- /dev/null +++ b/CUI_社員メンテナンス/src/com/rhizome/example/exception/AppException.java @@ -0,0 +1,70 @@ +/* + * AppException.java + * 作成 IT-College 2016 + *------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +package com.rhizome.example.exception; + +import java.sql.SQLException; + +/** + * このシステムの例外をまとめたものです。 + * エラーコードからどのようなエラーが起きているかを判断してください。 + * @author IT-College + * + */ +public class AppException extends Exception { + public enum ERROR_CODE { + JDBC_ERROR + ,DB_ERROR + ,SQL_ERROR + ,PARAM_SIZE_ERROR + ,IO_ERROR + ,NOT_FOUND + ,INSERT_FAILD + ,UPDATE_FAILD + ,DELETE_FAILD + ,OTHER_ERROR + } + private ERROR_CODE st = ERROR_CODE.OTHER_ERROR; + public AppException(ERROR_CODE st) { + this.st = st; + + } + public AppException(SQLException e) { + // TODO:ベンダー固有エラーコードから内容を判定 + this(ERROR_CODE.OTHER_ERROR); + } + + @Override + public void printStackTrace() { + System.out.println(this.errorMessage()); + super.printStackTrace(); + } + + public String errorMessage() { + switch (this.st) { + case JDBC_ERROR: + return "JDBCドライバ周辺に不備があります"; + case DB_ERROR: + return "データベースに障害が発生しています"; + case SQL_ERROR: + return "SQLにエラーがあります"; + case PARAM_SIZE_ERROR: + return "SQLのパラメータ定義に誤りがあります"; + case IO_ERROR: + return "入出力装置にエラーが発生しています"; + case NOT_FOUND: + return "入力された値で情報がみつかりませんでした"; + case INSERT_FAILD: + return "登録できませんでした"; + case UPDATE_FAILD: + return "更新できませんでした"; + case DELETE_FAILD: + return "削除できませんでした"; + default: + return "予期せぬエラーです!"; + } + } +} diff --git a/CUI_社員メンテナンス/src/com/rhizome/example/main/Main.java b/CUI_社員メンテナンス/src/com/rhizome/example/main/Main.java new file mode 100644 index 0000000..cb57e8c --- /dev/null +++ b/CUI_社員メンテナンス/src/com/rhizome/example/main/Main.java @@ -0,0 +1,34 @@ +/* + * Main.java + * 作成 IT-College 2016 + *------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +package com.rhizome.example.main; + +/** + * rezodbに定義されているテーブルのメンテナンスを行うクラスです。 + * @author IT-College + * + */ +public class Main { + + /** 対象テーブル判定用 **/ + private static int mode = 0; + + /** + * 対象テーブルの名前を取得するメソッド + * @return 現在の対象テーブル名 + */ + private String targetTableName() { + return Main.mode == 0 ? "社員テーブル" : "部署テーブル"; + } + + /** + * システムのエントリーポイントです。 + * コマンドライン引数は使用していません。 + * @param args 使用していません + */ + public static void main(String[] args) { + } +} diff --git a/CUI_社員メンテナンス/src/com/rhizome/example/service/AccessDepartment.java b/CUI_社員メンテナンス/src/com/rhizome/example/service/AccessDepartment.java new file mode 100644 index 0000000..4676a11 --- /dev/null +++ b/CUI_社員メンテナンス/src/com/rhizome/example/service/AccessDepartment.java @@ -0,0 +1,50 @@ +/* + * AccessDepartment.java + * 作成 IT-College 2016 + *------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +package com.rhizome.example.service; + +import java.sql.Connection; +import java.sql.SQLException; + +import com.rhizome.example.db.dao.DepartmentDAO; +import com.rhizome.example.db.entity.Department; +import com.rhizome.example.exception.AppException; +import com.rhizome.example.service.base.BaseAccess; +import com.rhizome.example.util.DbUtil; + + +/** + * Departmentのトランザクション処理クラス + * @author IT-College + * + */ +public class AccessDepartment extends BaseAccess { + private DepartmentDAO departmentDAO; + + public AccessDepartment() throws AppException { + super(); + } + + @Override + protected DepartmentDAO getDaoInstance(Connection con) { + departmentDAO = new DepartmentDAO(super.con); + return departmentDAO; + } + + public int insertDepartment(Department dep) throws SQLException, AppException { + int ret = -1; + try { + ret = departmentDAO.insertRemovePk(dep); + super.con.commit(); + } catch(SQLException e) { + super.con.rollback(); + throw new AppException(e); + } finally { + DbUtil.closeConnection(con); + } + return ret; + } +} \ No newline at end of file diff --git a/CUI_社員メンテナンス/src/com/rhizome/example/service/AccessEmployee.java b/CUI_社員メンテナンス/src/com/rhizome/example/service/AccessEmployee.java new file mode 100644 index 0000000..006784f --- /dev/null +++ b/CUI_社員メンテナンス/src/com/rhizome/example/service/AccessEmployee.java @@ -0,0 +1,55 @@ +/* + * AccessEmployee.java + * 作成 IT-College 2016 + *------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +package com.rhizome.example.service; + +import java.sql.Connection; +import java.sql.SQLException; + +import com.rhizome.example.db.dao.EmployeeDAO; +import com.rhizome.example.db.entity.Employee; +import com.rhizome.example.exception.AppException; +import com.rhizome.example.service.base.BaseAccess; +import com.rhizome.example.util.DbUtil; + +/** + * Employeeのトランザクション処理クラス + * @author IT-College + * + */ +public class AccessEmployee extends BaseAccess { + private EmployeeDAO employeeDAO; + public AccessEmployee() throws AppException { + super(); + } + + @Override + protected EmployeeDAO getDaoInstance(Connection con) { + if(employeeDAO == null) { employeeDAO = new EmployeeDAO(super.con); } + return employeeDAO; + } + + /** + * 社員情報を登録するメソッド + * @param emp 社員情報DTO + * @return 登録件数 + * @throws SQLException + * @throws AppException + */ + public int insertEmploee(Employee emp) throws SQLException, AppException { + int ret = -1; + try { + ret = employeeDAO.insertRemovePk(emp); + super.con.commit(); + } catch(SQLException e) { + super.con.rollback(); + throw new AppException(e); + } finally { + DbUtil.closeConnection(con); + } + return ret; + } +} diff --git a/CUI_社員メンテナンス/src/com/rhizome/example/service/base/BaseAccess.java b/CUI_社員メンテナンス/src/com/rhizome/example/service/base/BaseAccess.java new file mode 100644 index 0000000..10f1297 --- /dev/null +++ b/CUI_社員メンテナンス/src/com/rhizome/example/service/base/BaseAccess.java @@ -0,0 +1,164 @@ +/* + * BaseAccess.java + * 作成 IT-College 2016 + *------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +package com.rhizome.example.service.base; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.Arrays; +import java.util.List; + +import com.rhizome.example.db.dao.base.BaseDao; +import com.rhizome.example.db.entity.base.BaseEntity; +import com.rhizome.example.exception.AppException; +import com.rhizome.example.util.DbUtil; + +public abstract class BaseAccess { + protected BaseDao dao; + protected Connection con; + + protected BaseAccess() throws AppException { + try { + con = DbUtil.getConnection(); + dao = this.getDaoInstance(con); + } catch (ClassNotFoundException e) { + throw new AppException(AppException.ERROR_CODE.JDBC_ERROR); + } catch (SQLException e) { + throw new AppException(e); + } + } + + /** + * 全件検索トランザクション処理を行う + * + * @return 検索結果 + * @throws AppException DAOから発生した例外 + * @throws SQLException DAOから発生した例外 + */ + public List doSelectAll() throws AppException, SQLException { + List entityList = null; + entityList = dao.findAll(); + try { + DbUtil.closeConnection(con); + } catch (SQLException e) { + throw new AppException(e); + } + return entityList; + } + + /** + * 検索トランザクション処理を行う + * + * @param pkObj 検索条件 + * @return 検索結果 + * @throws AppException DAOから発生した例外 + * @throws SQLException DAOから発生した例外 + */ + public E doSelectByPKey(Object... pkObj) throws AppException, SQLException { + List pkList = Arrays.asList(pkObj); + E entity = this.doSelectPrimaryKey(pkList); + try { + DbUtil.closeConnection(con); + } catch (SQLException e) { + throw new AppException(e); + } + return entity; + } + + /** + * 登録トランザクション処理を行う + * + * @param aryParam 登録する値 + * @return 登録件数 + * @throws AppException DAOから発生した例外 + */ + public int doInsert(List aryParam) throws AppException { + int numRet = 0; + try { + try { + numRet = dao.insertByAllColumns(aryParam); + con.commit(); + } catch (SQLException e) { + con.rollback(); + } finally { + DbUtil.closeConnection(con); + } + } catch (SQLException e) { + throw new AppException(e); + } + return numRet; + } + + /** + * 更新トランザクション + * + * @param aryParam 更新内容 + * @param pkObj 主キー条件に設定する値 + * @return 削除件数 + * @throws AppException DAOから発生した例外 + */ + public int doUpdate(List aryParam, Object... pkObj) throws AppException { + int numRet = 0; + List pkList = Arrays.asList(pkObj); + try { + try { + numRet = dao.updateByPrimaryKey(aryParam, pkList); + con.commit(); + } catch (SQLException e) { + con.rollback(); + throw new AppException(e); + } finally { + DbUtil.closeConnection(con); + } + } catch (SQLException e) { + throw new AppException(e); + } + return numRet; + } + + /** + * 削除トランザクション + * + * @param pkObj 削除条件 + * @return 削除件数 + * @throws AppException DAOから発生した例外 + */ + public int doDelete(Object... pkObj) throws AppException { + int numRet = 0; + List pkList = Arrays.asList(pkObj); + try { + try { + con = DbUtil.getConnection(); + numRet = dao.deleteByPrimaryKey(pkList); + con.commit(); + } catch (ClassNotFoundException e) { + throw new AppException(AppException.ERROR_CODE.JDBC_ERROR); + } catch (SQLException e) { + con.rollback(); + throw new AppException(e); + } finally { + DbUtil.closeConnection(con); + } + } catch (SQLException e) { + throw new AppException(e); + } + return numRet; + } + + /** + * 主キー検索処理 + * + * @param pkList 主キー条件 + * @return 検索結果 + * @throws AppException DAOから発生した例外 + * @throws SQLException DAOから発生した例外 + */ + private E doSelectPrimaryKey(List pkList) throws AppException, SQLException { + return dao.findByPrimaryKey(pkList); + } + + protected abstract BaseDao getDaoInstance(Connection con); +} diff --git a/CUI_社員メンテナンス/src/com/rhizome/example/util/CommonUtil.java b/CUI_社員メンテナンス/src/com/rhizome/example/util/CommonUtil.java new file mode 100644 index 0000000..cedcf47 --- /dev/null +++ b/CUI_社員メンテナンス/src/com/rhizome/example/util/CommonUtil.java @@ -0,0 +1,55 @@ +/* + * CommonUtil.java + * 作成 IT-College 2016 + *------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +package com.rhizome.example.util; + +import java.util.Scanner; + +/** + * 文字列変換や数値チェックなどの細かい調整処理を行うメソッドを集めたクラスです + * @author IT-College + * + */ +public class CommonUtil { + + private static Scanner scanner = new Scanner(System.in); + + /** インスタンス禁止 */ + private CommonUtil() { } + + /** + * コマンドライン上で入力された値を取得するメソッド + * @return 入力された文字列 + */ + public static String getInputLine() { + String line = scanner.nextLine(); + return line; + } + + + /** + * Nullを空文字("")に変換するメソッド + * @param value 判定する文字列 + * @return 変換結果 + */ + public static String convertNullToBlank(String value) { + if (value == null) { + return ""; + } + return value; + } + /** + * 空文字をNullに変換するメソッド + * @param value 判定する文字列 + * @return 変換結果 + */ + public static String convertBlankToNull(String value) { + if (value == null || "".equals(value.trim())) { + return null; + } + return value; + } +} diff --git a/CUI_社員メンテナンス/src/com/rhizome/example/util/DbUtil.java b/CUI_社員メンテナンス/src/com/rhizome/example/util/DbUtil.java new file mode 100644 index 0000000..b78576f --- /dev/null +++ b/CUI_社員メンテナンス/src/com/rhizome/example/util/DbUtil.java @@ -0,0 +1,67 @@ +/* + * DbUtil.java + * 作成 IT-College 2016 + *------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +package com.rhizome.example.util; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; + +/** + * データベースの接続・切断を行うクラスです。 + * @author IT-College + * + */ +public class DbUtil { + // 定数定義(共通) + private static final String DB_HOST = "127.0.0.1"; + private static final String DB_NAME = "rezodb"; + private static final String DB_USER = "rezouser"; + private static final String DB_PASS = "Rezo_0000"; + + // 定数定義(PostgreSQL用) +// private static final String DBMS = "postgresql"; +// private static final String DB_DRIVER = "org." + DBMS + ".Driver"; +// private static final String DB_PORT = "5432"; +// private static final String DB_URL = "jdbc:" + DBMS + "://" + DB_HOST + ":" + DB_PORT + "/" + DB_NAME; + + // 定数定義(MySQL用) + private static final String DBMS ="mysql"; + private static final String DB_DRIVER = "com." + DBMS + ".cj.jdbc.Driver"; + private static final String DB_PORT = "3306"; + private static final String DB_URL = "jdbc:" + DBMS + "://" + DB_HOST + ":" + DB_PORT + "/" + DB_NAME; + // + "?serverTimezone=JST"; //JDBCドライバのバージョン8.0.22以前を利用する場合は必要 + + // インスタンス化の禁止 + private DbUtil() {} + + // Connectionを単一のインスタンスとする + private static Connection con; + + /** + * DBのコネクションを取得 + * @return DBコネクション + * @throws ClassNotFoundException + * @throws SQLException + */ + public static Connection getConnection() throws ClassNotFoundException, SQLException { + if (con == null || con.isClosed()) { + Class.forName(DB_DRIVER); + con = DriverManager.getConnection(DB_URL, DB_USER, DB_PASS); + con.setAutoCommit(false); + } + return con; + } + + /** + * DBとのコネクションを切断 + * @param con DBコネクション + * @throws SQLException + */ + public static void closeConnection(Connection con) throws SQLException { + if (con != null) { con.close(); } + } +} diff --git a/CUI_社員メンテナンス/実行例/このファイルを実行してください.bat b/CUI_社員メンテナンス/実行例/このファイルを実行してください.bat new file mode 100644 index 0000000..9cab531 --- /dev/null +++ b/CUI_社員メンテナンス/実行例/このファイルを実行してください.bat @@ -0,0 +1,2 @@ +java -jar DAO.jar +pause diff --git a/CUI_社員メンテナンス_Simple/README.txt b/CUI_社員メンテナンス_Simple/README.txt new file mode 100644 index 0000000..182a5f4 --- /dev/null +++ b/CUI_社員メンテナンス_Simple/README.txt @@ -0,0 +1,248 @@ +○システム名 + 社員メンテナンス + +○システム説明 + employeeテーブルをDAO・DTOを使用して管理するプログラムを作成 + +○配布物 + 実行例フォルダ + srcフォルダ + sqlフォルダ(既に講義で配布済みなら不要) + +○納品物 + 作成したプログラム + +1段階目(メインメニュー作成) +メインメニューを表示し、0を入力したら終了、0以外を入力したらエラー表示し、再入力させる。 +1段階目では1~4、9を入力しても未実装のためエラー表示とする。 +<実行例> +システムを開始します + +現在のメンテナンス対象テーブル:社員テーブル +1:検索 2:登録 3:更新 4:削除 9:テーブル切替 0:終了 +1                       ←1を入力 +指定の番号を入力してください + +現在のメンテナンス対象テーブル:社員テーブル +1:検索 2:登録 3:更新 4:削除 9:テーブル切替 0:終了 +0                       ←0を入力 +システムを終了します + +2段階目(DB接続確認) +メインメニューで1検索を選択すると以下の処理を行う。 +・DbUtilクラスのgetConnectionメソッドでDB接続する +・検索メニューを表示する(表示のみで入力はさせない) +・DbUtilクラスのcloseConnectionメソッドでDB切断する +・メインメニュー表示に戻る +<実行例> +システムを開始します + +現在のメンテナンス対象テーブル:社員テーブル +1:検索 2:登録 3:更新 4:削除 9:テーブル切替 0:終了 +1 +1:全検索 2:条件検索 それ以外:戻る + +現在のメンテナンス対象テーブル:社員テーブル +1:検索 2:登録 3:更新 4:削除 9:テーブル切替 0:終了 + +3段階目(全検索作成) +検索メニューで1全検索を選択するとDAOを使用して社員の一覧を表示し、メインメニューに戻る。 +検索メニューで1全検索以外を選択するとメインメニューに戻る +<実行例> +システムを開始します + +現在のメンテナンス対象テーブル:社員テーブル +システムを開始します + +現在のメンテナンス対象テーブル:社員テーブル +1:検索 2:登録 3:更新 4:削除 9:テーブル切替 0:終了 +1 +1:全検索 2:条件検索 それ以外:戻る +2                       ←未実装の2を入力 + +現在のメンテナンス対象テーブル:社員テーブル +1:検索 2:登録 3:更新 4:削除 9:テーブル切替 0:終了 +1 +1:全検索 2:条件検索 それ以外:戻る +1                       ←1を入力 +10000 山田龍也 ヤマダタツヤ yamada@hoge.jp aaa 10 +10001 高橋準 タカハシジュン jtaka@hoge.jp bbb 10 +10002 麻枝史明 マエダフミアキ fmak@hoge.jp ccc 11 +10003 丸戸章介 マルトショウスケ marusyo@hoge.jp ddd 12 +10004 三宅武 ミヤケタケシ miya@hoge.jp eee 13 +10005 丸井悠 マルイハルカ haru@hoge.jp fff 13 +10006 涼元香織 スズモトカオリ suzumoto@hoge.jp ggg 13 +10007 葉山稔 ハヤマミノル mhayama@hoge.jp hhh 14 +10008 川上朱里 カワカミアカリ kawakami@hoge.jp iii 14 +10009 杉井肇 スギイハジメ sugi@hoge.jp jjj 15 + +現在のメンテナンス対象テーブル:社員テーブル +1:検索 2:登録 3:更新 4:削除 9:テーブル切替 0:終了 + +4段階目(条件検索作成) +検索メニューで2条件検索を選択するとIDを入力させ、エラー時は再入力させる。 +正しいID入力時はDAOを使用して検索結果を表示する。 +<実行例> +システムを開始します + +現在のメンテナンス対象テーブル:社員テーブル +1:検索 2:登録 3:更新 4:削除 9:テーブル切替 0:終了 +1 +1:全検索 2:条件検索 それ以外:戻る +2 +IDを入力してください +                        ←入力なしでEnter +IDは入力必須です。 +IDを入力してください +1000x                     ←数字以外を入力 +IDは数値入力です +IDを入力してください +10010                     ←存在しないIDを入力 +入力された値で情報がみつかりませんでした + +現在のメンテナンス対象テーブル:社員テーブル +1:検索 2:登録 3:更新 4:削除 9:テーブル切替 0:終了 +1 +1:全検索 2:条件検索 それ以外:戻る +2 +IDを入力してください +10001 +10001 高橋準 タカハシジュン jtaka@hoge.jp bbb 10 + +現在のメンテナンス対象テーブル:社員テーブル +1:検索 2:登録 3:更新 4:削除 9:テーブル切替 0:終了 + +5段階目(削除作成) +メインメニューで4削除を選択するとIDを入力させ、エラー時は再入力させる。 +正しいID入力時は削除確認を行い、Yかyを選択したらDAOを使用して削除する + +<実行例> +システムを開始します + +現在のメンテナンス対象テーブル:社員テーブル +1:検索 2:登録 3:更新 4:削除 9:テーブル切替 0:終了 +4 +IDを入力してください +                        ←入力なしでEnter +IDは入力必須です。 +IDを入力してください +1000x                     ←数字以外を入力 +IDは数値入力です +IDを入力してください +10010                     ←存在しないIDを入力 +入力された値で情報がみつかりませんでした + +現在のメンテナンス対象テーブル:社員テーブル +1:検索 2:登録 3:更新 4:削除 9:テーブル切替 0:終了 +4 +IDを入力してください +10002                     ←存在するIDを入力 +指定されたIDの情報を削除します? Y/y +(Y/y以外の入力であればキャンセル) +N                       ←キャンセルを選択 +削除をキャンセルしました + +現在のメンテナンス対象テーブル:社員テーブル +1:検索 2:登録 3:更新 4:削除 9:テーブル切替 0:終了 +4 +IDを入力してください +10002 +指定されたIDの情報を削除します? Y/y +(Y/y以外の入力であればキャンセル) +y                       ←削除を選択 +削除が完了しました + +現在のメンテナンス対象テーブル:社員テーブル +1:検索 2:登録 3:更新 4:削除 9:テーブル切替 0:終了 + +6段階目(登録作成) +メインメニューで2登録を選択するとID以外の各項目を入力させ、エラー時は再入力させる。 +部署IDは数値チェックも行う。 +入力が正しければDAOを使用して登録する +<実行例> +システムを開始します + +現在のメンテナンス対象テーブル:社員テーブル +1:検索 2:登録 3:更新 4:削除 9:テーブル切替 0:終了 +2 +社員名を入力してください + +社員名は入力必須です。 +社員名を入力してください +てすと +フリガナを入力してください +テスト +メールアドレスを入力してください +test@hoge.jp +パスワードを入力してください +xxx +部署IDを入力してください +a2 +部署IDは数値入力です +部署IDを入力してください +12 +登録が完了しました + +現在のメンテナンス対象テーブル:社員テーブル +1:検索 2:登録 3:更新 4:削除 9:テーブル切替 0:終了 + +7段階目(更新作成) +メインメニューで3更新を選択すると各項目を入力させ、エラー時は再入力させる。 +ID、部署IDは数値チェックも行う。 +入力が正しければDAOを使用して更新する +<実行例> +システムを開始します + +現在のメンテナンス対象テーブル:社員テーブル +1:検索 2:登録 3:更新 4:削除 9:テーブル切替 0:終了 +3 +IDを入力してください +10011 +入力された値で情報がみつかりませんでした + +現在のメンテナンス対象テーブル:社員テーブル +1:検索 2:登録 3:更新 4:削除 9:テーブル切替 0:終了 +3 +IDを入力してください +10010 +社員名を入力してください +試し +フリガナを入力してください +タメシ +メールアドレスを入力してください +tameshi@hoge.jp +パスワードを入力してください +yyy +部署IDを入力してください +1c +部署IDは数値入力です +部署IDを入力してください +14 +更新が完了しました + +現在のメンテナンス対象テーブル:社員テーブル +1:検索 2:登録 3:更新 4:削除 9:テーブル切替 0:終了 + + +8段階目(部署マスター管理作成) +EmployeeDAO、EmployeeDTOを参考にDepartmentDAO、DepartmentDTOを作成し、 +部署マスターで全検索、条件検索、削除、登録、変更を実装する。 +また、9テーブル切替を行うたびに社員と部署のテーブルを切り替える。 + +<以下、時間が余った人向け> +9段階目(機能改善) +・社員テーブルの検索時、部署IDの代わりに部署名を表示する +・社員テーブルの全検索時、縦の線が揃うように位置を調整する +・社員テーブルの更新時、変更したくない項目は何も入力せずにEnterを押せるようにする +・社員テーブルの登録・更新時、存在しない部署IDを入力するとエラーになるようにする +・社員テーブル、部署テーブル共に登録・変更時はSQL実行前に登録・変更を行ってよいか確認させる + +10段階目(検索機能改善) +・社員テーブル、部署テーブル共に条件検索時はID以外の項目でも検索できるようにする +・検索条件の中で社員名、フリガナ、メールアドレス、部署名は曖昧検索できるようにする +・社員テーブルの条件検索ではAND条件で複数の項目を指定することができるようにする + +11段階目(部署入力改善) +・社員テーブルの登録・更新時、部署はIDでも部署名でも入力できるようにする + 部署名で入力した場合は部署名の一部でも特定できればOKとする(例:「総務」と入力) + diff --git a/CUI_社員メンテナンス_Simple/doc/allclasses-frame.html b/CUI_社員メンテナンス_Simple/doc/allclasses-frame.html new file mode 100644 index 0000000..c05c410 --- /dev/null +++ b/CUI_社員メンテナンス_Simple/doc/allclasses-frame.html @@ -0,0 +1,25 @@ + + + + + + +すべてのクラス + + + + + +

すべてのクラス

+ + + diff --git a/CUI_社員メンテナンス_Simple/doc/allclasses-noframe.html b/CUI_社員メンテナンス_Simple/doc/allclasses-noframe.html new file mode 100644 index 0000000..e90d57f --- /dev/null +++ b/CUI_社員メンテナンス_Simple/doc/allclasses-noframe.html @@ -0,0 +1,25 @@ + + + + + + +すべてのクラス + + + + + +

すべてのクラス

+ + + diff --git a/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/dao/DepartmentDAO.html b/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/dao/DepartmentDAO.html new file mode 100644 index 0000000..5e7dbdc --- /dev/null +++ b/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/dao/DepartmentDAO.html @@ -0,0 +1,463 @@ + + + + + + +DepartmentDAO + + + + + + + + + + + + +
+
com.rhizome.example.dao
+

クラス DepartmentDAO

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • com.rhizome.example.dao.DepartmentDAO
    • +
    +
  • +
+
+
    +
  • +
    +
    +
    public class DepartmentDAO
    +extends java.lang.Object
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      フィールドのサマリー

      + + + + + + + + + + +
      フィールド 
      修飾子とタイプフィールドと説明
      java.sql.Connectioncon +
      DBコネクション
      +
      +
    • +
    + +
      +
    • + + +

      コンストラクタのサマリー

      + + + + + + + + +
      コンストラクタ 
      コンストラクタと説明
      DepartmentDAO(java.sql.Connection con) +
      インスタンス生成時DBコネクション
      +
      +
    • +
    + +
      +
    • + + +

      メソッドのサマリー

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      すべてのメソッド インスタンス・メソッド concreteメソッド 
      修飾子とタイプメソッドと説明
      voiddepDelete(java.lang.String id) +
      部署テーブルの部署IDに合致する情報を削除する
      +
      voiddepInsert(java.lang.String depNm) +
      部署テーブルに新規登録する
      +
      voiddepUpdate(java.lang.String id, + java.lang.String name) +
      部署テーブルの部署IDに合致する情報を更新する
      +
      DepartmentDTOrowMappingDepartment(java.sql.ResultSet rs) +
      DBから取得した検索結果をDTO型のインスタンスにセットし、リストに格納する
      +
      java.util.List<DepartmentDTO>selectAll() +
      部署テーブルの情報を全件取得する
      +
      java.util.List<DepartmentDTO>selectById(java.lang.String id) +
      部署テーブルから部署IDに合致する情報を取得する
      +
      +
        +
      • + + +

        クラスから継承されたメソッド java.lang.Object

        +equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      フィールドの詳細

      + + + +
        +
      • +

        con

        +
        public java.sql.Connection con
        +
        DBコネクション
        +
      • +
      +
    • +
    + +
      +
    • + + +

      コンストラクタの詳細

      + + + +
        +
      • +

        DepartmentDAO

        +
        public DepartmentDAO(java.sql.Connection con)
        +              throws java.lang.ClassNotFoundException,
        +                     java.sql.SQLException
        +
        インスタンス生成時DBコネクション
        +
        +
        例外:
        +
        java.lang.ClassNotFoundException
        +
        java.sql.SQLException
        +
        +
      • +
      +
    • +
    + +
      +
    • + + +

      メソッドの詳細

      + + + +
        +
      • +

        selectAll

        +
        public java.util.List<DepartmentDTO> selectAll()
        +                                        throws java.sql.SQLException,
        +                                               java.lang.ClassNotFoundException
        +
        部署テーブルの情報を全件取得する
        +
        +
        戻り値:
        +
        検索結果
        +
        例外:
        +
        java.sql.SQLException
        +
        java.lang.ClassNotFoundException
        +
        +
      • +
      + + + +
        +
      • +

        selectById

        +
        public java.util.List<DepartmentDTO> selectById(java.lang.String id)
        +                                         throws java.sql.SQLException,
        +                                                java.lang.ClassNotFoundException,
        +                                                java.lang.NumberFormatException
        +
        部署テーブルから部署IDに合致する情報を取得する
        +
        +
        パラメータ:
        +
        id - 部署ID
        +
        戻り値:
        +
        検索結果
        +
        例外:
        +
        java.sql.SQLException
        +
        java.lang.ClassNotFoundException
        +
        java.lang.NumberFormatException
        +
        +
      • +
      + + + +
        +
      • +

        depInsert

        +
        public void depInsert(java.lang.String depNm)
        +               throws java.lang.ClassNotFoundException,
        +                      java.sql.SQLException
        +
        部署テーブルに新規登録する
        +
        +
        パラメータ:
        +
        depNm - 部署名
        +
        例外:
        +
        java.lang.ClassNotFoundException
        +
        java.sql.SQLException
        +
        +
      • +
      + + + +
        +
      • +

        depUpdate

        +
        public void depUpdate(java.lang.String id,
        +                      java.lang.String name)
        +               throws java.lang.ClassNotFoundException,
        +                      java.sql.SQLException
        +
        部署テーブルの部署IDに合致する情報を更新する
        +
        +
        パラメータ:
        +
        id - 部署ID
        +
        name - 部署名
        +
        例外:
        +
        java.lang.ClassNotFoundException
        +
        java.sql.SQLException
        +
        +
      • +
      + + + +
        +
      • +

        depDelete

        +
        public void depDelete(java.lang.String id)
        +               throws java.sql.SQLException,
        +                      java.lang.ClassNotFoundException
        +
        部署テーブルの部署IDに合致する情報を削除する
        +
        +
        パラメータ:
        +
        id - 部署ID
        +
        例外:
        +
        java.sql.SQLException
        +
        java.lang.ClassNotFoundException
        +
        +
      • +
      + + + +
        +
      • +

        rowMappingDepartment

        +
        public DepartmentDTO rowMappingDepartment(java.sql.ResultSet rs)
        +                                   throws java.sql.SQLException
        +
        DBから取得した検索結果をDTO型のインスタンスにセットし、リストに格納する
        +
        +
        パラメータ:
        +
        rs - 検索結果
        +
        戻り値:
        +
        リスト
        +
        例外:
        +
        java.sql.SQLException
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/dao/EmployeeDAO.html b/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/dao/EmployeeDAO.html new file mode 100644 index 0000000..2146317 --- /dev/null +++ b/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/dao/EmployeeDAO.html @@ -0,0 +1,487 @@ + + + + + + +EmployeeDAO + + + + + + + + + + + + +
+
com.rhizome.example.dao
+

クラス EmployeeDAO

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • com.rhizome.example.dao.EmployeeDAO
    • +
    +
  • +
+
+
    +
  • +
    +
    +
    public class EmployeeDAO
    +extends java.lang.Object
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      フィールドのサマリー

      + + + + + + + + + + +
      フィールド 
      修飾子とタイプフィールドと説明
      java.sql.Connectioncon +
      DBコネクション
      +
      +
    • +
    + +
      +
    • + + +

      コンストラクタのサマリー

      + + + + + + + + +
      コンストラクタ 
      コンストラクタと説明
      EmployeeDAO(java.sql.Connection con) +
      インスタンス生成時DBコネクション
      +
      +
    • +
    + +
      +
    • + + +

      メソッドのサマリー

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      すべてのメソッド インスタンス・メソッド concreteメソッド 
      修飾子とタイプメソッドと説明
      voidempDelete(java.lang.String id) +
      社員テーブルの社員IDに合致する情報を削除する
      +
      voidempInsert(java.lang.String name, + java.lang.String kana, + java.lang.String mail, + java.lang.String pass, + java.lang.String depId) +
      社員テーブルに新規登録する
      +
      voidempUpdate(java.lang.String id, + java.lang.String name, + java.lang.String kana, + java.lang.String mail, + java.lang.String pass, + java.lang.String depId) +
      社員テーブルの社員IDに合致する情報を更新する
      +
      EmployeeDTOrowMappingEmployee(java.sql.ResultSet rs) +
      DBから取得した検索結果をDTO型のインスタンスにセットし、リストに格納する
      +
      java.util.List<EmployeeDTO>selectAll() +
      社員テーブルの情報を全件取得する
      +
      java.util.List<EmployeeDTO>selectById(java.lang.String id) +
      社員テーブルから社員IDに合致する情報を取得する
      +
      +
        +
      • + + +

        クラスから継承されたメソッド java.lang.Object

        +equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      フィールドの詳細

      + + + +
        +
      • +

        con

        +
        public java.sql.Connection con
        +
        DBコネクション
        +
      • +
      +
    • +
    + +
      +
    • + + +

      コンストラクタの詳細

      + + + +
        +
      • +

        EmployeeDAO

        +
        public EmployeeDAO(java.sql.Connection con)
        +
        インスタンス生成時DBコネクション
        +
        +
        例外:
        +
        java.lang.ClassNotFoundException
        +
        java.sql.SQLException
        +
        +
      • +
      +
    • +
    + +
      +
    • + + +

      メソッドの詳細

      + + + +
        +
      • +

        selectAll

        +
        public java.util.List<EmployeeDTO> selectAll()
        +                                      throws java.sql.SQLException,
        +                                             java.lang.ClassNotFoundException
        +
        社員テーブルの情報を全件取得する
        +
        +
        戻り値:
        +
        検索結果
        +
        例外:
        +
        java.sql.SQLException
        +
        java.lang.ClassNotFoundException
        +
        +
      • +
      + + + +
        +
      • +

        selectById

        +
        public java.util.List<EmployeeDTO> selectById(java.lang.String id)
        +                                       throws java.sql.SQLException,
        +                                              java.lang.ClassNotFoundException,
        +                                              java.lang.NumberFormatException
        +
        社員テーブルから社員IDに合致する情報を取得する
        +
        +
        パラメータ:
        +
        id - 社員ID
        +
        戻り値:
        +
        検索結果
        +
        例外:
        +
        java.sql.SQLException
        +
        java.lang.ClassNotFoundException
        +
        java.lang.NumberFormatException
        +
        +
      • +
      + + + +
        +
      • +

        empInsert

        +
        public void empInsert(java.lang.String name,
        +                      java.lang.String kana,
        +                      java.lang.String mail,
        +                      java.lang.String pass,
        +                      java.lang.String depId)
        +               throws java.lang.NumberFormatException,
        +                      java.sql.SQLException,
        +                      java.lang.ClassNotFoundException
        +
        社員テーブルに新規登録する
        +
        +
        パラメータ:
        +
        name - 社員名
        +
        kana - 社員名カナ
        +
        mail - メールアドレス
        +
        pass - パスワード
        +
        depId - 部署ID
        +
        例外:
        +
        java.lang.NumberFormatException
        +
        java.sql.SQLException
        +
        java.lang.ClassNotFoundException
        +
        +
      • +
      + + + +
        +
      • +

        empUpdate

        +
        public void empUpdate(java.lang.String id,
        +                      java.lang.String name,
        +                      java.lang.String kana,
        +                      java.lang.String mail,
        +                      java.lang.String pass,
        +                      java.lang.String depId)
        +               throws java.lang.ClassNotFoundException,
        +                      java.sql.SQLException
        +
        社員テーブルの社員IDに合致する情報を更新する
        +
        +
        パラメータ:
        +
        id - 社員ID
        +
        name - 社員名
        +
        kana - 社員名カナ
        +
        mail - メールアドレス
        +
        pass - パスワード
        +
        depId - 部署ID
        +
        例外:
        +
        java.lang.ClassNotFoundException
        +
        java.sql.SQLException
        +
        +
      • +
      + + + +
        +
      • +

        empDelete

        +
        public void empDelete(java.lang.String id)
        +               throws java.lang.ClassNotFoundException,
        +                      java.sql.SQLException
        +
        社員テーブルの社員IDに合致する情報を削除する
        +
        +
        パラメータ:
        +
        id - 社員ID
        +
        例外:
        +
        java.lang.ClassNotFoundException
        +
        java.sql.SQLException
        +
        +
      • +
      + + + +
        +
      • +

        rowMappingEmployee

        +
        public EmployeeDTO rowMappingEmployee(java.sql.ResultSet rs)
        +                               throws java.sql.SQLException
        +
        DBから取得した検索結果をDTO型のインスタンスにセットし、リストに格納する
        +
        +
        パラメータ:
        +
        rs - 検索結果
        +
        戻り値:
        +
        リスト
        +
        例外:
        +
        java.sql.SQLException
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/dao/package-frame.html b/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/dao/package-frame.html new file mode 100644 index 0000000..7947df9 --- /dev/null +++ b/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/dao/package-frame.html @@ -0,0 +1,22 @@ + + + + + + +com.rhizome.example.dao + + + + + +

com.rhizome.example.dao

+
+

クラス

+ +
+ + diff --git a/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/dao/package-summary.html b/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/dao/package-summary.html new file mode 100644 index 0000000..4b1519c --- /dev/null +++ b/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/dao/package-summary.html @@ -0,0 +1,145 @@ + + + + + + +com.rhizome.example.dao + + + + + + + + + + + +
+

パッケージ com.rhizome.example.dao

+
+
+ +
+ + + + + + diff --git a/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/dao/package-tree.html b/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/dao/package-tree.html new file mode 100644 index 0000000..ce8f697 --- /dev/null +++ b/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/dao/package-tree.html @@ -0,0 +1,137 @@ + + + + + + +com.rhizome.example.dao クラス階層 + + + + + + + + + + + +
+

パッケージcom.rhizome.example.daoの階層

+パッケージ階層: + +
+
+

クラス階層

+ +
+ + + + + + diff --git a/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/dto/DepartmentDTO.html b/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/dto/DepartmentDTO.html new file mode 100644 index 0000000..9dd800c --- /dev/null +++ b/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/dto/DepartmentDTO.html @@ -0,0 +1,337 @@ + + + + + + +DepartmentDTO + + + + + + + + + + + + +
+
com.rhizome.example.dto
+

クラス DepartmentDTO

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • com.rhizome.example.dto.DepartmentDTO
    • +
    +
  • +
+
+
    +
  • +
    +
    +
    public class DepartmentDTO
    +extends java.lang.Object
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      コンストラクタのサマリー

      + + + + + + + + +
      コンストラクタ 
      コンストラクタと説明
      DepartmentDTO() 
      +
    • +
    + + +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      コンストラクタの詳細

      + + + +
        +
      • +

        DepartmentDTO

        +
        public DepartmentDTO()
        +
      • +
      +
    • +
    + +
      +
    • + + +

      メソッドの詳細

      + + + +
        +
      • +

        getIdDepartment

        +
        public int getIdDepartment()
        +
        役職IDゲッター
        +
        +
        戻り値:
        +
        役職ID
        +
        +
      • +
      + + + +
        +
      • +

        setIdDepartment

        +
        public void setIdDepartment(int idDepartment)
        +
        役職IDセッター
        +
        +
        パラメータ:
        +
        idDepartment - 役職ID
        +
        +
      • +
      + + + +
        +
      • +

        getNmDepartment

        +
        public java.lang.String getNmDepartment()
        +
        役職名ゲッター
        +
        +
        戻り値:
        +
        役職名
        +
        +
      • +
      + + + +
        +
      • +

        setNmDepartment

        +
        public void setNmDepartment(java.lang.String nmDepartment)
        +
        役職名セッター
        +
        +
        パラメータ:
        +
        nmDepartment - 役職名
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/dto/EmployeeDTO.html b/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/dto/EmployeeDTO.html new file mode 100644 index 0000000..794302a --- /dev/null +++ b/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/dto/EmployeeDTO.html @@ -0,0 +1,461 @@ + + + + + + +EmployeeDTO + + + + + + + + + + + + +
+
com.rhizome.example.dto
+

クラス EmployeeDTO

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • com.rhizome.example.dto.EmployeeDTO
    • +
    +
  • +
+
+
    +
  • +
    +
    +
    public class EmployeeDTO
    +extends java.lang.Object
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      コンストラクタの詳細

      + + + +
        +
      • +

        EmployeeDTO

        +
        public EmployeeDTO()
        +
      • +
      +
    • +
    + +
      +
    • + + +

      メソッドの詳細

      + + + +
        +
      • +

        getIdEmployee

        +
        public int getIdEmployee()
        +
        +
        戻り値:
        +
        社員ID
        +
        +
      • +
      + + + +
        +
      • +

        setIdEmployee

        +
        public void setIdEmployee(int idEmployee)
        +
        +
        パラメータ:
        +
        idEmployee - 社員ID
        +
        +
      • +
      + + + +
        +
      • +

        getNmEmployee

        +
        public java.lang.String getNmEmployee()
        +
        +
        戻り値:
        +
        社員名
        +
        +
      • +
      + + + +
        +
      • +

        setNmEmployee

        +
        public void setNmEmployee(java.lang.String nmEmployee)
        +
        +
        パラメータ:
        +
        nmEmployee - 社員名
        +
        +
      • +
      + + + +
        +
      • +

        getKnEmployee

        +
        public java.lang.String getKnEmployee()
        +
        +
        戻り値:
        +
        社員名カナ
        +
        +
      • +
      + + + +
        +
      • +

        setKnEmployee

        +
        public void setKnEmployee(java.lang.String knEmployee)
        +
        +
        パラメータ:
        +
        knEmployee - 社員名カナ
        +
        +
      • +
      + + + +
        +
      • +

        getMailAddress

        +
        public java.lang.String getMailAddress()
        +
        +
        戻り値:
        +
        メールアドレス
        +
        +
      • +
      + + + +
        +
      • +

        setMailAddress

        +
        public void setMailAddress(java.lang.String mailAddress)
        +
        +
        パラメータ:
        +
        mailAddress - メールアドレス
        +
        +
      • +
      + + + +
        +
      • +

        getPassword

        +
        public java.lang.String getPassword()
        +
        +
        戻り値:
        +
        パスワード
        +
        +
      • +
      + + + +
        +
      • +

        setPassword

        +
        public void setPassword(java.lang.String password)
        +
        +
        パラメータ:
        +
        password - パスワード
        +
        +
      • +
      + + + +
        +
      • +

        getIdDepartment

        +
        public int getIdDepartment()
        +
        +
        戻り値:
        +
        役職ID
        +
        +
      • +
      + + + +
        +
      • +

        setIdDepartment

        +
        public void setIdDepartment(int idDepartment)
        +
        +
        パラメータ:
        +
        idDepartment - 役職ID
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/dto/package-frame.html b/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/dto/package-frame.html new file mode 100644 index 0000000..5ccf0c6 --- /dev/null +++ b/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/dto/package-frame.html @@ -0,0 +1,22 @@ + + + + + + +com.rhizome.example.dto + + + + + +

com.rhizome.example.dto

+
+

クラス

+ +
+ + diff --git a/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/dto/package-summary.html b/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/dto/package-summary.html new file mode 100644 index 0000000..35f966c --- /dev/null +++ b/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/dto/package-summary.html @@ -0,0 +1,145 @@ + + + + + + +com.rhizome.example.dto + + + + + + + + + + + +
+

パッケージ com.rhizome.example.dto

+
+
+ +
+ + + + + + diff --git a/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/dto/package-tree.html b/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/dto/package-tree.html new file mode 100644 index 0000000..c62592d --- /dev/null +++ b/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/dto/package-tree.html @@ -0,0 +1,137 @@ + + + + + + +com.rhizome.example.dto クラス階層 + + + + + + + + + + + +
+

パッケージcom.rhizome.example.dtoの階層

+パッケージ階層: + +
+
+

クラス階層

+ +
+ + + + + + diff --git a/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/main/Main.html b/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/main/Main.html new file mode 100644 index 0000000..4231d39 --- /dev/null +++ b/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/main/Main.html @@ -0,0 +1,576 @@ + + + + + + +Main + + + + + + + + + + + + +
+
com.rhizome.example.main
+

クラス Main

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • com.rhizome.example.main.Main
    • +
    +
  • +
+
+
    +
  • +
    +
    +
    public class Main
    +extends java.lang.Object
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      コンストラクタのサマリー

      + + + + + + + + +
      コンストラクタ 
      コンストラクタと説明
      Main() 
      +
    • +
    + +
      +
    • + + +

      メソッドのサマリー

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      すべてのメソッド staticメソッド インスタンス・メソッド concreteメソッド 
      修飾子とタイプメソッドと説明
      static voiddepDelete() +
      部署テーブルの情報を削除する
      +
      static voiddepInsert() +
      部署テーブルに情報を登録する
      +
      static voiddepSelect() +
      部署テーブルから情報を検索する
      +
      static voiddepUpdate() +
      部署テーブルの情報を更新する
      +
      voiddispSelectDep(java.util.List<DepartmentDTO> list) +
      部署テーブル情報を表示する
      +
      voiddispSelectEmp(java.util.List<EmployeeDTO> list) +
      社員テーブル情報を表示する
      +
      static voidempDelete() +
      社員テーブルの情報を削除する
      +
      static voidempInsert() +
      社員テーブルに情報を登録する
      +
      static voidempSelect() +
      社員テーブルから情報を検索する
      +
      static voidempUpdate() +
      社員テーブルの情報を更新する
      +
      static java.lang.StringinputCheck(java.lang.String titleName, + boolean flg) +
      入力値を判定し、返却する
      +
      static voidmain(java.lang.String[] args) +
      処理開始位置
      +
      voidstart() +
      処理選択を行う
      +
      static java.lang.StringtargetTableName(int tblFlg) +
      フラグを判定し、テーブル名を取得する
      +
      +
        +
      • + + +

        クラスから継承されたメソッド java.lang.Object

        +equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      コンストラクタの詳細

      + + + +
        +
      • +

        Main

        +
        public Main()
        +
      • +
      +
    • +
    + +
      +
    • + + +

      メソッドの詳細

      + + + +
        +
      • +

        main

        +
        public static void main(java.lang.String[] args)
        +
        処理開始位置
        +
        +
        パラメータ:
        +
        args -
        +
        +
      • +
      + + + +
        +
      • +

        start

        +
        public void start()
        +           throws java.lang.ClassNotFoundException,
        +                  java.sql.SQLException
        +
        処理選択を行う
        +
        +
        例外:
        +
        java.lang.ClassNotFoundException
        +
        java.sql.SQLException
        +
        +
      • +
      + + + +
        +
      • +

        empSelect

        +
        public static void empSelect()
        +                      throws java.lang.ClassNotFoundException,
        +                             java.sql.SQLException
        +
        社員テーブルから情報を検索する
        +
        +
        例外:
        +
        java.lang.ClassNotFoundException
        +
        java.sql.SQLException
        +
        +
      • +
      + + + +
        +
      • +

        depSelect

        +
        public static void depSelect()
        +                      throws java.lang.ClassNotFoundException,
        +                             java.sql.SQLException
        +
        部署テーブルから情報を検索する
        +
        +
        例外:
        +
        java.lang.ClassNotFoundException
        +
        java.sql.SQLException
        +
        +
      • +
      + + + +
        +
      • +

        empInsert

        +
        public static void empInsert()
        +                      throws java.lang.NumberFormatException,
        +                             java.lang.ClassNotFoundException,
        +                             java.sql.SQLException
        +
        社員テーブルに情報を登録する
        +
        +
        例外:
        +
        java.lang.NumberFormatException
        +
        java.lang.ClassNotFoundException
        +
        java.sql.SQLException
        +
        +
      • +
      + + + +
        +
      • +

        depInsert

        +
        public static void depInsert()
        +                      throws java.lang.ClassNotFoundException,
        +                             java.sql.SQLException
        +
        部署テーブルに情報を登録する
        +
        +
        例外:
        +
        java.lang.ClassNotFoundException
        +
        java.sql.SQLException
        +
        +
      • +
      + + + +
        +
      • +

        empUpdate

        +
        public static void empUpdate()
        +                      throws java.lang.NumberFormatException,
        +                             java.lang.ClassNotFoundException,
        +                             java.sql.SQLException
        +
        社員テーブルの情報を更新する
        +
        +
        例外:
        +
        java.lang.NumberFormatException
        +
        java.lang.ClassNotFoundException
        +
        java.sql.SQLException
        +
        +
      • +
      + + + +
        +
      • +

        depUpdate

        +
        public static void depUpdate()
        +                      throws java.lang.ClassNotFoundException,
        +                             java.sql.SQLException
        +
        部署テーブルの情報を更新する
        +
        +
        例外:
        +
        java.lang.ClassNotFoundException
        +
        java.sql.SQLException
        +
        +
      • +
      + + + +
        +
      • +

        empDelete

        +
        public static void empDelete()
        +                      throws java.lang.NumberFormatException,
        +                             java.lang.ClassNotFoundException,
        +                             java.sql.SQLException
        +
        社員テーブルの情報を削除する
        +
        +
        例外:
        +
        java.lang.NumberFormatException
        +
        java.lang.ClassNotFoundException
        +
        java.sql.SQLException
        +
        +
      • +
      + + + +
        +
      • +

        depDelete

        +
        public static void depDelete()
        +                      throws java.lang.ClassNotFoundException,
        +                             java.sql.SQLException
        +
        部署テーブルの情報を削除する
        +
        +
        例外:
        +
        java.lang.ClassNotFoundException
        +
        java.sql.SQLException
        +
        +
      • +
      + + + +
        +
      • +

        targetTableName

        +
        public static java.lang.String targetTableName(int tblFlg)
        +
        フラグを判定し、テーブル名を取得する
        +
        +
        パラメータ:
        +
        tblFlg - テーブル名判定用フラグ
        +
        戻り値:
        +
        テーブル名
        +
        +
      • +
      + + + +
        +
      • +

        inputCheck

        +
        public static java.lang.String inputCheck(java.lang.String titleName,
        +                                          boolean flg)
        +
        入力値を判定し、返却する
        +
        +
        パラメータ:
        +
        titleName - 入力項目名
        +
        flg - 数値チェック可否フラグ
        +
        戻り値:
        +
        +
      • +
      + + + +
        +
      • +

        dispSelectEmp

        +
        public void dispSelectEmp(java.util.List<EmployeeDTO> list)
        +
        社員テーブル情報を表示する
        +
        +
        パラメータ:
        +
        list - 社員情報リスト
        +
        +
      • +
      + + + +
        +
      • +

        dispSelectDep

        +
        public void dispSelectDep(java.util.List<DepartmentDTO> list)
        +
        部署テーブル情報を表示する
        +
        +
        パラメータ:
        +
        list - 部署情報リスト
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/main/package-frame.html b/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/main/package-frame.html new file mode 100644 index 0000000..e828f71 --- /dev/null +++ b/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/main/package-frame.html @@ -0,0 +1,21 @@ + + + + + + +com.rhizome.example.main + + + + + +

com.rhizome.example.main

+
+

クラス

+ +
+ + diff --git a/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/main/package-summary.html b/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/main/package-summary.html new file mode 100644 index 0000000..1c75a6f --- /dev/null +++ b/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/main/package-summary.html @@ -0,0 +1,141 @@ + + + + + + +com.rhizome.example.main + + + + + + + + + + + +
+

パッケージ com.rhizome.example.main

+
+
+
    +
  • + + + + + + + + + + + + +
    クラスのサマリー 
    クラス説明
    Main 
    +
  • +
+
+ + + + + + diff --git a/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/main/package-tree.html b/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/main/package-tree.html new file mode 100644 index 0000000..17d5d00 --- /dev/null +++ b/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/main/package-tree.html @@ -0,0 +1,136 @@ + + + + + + +com.rhizome.example.main クラス階層 + + + + + + + + + + + +
+

パッケージcom.rhizome.example.mainの階層

+パッケージ階層: + +
+
+

クラス階層

+
    +
  • java.lang.Object +
      +
    • com.rhizome.example.main.Main
    • +
    +
  • +
+
+ + + + + + diff --git a/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/util/DbUtil.html b/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/util/DbUtil.html new file mode 100644 index 0000000..1d627c5 --- /dev/null +++ b/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/util/DbUtil.html @@ -0,0 +1,271 @@ + + + + + + +DbUtil + + + + + + + + + + + + +
+
com.rhizome.example.util
+

クラス DbUtil

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • com.rhizome.example.util.DbUtil
    • +
    +
  • +
+
+
    +
  • +
    +
    +
    public class DbUtil
    +extends java.lang.Object
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      メソッドのサマリー

      + + + + + + + + + + + + + + +
      すべてのメソッド staticメソッド concreteメソッド 
      修飾子とタイプメソッドと説明
      static voidcloseConnection(java.sql.Connection con) +
      DBとのコネクションを切断
      +
      static java.sql.ConnectiongetConnection() +
      DBのコネクションを取得
      +
      +
        +
      • + + +

        クラスから継承されたメソッド java.lang.Object

        +equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      メソッドの詳細

      + + + +
        +
      • +

        getConnection

        +
        public static java.sql.Connection getConnection()
        +                                         throws java.lang.ClassNotFoundException,
        +                                                java.sql.SQLException
        +
        DBのコネクションを取得
        +
        +
        戻り値:
        +
        DBコネクション
        +
        例外:
        +
        java.lang.ClassNotFoundException
        +
        java.sql.SQLException
        +
        +
      • +
      + + + +
        +
      • +

        closeConnection

        +
        public static void closeConnection(java.sql.Connection con)
        +                            throws java.sql.SQLException
        +
        DBとのコネクションを切断
        +
        +
        パラメータ:
        +
        con - DBコネクション
        +
        例外:
        +
        java.sql.SQLException
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + + + diff --git a/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/util/package-frame.html b/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/util/package-frame.html new file mode 100644 index 0000000..918ebe5 --- /dev/null +++ b/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/util/package-frame.html @@ -0,0 +1,21 @@ + + + + + + +com.rhizome.example.util + + + + + +

com.rhizome.example.util

+
+

クラス

+ +
+ + diff --git a/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/util/package-summary.html b/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/util/package-summary.html new file mode 100644 index 0000000..20f3aed --- /dev/null +++ b/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/util/package-summary.html @@ -0,0 +1,141 @@ + + + + + + +com.rhizome.example.util + + + + + + + + + + + +
+

パッケージ com.rhizome.example.util

+
+
+
    +
  • + + + + + + + + + + + + +
    クラスのサマリー 
    クラス説明
    DbUtil 
    +
  • +
+
+ + + + + + diff --git a/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/util/package-tree.html b/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/util/package-tree.html new file mode 100644 index 0000000..a6bf6be --- /dev/null +++ b/CUI_社員メンテナンス_Simple/doc/com/rhizome/example/util/package-tree.html @@ -0,0 +1,136 @@ + + + + + + +com.rhizome.example.util クラス階層 + + + + + + + + + + + +
+

パッケージcom.rhizome.example.utilの階層

+パッケージ階層: + +
+
+

クラス階層

+
    +
  • java.lang.Object +
      +
    • com.rhizome.example.util.DbUtil
    • +
    +
  • +
+
+ + + + + + diff --git a/CUI_社員メンテナンス_Simple/doc/constant-values.html b/CUI_社員メンテナンス_Simple/doc/constant-values.html new file mode 100644 index 0000000..222a481 --- /dev/null +++ b/CUI_社員メンテナンス_Simple/doc/constant-values.html @@ -0,0 +1,123 @@ + + + + + + +定数フィールド値 + + + + + + + + + + + +
+

定数フィールド値

+

コンテンツ

+
+ + + + + + diff --git a/CUI_社員メンテナンス_Simple/doc/deprecated-list.html b/CUI_社員メンテナンス_Simple/doc/deprecated-list.html new file mode 100644 index 0000000..85561a4 --- /dev/null +++ b/CUI_社員メンテナンス_Simple/doc/deprecated-list.html @@ -0,0 +1,123 @@ + + + + + + +非推奨のリスト + + + + + + + + + + + +
+

非推奨のAPI

+

コンテンツ

+
+ + + + + + diff --git a/CUI_社員メンテナンス_Simple/doc/help-doc.html b/CUI_社員メンテナンス_Simple/doc/help-doc.html new file mode 100644 index 0000000..c0dcd7d --- /dev/null +++ b/CUI_社員メンテナンス_Simple/doc/help-doc.html @@ -0,0 +1,224 @@ + + + + + + +APIヘルプ + + + + + + + + + + + +
+

APIドキュメントの構成

+
このAPI (Application Programming Interface)ドキュメントには、次に説明するナビゲーション・バーにある項目に対応するページが含まれます。
+
+
+
    +
  • +

    概要

    +

    概要ページはAPIドキュメントのフロント・ページで、各パッケージのサマリーを含む全パッケージのリストが表示されます。一連のパッケージの全体的な説明も表示されます。

    +
  • +
  • +

    パッケージ

    +

    各パッケージには、そのパッケージのクラスおよびインタフェースのリストと、それぞれのサマリーを含むページがあります。このページは6つのカテゴリで構成されます。

    +
      +
    • インタフェース(イタリック)
    • +
    • クラス
    • +
    • 列挙型
    • +
    • 例外
    • +
    • エラー
    • +
    • 注釈型
    • +
    +
  • +
  • +

    クラスまたはインタフェース

    +

    各クラス、インタフェース、ネストされたクラスおよびネストされたインタフェースには個別のページがあります。各ページには次のように、クラスまたはインタフェースの説明と、サマリー表およびメンバーの詳細説明が含まれます。

    +
      +
    • クラス階層表示
    • +
    • 直系のサブクラス
    • +
    • 既知のサブインタフェースのリスト
    • +
    • 既知の実装クラスのリスト
    • +
    • クラスまたはインタフェースの宣言
    • +
    • クラスまたはインタフェースの説明
    • +
    +
      +
    • ネストされたクラスのサマリー
    • +
    • フィールドのサマリー
    • +
    • コンストラクタのサマリー
    • +
    • メソッドのサマリー
    • +
    +
      +
    • フィールドの詳細
    • +
    • コンストラクタの詳細
    • +
    • メソッドの詳細
    • +
    +

    各サマリー・エントリには、その項目の詳細説明の中から1行目の文が表示されます。サマリー・エントリはアルファベット順ですが、詳細説明はソース・コードに現れる順になっています。これによって、プログラマが設定した論理的なグループ分けが保持されます。

    +
  • +
  • +

    注釈型

    +

    各注釈型には、それ自身の個別のページと次のセクションがあります:

    +
      +
    • 注釈型の宣言
    • +
    • 注釈型の説明
    • +
    • 必須要素のサマリー
    • +
    • 任意要素のサマリー
    • +
    • 要素の詳細
    • +
    +
  • +
  • +

    列挙型

    +

    各列挙型には、それ自身の個別のページと次のセクションがあります:

    +
      +
    • 列挙型の宣言
    • +
    • 列挙型の説明
    • +
    • 列挙型定数のサマリー
    • +
    • 列挙型定数の詳細
    • +
    +
  • +
  • +

    階層ツリー(クラス階層)

    +

    すべてのパッケージにはクラス階層ページがあり、さらに各パッケージの階層があります。各階層ページは、クラスのリストとインタフェースのリストを含みます。クラスはjava.lang.Objectを開始点とする継承構造で編成されます。インタフェースは、java.lang.Objectからは継承しません。

    +
      +
    • 概要ページを表示しているときに「階層ツリー」をクリックすると、全パッケージの階層が表示されます。
    • +
    • 特定のパッケージ、クラスまたはインタフェースを表示しているときに「階層ツリー」をクリックすると、該当するパッケージのみの階層が表示されます。
    • +
    +
  • +
  • +

    非推奨のAPI

    +

    非推奨のAPIページは、非推奨のAPIをすべてリストします。非推奨のAPIとは、機能改良などの理由から使用をお薦めできなくなったAPIのことで、通常はそれに代わるAPIが提供されます。非推奨のAPIは今後の実装で削除される可能性があります。

    +
  • +
  • +

    索引

    +

    索引には、すべてのクラス、インタフェース、コンストラクタ、メソッドおよびフィールドのアルファベット順のリストが含まれます。

    +
  • +
  • +

    前/次

    +

    これらのリンクにより、前または次のクラス、インタフェース、パッケージまたは関連ページへ移動できます。

    +
  • +
  • +

    フレーム/フレームなし

    +

    これらのリンクはHTMLフレームの表示と非表示を切り替えます。すべてのページはフレームありでも、フレームなしでも表示できます。

    +
  • +
  • +

    すべてのクラス

    +

    すべてのクラスリンクには、すべてのクラスおよびインタフェース(非staticのネストされた型を除く)が表示されます。

    +
  • +
  • +

    直列化された形式

    +

    直列化可能または外部化可能な各クラスは、直列化フィールドとメソッドの説明を含みます。この情報は、APIを使用する開発者ではなく、再実装を行う担当者に役立ちます。ナビゲーション・バーにリンクがない場合、直列化されたクラスに移動して、クラス記述の「関連項目」セクションにある「直列化された形式」をクリックすることにより、この情報を表示できます。

    +
  • +
  • +

    定数フィールド値

    +

    定数フィールド値ページには、static finalフィールドとその値のリストがあります。

    +
  • +
+このヘルプ・ファイルは、標準docletを使用して生成されたAPIドキュメントに適用されます。
+ + + + + + diff --git a/CUI_社員メンテナンス_Simple/doc/index-all.html b/CUI_社員メンテナンス_Simple/doc/index-all.html new file mode 100644 index 0000000..09f5d5c --- /dev/null +++ b/CUI_社員メンテナンス_Simple/doc/index-all.html @@ -0,0 +1,368 @@ + + + + + + +索引 + + + + + + + + + + + +
C D E G I M R S T  + + +

C

+
+
closeConnection(Connection) - クラス のstaticメソッドcom.rhizome.example.util.DbUtil
+
+
DBとのコネクションを切断
+
+
com.rhizome.example.dao - パッケージ com.rhizome.example.dao
+
 
+
com.rhizome.example.dto - パッケージ com.rhizome.example.dto
+
 
+
com.rhizome.example.main - パッケージ com.rhizome.example.main
+
 
+
com.rhizome.example.util - パッケージ com.rhizome.example.util
+
 
+
con - クラス の変数com.rhizome.example.dao.DepartmentDAO
+
+
DBコネクション
+
+
con - クラス の変数com.rhizome.example.dao.EmployeeDAO
+
+
DBコネクション
+
+
+ + + +

D

+
+
DbUtil - com.rhizome.example.utilのクラス
+
 
+
DepartmentDAO - com.rhizome.example.daoのクラス
+
 
+
DepartmentDAO(Connection) - クラス のコンストラクタcom.rhizome.example.dao.DepartmentDAO
+
+
インスタンス生成時DBコネクション
+
+
DepartmentDTO - com.rhizome.example.dtoのクラス
+
 
+
DepartmentDTO() - クラス のコンストラクタcom.rhizome.example.dto.DepartmentDTO
+
 
+
depDelete(String) - クラス のメソッドcom.rhizome.example.dao.DepartmentDAO
+
+
部署テーブルの部署IDに合致する情報を削除する
+
+
depDelete() - クラス のstaticメソッドcom.rhizome.example.main.Main
+
+
部署テーブルの情報を削除する
+
+
depInsert(String) - クラス のメソッドcom.rhizome.example.dao.DepartmentDAO
+
+
部署テーブルに新規登録する
+
+
depInsert() - クラス のstaticメソッドcom.rhizome.example.main.Main
+
+
部署テーブルに情報を登録する
+
+
depSelect() - クラス のstaticメソッドcom.rhizome.example.main.Main
+
+
部署テーブルから情報を検索する
+
+
depUpdate(String, String) - クラス のメソッドcom.rhizome.example.dao.DepartmentDAO
+
+
部署テーブルの部署IDに合致する情報を更新する
+
+
depUpdate() - クラス のstaticメソッドcom.rhizome.example.main.Main
+
+
部署テーブルの情報を更新する
+
+
dispSelectDep(List<DepartmentDTO>) - クラス のメソッドcom.rhizome.example.main.Main
+
+
部署テーブル情報を表示する
+
+
dispSelectEmp(List<EmployeeDTO>) - クラス のメソッドcom.rhizome.example.main.Main
+
+
社員テーブル情報を表示する
+
+
+ + + +

E

+
+
empDelete(String) - クラス のメソッドcom.rhizome.example.dao.EmployeeDAO
+
+
社員テーブルの社員IDに合致する情報を削除する
+
+
empDelete() - クラス のstaticメソッドcom.rhizome.example.main.Main
+
+
社員テーブルの情報を削除する
+
+
empInsert(String, String, String, String, String) - クラス のメソッドcom.rhizome.example.dao.EmployeeDAO
+
+
社員テーブルに新規登録する
+
+
empInsert() - クラス のstaticメソッドcom.rhizome.example.main.Main
+
+
社員テーブルに情報を登録する
+
+
EmployeeDAO - com.rhizome.example.daoのクラス
+
 
+
EmployeeDAO(Connection) - クラス のコンストラクタcom.rhizome.example.dao.EmployeeDAO
+
+
インスタンス生成時DBコネクション
+
+
EmployeeDTO - com.rhizome.example.dtoのクラス
+
 
+
EmployeeDTO() - クラス のコンストラクタcom.rhizome.example.dto.EmployeeDTO
+
 
+
empSelect() - クラス のstaticメソッドcom.rhizome.example.main.Main
+
+
社員テーブルから情報を検索する
+
+
empUpdate(String, String, String, String, String, String) - クラス のメソッドcom.rhizome.example.dao.EmployeeDAO
+
+
社員テーブルの社員IDに合致する情報を更新する
+
+
empUpdate() - クラス のstaticメソッドcom.rhizome.example.main.Main
+
+
社員テーブルの情報を更新する
+
+
+ + + +

G

+
+
getConnection() - クラス のstaticメソッドcom.rhizome.example.util.DbUtil
+
+
DBのコネクションを取得
+
+
getIdDepartment() - クラス のメソッドcom.rhizome.example.dto.DepartmentDTO
+
+
役職IDゲッター
+
+
getIdDepartment() - クラス のメソッドcom.rhizome.example.dto.EmployeeDTO
+
 
+
getIdEmployee() - クラス のメソッドcom.rhizome.example.dto.EmployeeDTO
+
 
+
getKnEmployee() - クラス のメソッドcom.rhizome.example.dto.EmployeeDTO
+
 
+
getMailAddress() - クラス のメソッドcom.rhizome.example.dto.EmployeeDTO
+
 
+
getNmDepartment() - クラス のメソッドcom.rhizome.example.dto.DepartmentDTO
+
+
役職名ゲッター
+
+
getNmEmployee() - クラス のメソッドcom.rhizome.example.dto.EmployeeDTO
+
 
+
getPassword() - クラス のメソッドcom.rhizome.example.dto.EmployeeDTO
+
 
+
+ + + +

I

+
+
inputCheck(String, boolean) - クラス のstaticメソッドcom.rhizome.example.main.Main
+
+
入力値を判定し、返却する
+
+
+ + + +

M

+
+
Main - com.rhizome.example.mainのクラス
+
 
+
Main() - クラス のコンストラクタcom.rhizome.example.main.Main
+
 
+
main(String[]) - クラス のstaticメソッドcom.rhizome.example.main.Main
+
+
処理開始位置
+
+
+ + + +

R

+
+
rowMappingDepartment(ResultSet) - クラス のメソッドcom.rhizome.example.dao.DepartmentDAO
+
+
DBから取得した検索結果をDTO型のインスタンスにセットし、リストに格納する
+
+
rowMappingEmployee(ResultSet) - クラス のメソッドcom.rhizome.example.dao.EmployeeDAO
+
+
DBから取得した検索結果をDTO型のインスタンスにセットし、リストに格納する
+
+
+ + + +

S

+
+
selectAll() - クラス のメソッドcom.rhizome.example.dao.DepartmentDAO
+
+
部署テーブルの情報を全件取得する
+
+
selectAll() - クラス のメソッドcom.rhizome.example.dao.EmployeeDAO
+
+
社員テーブルの情報を全件取得する
+
+
selectById(String) - クラス のメソッドcom.rhizome.example.dao.DepartmentDAO
+
+
部署テーブルから部署IDに合致する情報を取得する
+
+
selectById(String) - クラス のメソッドcom.rhizome.example.dao.EmployeeDAO
+
+
社員テーブルから社員IDに合致する情報を取得する
+
+
setIdDepartment(int) - クラス のメソッドcom.rhizome.example.dto.DepartmentDTO
+
+
役職IDセッター
+
+
setIdDepartment(int) - クラス のメソッドcom.rhizome.example.dto.EmployeeDTO
+
 
+
setIdEmployee(int) - クラス のメソッドcom.rhizome.example.dto.EmployeeDTO
+
 
+
setKnEmployee(String) - クラス のメソッドcom.rhizome.example.dto.EmployeeDTO
+
 
+
setMailAddress(String) - クラス のメソッドcom.rhizome.example.dto.EmployeeDTO
+
 
+
setNmDepartment(String) - クラス のメソッドcom.rhizome.example.dto.DepartmentDTO
+
+
役職名セッター
+
+
setNmEmployee(String) - クラス のメソッドcom.rhizome.example.dto.EmployeeDTO
+
 
+
setPassword(String) - クラス のメソッドcom.rhizome.example.dto.EmployeeDTO
+
 
+
start() - クラス のメソッドcom.rhizome.example.main.Main
+
+
処理選択を行う
+
+
+ + + +

T

+
+
targetTableName(int) - クラス のstaticメソッドcom.rhizome.example.main.Main
+
+
フラグを判定し、テーブル名を取得する
+
+
+C D E G I M R S T 
+ + + + + + diff --git a/CUI_社員メンテナンス_Simple/doc/index.html b/CUI_社員メンテナンス_Simple/doc/index.html new file mode 100644 index 0000000..1d46d9b --- /dev/null +++ b/CUI_社員メンテナンス_Simple/doc/index.html @@ -0,0 +1,76 @@ + + + + + + +生成されたドキュメント(タイトルなし) + + + + + + + + + +<noscript> +<div>ブラウザのJavaScriptが無効になっています。</div> +</noscript> +<h2>フレーム関連のアラート</h2> +<p>このドキュメントはフレーム機能を使用して表示するように作成されています。フレームを表示できないWebクライアントの場合にこのメッセージが表示されます。<a href="overview-summary.html">フレームに対応していないバージョン</a>にリンクします。</p> + + + diff --git a/CUI_社員メンテナンス_Simple/doc/overview-frame.html b/CUI_社員メンテナンス_Simple/doc/overview-frame.html new file mode 100644 index 0000000..e128b42 --- /dev/null +++ b/CUI_社員メンテナンス_Simple/doc/overview-frame.html @@ -0,0 +1,25 @@ + + + + + + +概要リスト + + + + + + + +

 

+ + diff --git a/CUI_社員メンテナンス_Simple/doc/overview-summary.html b/CUI_社員メンテナンス_Simple/doc/overview-summary.html new file mode 100644 index 0000000..30d09e8 --- /dev/null +++ b/CUI_社員メンテナンス_Simple/doc/overview-summary.html @@ -0,0 +1,146 @@ + + + + + + +概要 + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
パッケージ 
パッケージ説明
com.rhizome.example.dao 
com.rhizome.example.dto 
com.rhizome.example.main 
com.rhizome.example.util 
+
+ + + + + + diff --git a/CUI_社員メンテナンス_Simple/doc/overview-tree.html b/CUI_社員メンテナンス_Simple/doc/overview-tree.html new file mode 100644 index 0000000..8dfcf3a --- /dev/null +++ b/CUI_社員メンテナンス_Simple/doc/overview-tree.html @@ -0,0 +1,144 @@ + + + + + + +クラス階層 + + + + + + + + +
+ + + + + + + +
+ + +
+

すべてのパッケージの階層

+パッケージ階層: + +
+
+

クラス階層

+ +
+ +
+ + + + + + + +
+ + + + diff --git a/CUI_社員メンテナンス_Simple/doc/package-list b/CUI_社員メンテナンス_Simple/doc/package-list new file mode 100644 index 0000000..e606af2 --- /dev/null +++ b/CUI_社員メンテナンス_Simple/doc/package-list @@ -0,0 +1,4 @@ +com.rhizome.example.dao +com.rhizome.example.dto +com.rhizome.example.main +com.rhizome.example.util diff --git a/CUI_社員メンテナンス_Simple/doc/script.js b/CUI_社員メンテナンス_Simple/doc/script.js new file mode 100644 index 0000000..b346356 --- /dev/null +++ b/CUI_社員メンテナンス_Simple/doc/script.js @@ -0,0 +1,30 @@ +function show(type) +{ + count = 0; + for (var key in methods) { + var row = document.getElementById(key); + if ((methods[key] & type) != 0) { + row.style.display = ''; + row.className = (count++ % 2) ? rowColor : altColor; + } + else + row.style.display = 'none'; + } + updateTabs(type); +} + +function updateTabs(type) +{ + for (var value in tabs) { + var sNode = document.getElementById(tabs[value][0]); + var spanNode = sNode.firstChild; + if (value == type) { + sNode.className = activeTableTab; + spanNode.innerHTML = tabs[value][1]; + } + else { + sNode.className = tableTab; + spanNode.innerHTML = "" + tabs[value][1] + ""; + } + } +} diff --git a/CUI_社員メンテナンス_Simple/doc/stylesheet.css b/CUI_社員メンテナンス_Simple/doc/stylesheet.css new file mode 100644 index 0000000..98055b2 --- /dev/null +++ b/CUI_社員メンテナンス_Simple/doc/stylesheet.css @@ -0,0 +1,574 @@ +/* Javadoc style sheet */ +/* +Overall document style +*/ + +@import url('resources/fonts/dejavu.css'); + +body { + background-color:#ffffff; + color:#353833; + font-family:'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size:14px; + margin:0; +} +a:link, a:visited { + text-decoration:none; + color:#4A6782; +} +a:hover, a:focus { + text-decoration:none; + color:#bb7a2a; +} +a:active { + text-decoration:none; + color:#4A6782; +} +a[name] { + color:#353833; +} +a[name]:hover { + text-decoration:none; + color:#353833; +} +pre { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; +} +h1 { + font-size:20px; +} +h2 { + font-size:18px; +} +h3 { + font-size:16px; + font-style:italic; +} +h4 { + font-size:13px; +} +h5 { + font-size:12px; +} +h6 { + font-size:11px; +} +ul { + list-style-type:disc; +} +code, tt { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + padding-top:4px; + margin-top:8px; + line-height:1.4em; +} +dt code { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + padding-top:4px; +} +table tr td dt code { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + vertical-align:top; + padding-top:4px; +} +sup { + font-size:8px; +} +/* +Document title and Copyright styles +*/ +.clear { + clear:both; + height:0px; + overflow:hidden; +} +.aboutLanguage { + float:right; + padding:0px 21px; + font-size:11px; + z-index:200; + margin-top:-9px; +} +.legalCopy { + margin-left:.5em; +} +.bar a, .bar a:link, .bar a:visited, .bar a:active { + color:#FFFFFF; + text-decoration:none; +} +.bar a:hover, .bar a:focus { + color:#bb7a2a; +} +.tab { + background-color:#0066FF; + color:#ffffff; + padding:8px; + width:5em; + font-weight:bold; +} +/* +Navigation bar styles +*/ +.bar { + background-color:#4D7A97; + color:#FFFFFF; + padding:.8em .5em .4em .8em; + height:auto;/*height:1.8em;*/ + font-size:11px; + margin:0; +} +.topNav { + background-color:#4D7A97; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + height:2.8em; + padding-top:10px; + overflow:hidden; + font-size:12px; +} +.bottomNav { + margin-top:10px; + background-color:#4D7A97; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + height:2.8em; + padding-top:10px; + overflow:hidden; + font-size:12px; +} +.subNav { + background-color:#dee3e9; + float:left; + width:100%; + overflow:hidden; + font-size:12px; +} +.subNav div { + clear:left; + float:left; + padding:0 0 5px 6px; + text-transform:uppercase; +} +ul.navList, ul.subNavList { + float:left; + margin:0 25px 0 0; + padding:0; +} +ul.navList li{ + list-style:none; + float:left; + padding: 5px 6px; + text-transform:uppercase; +} +ul.subNavList li{ + list-style:none; + float:left; +} +.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited { + color:#FFFFFF; + text-decoration:none; + text-transform:uppercase; +} +.topNav a:hover, .bottomNav a:hover { + text-decoration:none; + color:#bb7a2a; + text-transform:uppercase; +} +.navBarCell1Rev { + background-color:#F8981D; + color:#253441; + margin: auto 5px; +} +.skipNav { + position:absolute; + top:auto; + left:-9999px; + overflow:hidden; +} +/* +Page header and footer styles +*/ +.header, .footer { + clear:both; + margin:0 20px; + padding:5px 0 0 0; +} +.indexHeader { + margin:10px; + position:relative; +} +.indexHeader span{ + margin-right:15px; +} +.indexHeader h1 { + font-size:13px; +} +.title { + color:#2c4557; + margin:10px 0; +} +.subTitle { + margin:5px 0 0 0; +} +.header ul { + margin:0 0 15px 0; + padding:0; +} +.footer ul { + margin:20px 0 5px 0; +} +.header ul li, .footer ul li { + list-style:none; + font-size:13px; +} +/* +Heading styles +*/ +div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 { + background-color:#dee3e9; + border:1px solid #d0d9e0; + margin:0 0 6px -8px; + padding:7px 5px; +} +ul.blockList ul.blockList ul.blockList li.blockList h3 { + background-color:#dee3e9; + border:1px solid #d0d9e0; + margin:0 0 6px -8px; + padding:7px 5px; +} +ul.blockList ul.blockList li.blockList h3 { + padding:0; + margin:15px 0; +} +ul.blockList li.blockList h2 { + padding:0px 0 20px 0; +} +/* +Page layout container styles +*/ +.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer { + clear:both; + padding:10px 20px; + position:relative; +} +.indexContainer { + margin:10px; + position:relative; + font-size:12px; +} +.indexContainer h2 { + font-size:13px; + padding:0 0 3px 0; +} +.indexContainer ul { + margin:0; + padding:0; +} +.indexContainer ul li { + list-style:none; + padding-top:2px; +} +.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt { + font-size:12px; + font-weight:bold; + margin:10px 0 0 0; + color:#4E4E4E; +} +.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd { + margin:5px 0 10px 0px; + font-size:14px; + font-family:'DejaVu Sans Mono',monospace; +} +.serializedFormContainer dl.nameValue dt { + margin-left:1px; + font-size:1.1em; + display:inline; + font-weight:bold; +} +.serializedFormContainer dl.nameValue dd { + margin:0 0 0 1px; + font-size:1.1em; + display:inline; +} +/* +List styles +*/ +ul.horizontal li { + display:inline; + font-size:0.9em; +} +ul.inheritance { + margin:0; + padding:0; +} +ul.inheritance li { + display:inline; + list-style:none; +} +ul.inheritance li ul.inheritance { + margin-left:15px; + padding-left:15px; + padding-top:1px; +} +ul.blockList, ul.blockListLast { + margin:10px 0 10px 0; + padding:0; +} +ul.blockList li.blockList, ul.blockListLast li.blockList { + list-style:none; + margin-bottom:15px; + line-height:1.4; +} +ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList { + padding:0px 20px 5px 10px; + border:1px solid #ededed; + background-color:#f8f8f8; +} +ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList { + padding:0 0 5px 8px; + background-color:#ffffff; + border:none; +} +ul.blockList ul.blockList ul.blockList ul.blockList li.blockList { + margin-left:0; + padding-left:0; + padding-bottom:15px; + border:none; +} +ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast { + list-style:none; + border-bottom:none; + padding-bottom:0; +} +table tr td dl, table tr td dl dt, table tr td dl dd { + margin-top:0; + margin-bottom:1px; +} +/* +Table styles +*/ +.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary { + width:100%; + border-left:1px solid #EEE; + border-right:1px solid #EEE; + border-bottom:1px solid #EEE; +} +.overviewSummary, .memberSummary { + padding:0px; +} +.overviewSummary caption, .memberSummary caption, .typeSummary caption, +.useSummary caption, .constantsSummary caption, .deprecatedSummary caption { + position:relative; + text-align:left; + background-repeat:no-repeat; + color:#253441; + font-weight:bold; + clear:none; + overflow:hidden; + padding:0px; + padding-top:10px; + padding-left:1px; + margin:0px; + white-space:pre; +} +.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link, +.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link, +.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover, +.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover, +.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active, +.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active, +.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited, +.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited { + color:#FFFFFF; +} +.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span, +.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + padding-bottom:7px; + display:inline-block; + float:left; + background-color:#F8981D; + border: none; + height:16px; +} +.memberSummary caption span.activeTableTab span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + margin-right:3px; + display:inline-block; + float:left; + background-color:#F8981D; + height:16px; +} +.memberSummary caption span.tableTab span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + margin-right:3px; + display:inline-block; + float:left; + background-color:#4D7A97; + height:16px; +} +.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab { + padding-top:0px; + padding-left:0px; + padding-right:0px; + background-image:none; + float:none; + display:inline; +} +.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd, +.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd { + display:none; + width:5px; + position:relative; + float:left; + background-color:#F8981D; +} +.memberSummary .activeTableTab .tabEnd { + display:none; + width:5px; + margin-right:3px; + position:relative; + float:left; + background-color:#F8981D; +} +.memberSummary .tableTab .tabEnd { + display:none; + width:5px; + margin-right:3px; + position:relative; + background-color:#4D7A97; + float:left; + +} +.overviewSummary td, .memberSummary td, .typeSummary td, +.useSummary td, .constantsSummary td, .deprecatedSummary td { + text-align:left; + padding:0px 0px 12px 10px; +} +th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th, +td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{ + vertical-align:top; + padding-right:0px; + padding-top:8px; + padding-bottom:3px; +} +th.colFirst, th.colLast, th.colOne, .constantsSummary th { + background:#dee3e9; + text-align:left; + padding:8px 3px 3px 7px; +} +td.colFirst, th.colFirst { + white-space:nowrap; + font-size:13px; +} +td.colLast, th.colLast { + font-size:13px; +} +td.colOne, th.colOne { + font-size:13px; +} +.overviewSummary td.colFirst, .overviewSummary th.colFirst, +.useSummary td.colFirst, .useSummary th.colFirst, +.overviewSummary td.colOne, .overviewSummary th.colOne, +.memberSummary td.colFirst, .memberSummary th.colFirst, +.memberSummary td.colOne, .memberSummary th.colOne, +.typeSummary td.colFirst{ + width:25%; + vertical-align:top; +} +td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover { + font-weight:bold; +} +.tableSubHeadingColor { + background-color:#EEEEFF; +} +.altColor { + background-color:#FFFFFF; +} +.rowColor { + background-color:#EEEEEF; +} +/* +Content styles +*/ +.description pre { + margin-top:0; +} +.deprecatedContent { + margin:0; + padding:10px 0; +} +.docSummary { + padding:0; +} + +ul.blockList ul.blockList ul.blockList li.blockList h3 { + font-style:normal; +} + +div.block { + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; +} + +td.colLast div { + padding-top:0px; +} + + +td.colLast a { + padding-bottom:3px; +} +/* +Formatting effect styles +*/ +.sourceLineNo { + color:green; + padding:0 30px 0 0; +} +h1.hidden { + visibility:hidden; + overflow:hidden; + font-size:10px; +} +.block { + display:block; + margin:3px 10px 2px 0px; + color:#474747; +} +.deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink, +.overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel, +.seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink { + font-weight:bold; +} +.deprecationComment, .emphasizedPhrase, .interfaceName { + font-style:italic; +} + +div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase, +div.block div.block span.interfaceName { + font-style:normal; +} + +div.contentContainer ul.blockList li.blockList h2{ + padding-bottom:0px; +} diff --git a/CUI_社員メンテナンス_Simple/sql/.gitignore b/CUI_社員メンテナンス_Simple/sql/.gitignore new file mode 100644 index 0000000..4c66567 --- /dev/null +++ b/CUI_社員メンテナンス_Simple/sql/.gitignore @@ -0,0 +1 @@ +/~$DAO作成用テーブル定義書.xlsx diff --git a/CUI_社員メンテナンス_Simple/sql/CreateTable-MySQL.sql b/CUI_社員メンテナンス_Simple/sql/CreateTable-MySQL.sql new file mode 100644 index 0000000..1e5aa53 --- /dev/null +++ b/CUI_社員メンテナンス_Simple/sql/CreateTable-MySQL.sql @@ -0,0 +1,39 @@ +-- employeeテーブルの作成 +DROP TABLE IF EXISTS employee; +CREATE TABLE employee ( + id_employee INT AUTO_INCREMENT PRIMARY KEY + , nm_employee VARCHAR(50) NOT NULL + , kn_employee VARCHAR(50) NOT NULL + , mail_address VARCHAR(100) NOT NULL + , password VARCHAR(10) NOT NULL + , id_department INT NOT NULL +) +AUTO_INCREMENT = 10000; + +-- 部署テーブルの作成 +DROP TABLE IF EXISTS department; +CREATE TABLE department ( + id_department INT AUTO_INCREMENT PRIMARY KEY + , nm_department VARCHAR(10) NOT NULL +) +AUTO_INCREMENT = 10; + +-- 社員テーブルのデータ +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('山田龍也','ヤマダタツヤ','yamada@hoge.jp','aaa',10); +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('高橋準','タカハシジュン','jtaka@hoge.jp','bbb',10); +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('麻枝史明','マエダフミアキ','fmak@hoge.jp','ccc',11); +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('丸戸章介','マルトショウスケ','marusyo@hoge.jp','ddd',12); +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('三宅武','ミヤケタケシ','miya@hoge.jp','eee',13); +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('丸井悠','マルイハルカ','haru@hoge.jp','fff',13); +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('涼元香織','スズモトカオリ','suzumoto@hoge.jp','ggg',13); +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('葉山稔','ハヤマミノル','mhayama@hoge.jp','hhh',14); +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('川上朱里','カワカミアカリ','kawakami@hoge.jp','iii',14); +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('杉井肇','スギイハジメ','sugi@hoge.jp','jjj',15); + +-- 部署テーブルのデータ +INSERT INTO department (nm_department) VALUES ('役員'); +INSERT INTO department (nm_department) VALUES ('人事・総務部'); +INSERT INTO department (nm_department) VALUES ('経理部'); +INSERT INTO department (nm_department) VALUES ('システム開発事業部'); +INSERT INTO department (nm_department) VALUES ('教育事業部'); +INSERT INTO department (nm_department) VALUES ('営業企画部'); diff --git a/CUI_社員メンテナンス_Simple/sql/CreateTable-PostgreSQL.sql b/CUI_社員メンテナンス_Simple/sql/CreateTable-PostgreSQL.sql new file mode 100644 index 0000000..b8c7d9c --- /dev/null +++ b/CUI_社員メンテナンス_Simple/sql/CreateTable-PostgreSQL.sql @@ -0,0 +1,39 @@ +-- employeeテーブルの作成 +DROP TABLE IF EXISTS employee; +CREATE TABLE employee ( + id_employee serial PRIMARY KEY + ,nm_employee varchar(50) NOT NULL + ,kn_employee varchar(50) NOT NULL + ,mail_address varchar(100) NOT NULL + ,password varchar(10) NOT NULL + ,id_department integer NOT NULL +); +ALTER SEQUENCE employee_id_employee_seq RESTART WITH 10000; + +-- 部署テーブルの作成 +DROP TABLE IF EXISTS department; +CREATE TABLE department ( + id_department serial PRIMARY KEY + ,nm_department varchar(10) NOT NULL +); +alter sequence department_id_department_seq restart with 10; + +-- 社員テーブルのデータ +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('山田龍也','ヤマダタツヤ','yamada@hoge.jp','aaa',10); +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('高橋準','タカハシジュン','jtaka@hoge.jp','bbb',10); +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('麻枝史明','マエダフミアキ','fmak@hoge.jp','ccc',11); +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('丸戸章介','マルトショウスケ','marusyo@hoge.jp','ddd',12); +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('三宅武','ミヤケタケシ','miya@hoge.jp','eee',13); +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('丸井悠','マルイハルカ','haru@hoge.jp','fff',13); +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('涼元香織','スズモトカオリ','suzumoto@hoge.jp','ggg',13); +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('葉山稔','ハヤマミノル','mhayama@hoge.jp','hhh',14); +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('川上朱里','カワカミアカリ','kawakami@hoge.jp','iii',14); +INSERT INTO employee (nm_employee, kn_employee, mail_address, password, id_department) VALUES ('杉井肇','スギイハジメ','sugi@hoge.jp','jjj',15); + +-- 部署テーブルのデータ +INSERT INTO department (nm_department) VALUES ('役員'); +INSERT INTO department (nm_department) VALUES ('人事・総務部'); +INSERT INTO department (nm_department) VALUES ('経理部'); +INSERT INTO department (nm_department) VALUES ('システム開発事業部'); +INSERT INTO department (nm_department) VALUES ('教育事業部'); +INSERT INTO department (nm_department) VALUES ('営業企画部'); diff --git a/CUI_社員メンテナンス_Simple/sql/DAO作成用テーブル定義書.xlsx b/CUI_社員メンテナンス_Simple/sql/DAO作成用テーブル定義書.xlsx new file mode 100644 index 0000000..dcf115e Binary files /dev/null and b/CUI_社員メンテナンス_Simple/sql/DAO作成用テーブル定義書.xlsx differ diff --git a/CUI_社員メンテナンス_Simple/src/com/rhizome/example/dao/EmployeeDAO.java b/CUI_社員メンテナンス_Simple/src/com/rhizome/example/dao/EmployeeDAO.java new file mode 100644 index 0000000..f513336 --- /dev/null +++ b/CUI_社員メンテナンス_Simple/src/com/rhizome/example/dao/EmployeeDAO.java @@ -0,0 +1,235 @@ +package com.rhizome.example.dao; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +import com.rhizome.example.dto.EmployeeDTO; +import com.rhizome.example.util.DbUtil; + +public class EmployeeDAO { + private static final String TBL_NAME = "employee"; + private static final String ID_EMPLOYEE = "id_employee"; + private static final String NM_EMPLOYEE = "nm_employee"; + private static final String KN_EMPLOYEE = "kn_employee"; + private static final String MAIL_ADDRESS = "mail_address"; + private static final String PASSWORD = "password"; + private static final String ID_DEPARTMENT = "id_department"; + + /** DBコネクション */ + public Connection con; + /** DBステートメント */ + PreparedStatement stmt; + /** 検索結果 */ + ResultSet rs; + + /** + * インスタンス生成時DBコネクション + * + * @throws ClassNotFoundException + * @throws SQLException + */ + public EmployeeDAO(Connection con) { + this.con = con; + } + + /** + * 社員テーブルの情報を全件取得する + * + * @return 検索結果 + * @throws SQLException + * @throws ClassNotFoundException + */ + public List selectAll() throws SQLException, ClassNotFoundException { + List rtnList = new ArrayList<>(); + StringBuilder sql = new StringBuilder(); + sql.append(" SELECT "); + sql.append(" " + "*"); + sql.append(" FROM "); + sql.append(" " + TBL_NAME); + try { + + this.stmt = con.prepareStatement(sql.toString()); + rs = stmt.executeQuery(); + while (rs.next()) { + rtnList.add(rowMappingEmployee(rs)); + } + } finally { + DbUtil.closeStatement(this.stmt); + } + return rtnList; + } + + /** + * 社員テーブルから社員IDに合致する情報を取得する + * + * @param id + * 社員ID + * @return 検索結果 + * @throws SQLException + * @throws ClassNotFoundException + * @throws NumberFormatException + */ + public List selectById(String id) throws SQLException, ClassNotFoundException, NumberFormatException { + List rtnList = new ArrayList<>(); + StringBuilder sql = new StringBuilder(); + sql.append(" SELECT "); + sql.append(" " + "*"); + sql.append(" FROM "); + sql.append(" " + TBL_NAME); + sql.append(" WHERE "); + sql.append(" " + ID_EMPLOYEE + " = " + "?"); + try { + this.stmt = con.prepareStatement(sql.toString()); + stmt.setInt(1, Integer.parseInt(id)); + rs = stmt.executeQuery(); + while (rs.next()) { + rtnList.add(rowMappingEmployee(rs)); + } + } finally { + DbUtil.closeStatement(this.stmt); + } + return rtnList; + } + + /** + * 社員テーブルに新規登録する + * + * @param name + * 社員名 + * @param kana + * 社員名カナ + * @param mail + * メールアドレス + * @param pass + * パスワード + * @param depId + * 部署ID + * @throws NumberFormatException + * @throws SQLException + * @throws ClassNotFoundException + */ + public void empInsert(String name, String kana, String mail, String pass, String depId) + throws NumberFormatException, SQLException, ClassNotFoundException { + StringBuilder sql = new StringBuilder(); + sql.append(" INSERT " + " INTO "); + sql.append(" " + TBL_NAME); + sql.append(" ( "); + sql.append(" " + NM_EMPLOYEE); + sql.append(" ," + KN_EMPLOYEE); + sql.append(" ," + MAIL_ADDRESS); + sql.append(" ," + PASSWORD); + sql.append(" ," + ID_DEPARTMENT); + sql.append(" ) "); + sql.append(" VALUES "); + sql.append(" ( "); + sql.append(" " + " ? "); + sql.append(" ," + " ? "); + sql.append(" ," + " ? "); + sql.append(" ," + " ? "); + sql.append(" ," + " ? "); + sql.append(" ) "); + try { + this.stmt = con.prepareStatement(sql.toString()); + stmt.setString(1, name); + stmt.setString(2, kana); + stmt.setString(3, mail); + stmt.setString(4, pass); + stmt.setInt(5, Integer.parseInt(depId)); + stmt.executeUpdate(); + } finally { + DbUtil.closeStatement(this.stmt); + } + } + + /** + * 社員テーブルの社員IDに合致する情報を更新する + * + * @param id + * 社員ID + * @param name + * 社員名 + * @param kana + * 社員名カナ + * @param mail + * メールアドレス + * @param pass + * パスワード + * @param depId + * 部署ID + * @throws ClassNotFoundException + * @throws SQLException + */ + public void empUpdate(String id, String name, String kana, String mail, String pass, String depId) + throws ClassNotFoundException, SQLException { + StringBuilder sql = new StringBuilder(); + sql.append(" UPDATE "); + sql.append(" " + TBL_NAME); + sql.append(" SET "); + sql.append(" " + NM_EMPLOYEE + " = " + "?"); + sql.append(" ," + KN_EMPLOYEE + " = " + "?"); + sql.append(" ," + MAIL_ADDRESS + " = " + "?"); + sql.append(" ," + PASSWORD + " = " + "?"); + sql.append(" ," + ID_DEPARTMENT + " = " + "?"); + sql.append(" WHERE "); + sql.append(" " + ID_EMPLOYEE + " = " + "?"); + try { + this.stmt = con.prepareStatement(sql.toString()); + stmt.setString(1, name); + stmt.setString(2, kana); + stmt.setString(3, mail); + stmt.setString(4, pass); + stmt.setInt(5, Integer.parseInt(depId)); + stmt.setInt(6, Integer.parseInt(id)); + stmt.executeUpdate(); + } finally { + DbUtil.closeStatement(this.stmt); + } + } + + /** + * 社員テーブルの社員IDに合致する情報を削除する + * + * @param id + * 社員ID + * @throws ClassNotFoundException + * @throws SQLException + */ + public void empDelete(String id) throws ClassNotFoundException, SQLException { + StringBuilder sql = new StringBuilder(); + + sql.append(" DELETE " + " FROM "); + sql.append(" " + TBL_NAME); + sql.append(" WHERE "); + sql.append(" " + ID_EMPLOYEE + " = " + " ? "); + try { + this.stmt = con.prepareStatement(sql.toString()); + stmt.setString(1, id); + stmt.executeUpdate(); + } finally { + DbUtil.closeStatement(this.stmt); + } + } + + /** + * DBから取得した検索結果をDTO型のインスタンスにセットし、リストに格納する + * + * @param rs + * 検索結果 + * @return リスト + * @throws SQLException + */ + public EmployeeDTO rowMappingEmployee(ResultSet rs) throws SQLException { + EmployeeDTO emDto = new EmployeeDTO(); + emDto.setIdEmployee(rs.getInt(ID_EMPLOYEE)); + emDto.setNmEmployee(rs.getString(NM_EMPLOYEE)); + emDto.setKnEmployee(rs.getString(KN_EMPLOYEE)); + emDto.setMailAddress(rs.getString(MAIL_ADDRESS)); + emDto.setPassword(rs.getString(PASSWORD)); + emDto.setIdDepartment(rs.getInt(ID_DEPARTMENT)); + return emDto; + } +} diff --git a/CUI_社員メンテナンス_Simple/src/com/rhizome/example/dto/EmployeeDTO.java b/CUI_社員メンテナンス_Simple/src/com/rhizome/example/dto/EmployeeDTO.java new file mode 100644 index 0000000..d9755f2 --- /dev/null +++ b/CUI_社員メンテナンス_Simple/src/com/rhizome/example/dto/EmployeeDTO.java @@ -0,0 +1,89 @@ +package com.rhizome.example.dto; + +public class EmployeeDTO { + /** 社員ID */ + private int idEmployee; + /** 社員名 */ + private String nmEmployee; + /** 社員名カナ */ + private String knEmployee; + /** メールアドレス */ + private String mailAddress; + /** パスワード */ + private String password; + /** 役職ID */ + private int idDepartment; + + /** + * @return 社員ID + */ + public int getIdEmployee() { + return idEmployee; + } + /** + * @param idEmployee 社員ID + */ + public void setIdEmployee(int idEmployee) { + this.idEmployee = idEmployee; + } + /** + * @return 社員名 + */ + public String getNmEmployee() { + return nmEmployee; + } + /** + * @param nmEmployee 社員名 + */ + public void setNmEmployee(String nmEmployee) { + this.nmEmployee = nmEmployee; + } + /** + * @return 社員名カナ + */ + public String getKnEmployee() { + return knEmployee; + } + /** + * @param knEmployee 社員名カナ + */ + public void setKnEmployee(String knEmployee) { + this.knEmployee = knEmployee; + } + /** + * @return メールアドレス + */ + public String getMailAddress() { + return mailAddress; + } + /** + * @param mailAddress メールアドレス + */ + public void setMailAddress(String mailAddress) { + this.mailAddress = mailAddress; + } + /** + * @return パスワード + */ + public String getPassword() { + return password; + } + /** + * @param password パスワード + */ + public void setPassword(String password) { + this.password = password; + } + /** + * @return 役職ID + */ + public int getIdDepartment() { + return idDepartment; + } + /** + * @param idDepartment 役職ID + */ + public void setIdDepartment(int idDepartment) { + this.idDepartment = idDepartment; + } +} diff --git a/CUI_社員メンテナンス_Simple/src/com/rhizome/example/main/Main.java b/CUI_社員メンテナンス_Simple/src/com/rhizome/example/main/Main.java new file mode 100644 index 0000000..1cb3b0c --- /dev/null +++ b/CUI_社員メンテナンス_Simple/src/com/rhizome/example/main/Main.java @@ -0,0 +1,23 @@ +package com.rhizome.example.main; + +import java.util.Scanner; + +/** + * @author IT-College + * @veresion 1.0 + */ +public class Main { + static Scanner sc = new Scanner(System.in); + /** + * テーブル切り替え用変数 0:Employeeテーブル 1:Departmentテーブル + */ + static int tblFlg = 0; + + /** + * 処理開始位置 + * + * @param args + */ + public static void main(String[] args) { + } +} diff --git a/CUI_社員メンテナンス_Simple/src/com/rhizome/example/util/DbUtil.java b/CUI_社員メンテナンス_Simple/src/com/rhizome/example/util/DbUtil.java new file mode 100644 index 0000000..8248a35 --- /dev/null +++ b/CUI_社員メンテナンス_Simple/src/com/rhizome/example/util/DbUtil.java @@ -0,0 +1,73 @@ +package com.rhizome.example.util; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.SQLException; + +public class DbUtil { + // 定数定義(共通) + private static final String DB_HOST = "127.0.0.1"; + private static final String DB_NAME = "rezodb"; + private static final String DB_USER = "rezouser"; + private static final String DB_PASS = "Rezo_0000"; + + // 定数定義(PostgreSQL用) + // private static final String DBMS = "postgresql"; + // private static final String DB_DRIVER = "org." + DBMS + ".Driver"; + // private static final String DB_PORT = "5432"; + // private static final String DB_URL = "jdbc:" + DBMS + "://" + DB_HOST + + // ":" + DB_PORT + "/" + DB_NAME; + + // 定数定義(MySQL用) + private static final String DBMS = "mysql"; + private static final String DB_DRIVER = "com." + DBMS + ".cj.jdbc.Driver"; + private static final String DB_PORT = "3306"; + private static final String DB_URL = "jdbc:" + DBMS + "://" + DB_HOST + ":" + DB_PORT + "/" + DB_NAME; + // + "?serverTimezone=JST"; //JDBCドライバのバージョン8.0.22以前を利用する場合は必要 + + // インスタンス化の禁止 + private DbUtil() { + } + + // Connectionを単一のインスタンスとする + private static Connection con; + + /** + * DBのコネクションを取得 + * + * @return DBコネクション + * @throws ClassNotFoundException + * @throws SQLException + */ + public static Connection getConnection() throws ClassNotFoundException, SQLException { + if (con == null || con.isClosed()) { + Class.forName(DB_DRIVER); + con = DriverManager.getConnection(DB_URL, DB_USER, DB_PASS); + } + return con; + } + /** + * DBステートメントを切断 + * + * @param stmt DBステートメント + * @throws SQLException + */ + public static void closeStatement(PreparedStatement stmt) throws SQLException { + if (stmt != null) { + stmt.close(); + } + } + /** + * DBとのコネクションを切断 + * + * @param con + * DBコネクション + * @throws SQLException + */ + public static void closeConnection(Connection con) throws SQLException { + if (con != null) { + con.close(); + } + } +} diff --git a/CUI_社員メンテナンス_Simple/実行例/このファイルを実行してください.bat b/CUI_社員メンテナンス_Simple/実行例/このファイルを実行してください.bat new file mode 100644 index 0000000..19050e2 --- /dev/null +++ b/CUI_社員メンテナンス_Simple/実行例/このファイルを実行してください.bat @@ -0,0 +1,2 @@ +java -jar DAO_Simple.jar +pause diff --git a/CUI_計算機/src/Calculator.java b/CUI_計算機/src/Calculator.java new file mode 100644 index 0000000..cb349ad --- /dev/null +++ b/CUI_計算機/src/Calculator.java @@ -0,0 +1,11 @@ +/* + * Calculator.java + * 作成 IT-College 2017 + *------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ + +public class Calculator { + public static void main(String[] args) { + } +} \ No newline at end of file diff --git a/CUI_計算機/実行例/エラー入力1_このファイルを実行してください.bat b/CUI_計算機/実行例/エラー入力1_このファイルを実行してください.bat new file mode 100644 index 0000000..ebb48e7 --- /dev/null +++ b/CUI_計算機/実行例/エラー入力1_このファイルを実行してください.bat @@ -0,0 +1,2 @@ +java -jar Calculator.jar +pause diff --git a/CUI_計算機/実行例/エラー入力2_このファイルを実行してください.bat b/CUI_計算機/実行例/エラー入力2_このファイルを実行してください.bat new file mode 100644 index 0000000..75bb4c2 --- /dev/null +++ b/CUI_計算機/実行例/エラー入力2_このファイルを実行してください.bat @@ -0,0 +1,2 @@ +java -jar Calculator.jar aaa +pause diff --git a/CUI_計算機/実行例/乗算_このファイルを実行してください.bat b/CUI_計算機/実行例/乗算_このファイルを実行してください.bat new file mode 100644 index 0000000..12f4fcf --- /dev/null +++ b/CUI_計算機/実行例/乗算_このファイルを実行してください.bat @@ -0,0 +1,2 @@ +java -jar Calculator.jar -d 25*5 +pause diff --git a/CUI_計算機/実行例/加算_このファイルを実行してください.bat b/CUI_計算機/実行例/加算_このファイルを実行してください.bat new file mode 100644 index 0000000..981d0d7 --- /dev/null +++ b/CUI_計算機/実行例/加算_このファイルを実行してください.bat @@ -0,0 +1,2 @@ +java -jar Calculator.jar -d 25+5 +pause diff --git a/CUI_計算機/実行例/減算_このファイルを実行してください.bat b/CUI_計算機/実行例/減算_このファイルを実行してください.bat new file mode 100644 index 0000000..4ef3178 --- /dev/null +++ b/CUI_計算機/実行例/減算_このファイルを実行してください.bat @@ -0,0 +1,2 @@ +java -jar Calculator.jar -d 25-5 +pause diff --git a/CUI_計算機/実行例/除算_このファイルを実行してください.bat b/CUI_計算機/実行例/除算_このファイルを実行してください.bat new file mode 100644 index 0000000..550e007 --- /dev/null +++ b/CUI_計算機/実行例/除算_このファイルを実行してください.bat @@ -0,0 +1,2 @@ +java -jar Calculator.jar -d 25/5 +pause diff --git a/JUnit_テストファースト/README.txt b/JUnit_テストファースト/README.txt new file mode 100644 index 0000000..ebeeb93 --- /dev/null +++ b/JUnit_テストファースト/README.txt @@ -0,0 +1,23 @@ +○システム名 + マヨイドーロ +○システム説明 + 「テスト技法・設計手法演習問題(テストファースト).pdf」参照 +○出題タイミング + 設計・テスト技法の「JUnit」終了後に出題 +○配布物 + src + test + テスト技法・設計手法演習問題(テストファースト).pdf +○進め方 + testの中の配置されているJUnitを使用してオールグリーンになるようにプログラムを作成する + + 演習課題としてではなく、練習問題として出題してださい(納品はなし) + 12:30〜17:30まで時間を使ってしまって構いません。 + グループ単位でパターンの洗い出しをさせて、プログラムを組む流れで実施してください + ※教室のレベルが高い場合は個人で実施させても良いと思います。 + +○納品物 + 特になし + +○早く終わったら・・・・ + 現状特にないため練習問題等を復習させても良い(過去の問題のJUnitを作成する等) \ No newline at end of file diff --git a/JUnit_テストファースト/src/testfirst/road/check/Road.java b/JUnit_テストファースト/src/testfirst/road/check/Road.java new file mode 100644 index 0000000..a87a548 --- /dev/null +++ b/JUnit_テストファースト/src/testfirst/road/check/Road.java @@ -0,0 +1,47 @@ +/* + * Road.java + * 作成 IT-College 2016 + *------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +package testfirst.road.check; +/** + * テスト技法・設計手法演習問題です。 + * このクラスを対象としたテストクラス:RoadTestのテストメソッドを実行した時に、 + * 全てのテストメソッドがグリーンで完了するよう実装して下さい + * + * ※もちろん、テストケース以外のパターンでも正常動作するようにしてください + * @author IT-College + * + */ +public class Road { + /** + * N が与えられたとき、P を出力するプログラムです。 + * @param 試行回数 + * @return Bにたどり着ける回数 + */ + public static String check(int n) { + /* + * N を「反転回数の上限」とします。言い換えるなら N は「その回数までは反転してかまわないという数」です。 + * P を「A から入って B から出るルートの種類の数」とします + */ + /* ex) + * もしも N が 1 の場合、B から出るルートは、 + * • A → イ → ウ → イ → ア → B + * • A → イ → ア → B + * という 2 種類があるので、P は 2 になります。 + */ + /* ex) + * もしも N が 4 の場合、B から出るルートは、 + * • X → イ → ウ → イ → ア → B + * • X → イ → ウ → イ → ア → イ → ウ → イ → ア → B + * • X → イ → ウ → イ → ア → イ → ア → B + * • X → イ → ウ → イ → ウ → イ → ア → B + * • X → イ → ア → B + * • X → イ → ア → イ → ウ → イ → ア → B + * • X → イ → ア → イ → ア → B + * という 7 種類があるので、P は 7 になります。 + */ + return null; + } +} \ No newline at end of file diff --git a/JUnit_テストファースト/src/testfirst/road/main/Main.java b/JUnit_テストファースト/src/testfirst/road/main/Main.java new file mode 100644 index 0000000..ac8d2b8 --- /dev/null +++ b/JUnit_テストファースト/src/testfirst/road/main/Main.java @@ -0,0 +1,38 @@ +/* + * Road.java + * 作成 IT-College 2016 + *------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +package testfirst.road.main; +import java.util.InputMismatchException; +import java.util.Scanner; +import testfirst.road.check.Road; +/** + * テスト技法・設計手法演習問題のRoad.checkメソッドを実行するクラスです。 + * エントリーポイント用 + * @author IT-College + * + */ +public class Main { + public static void main(String[] args) { + Scanner scanner = new Scanner(System.in); + int n = 0; + while (true) { + System.out.println("N(反転回数の上限)を入力して下さい。上限はintの上限値及び、正の数とします"); + try { + n = scanner.nextInt(); + if (n < 0) { + System.out.println("範囲外の入力です"); + continue; + } + break; + } catch(InputMismatchException e) { + System.out.println("範囲外の入力です"); + scanner.next(); + } + } + String p = Road.check(n); + System.out.println("[N:" + n + "] の場合、[P:" + p + "]"); + } +} \ No newline at end of file diff --git a/JUnit_テストファースト/test/testfirst/road/check/RoadTest.java b/JUnit_テストファースト/test/testfirst/road/check/RoadTest.java new file mode 100644 index 0000000..7478980 --- /dev/null +++ b/JUnit_テストファースト/test/testfirst/road/check/RoadTest.java @@ -0,0 +1,82 @@ +/* + * RoadTest.java + * 作成 IT-College 2016 + *------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +package testfirst.road.check; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +/** + * road.main.Roadクラスメソッドのテストクラスです。 + * JUnitテストを実行して、テストをクリアするように実装して下さい + * @author IT-College + * + */ +public class RoadTest { + @Test + public void Nに0の場合() { + String expected = new String("0"); + String actual = Road.check(0); + //assertThat(actual, is(expected)); // JUnit4のソースコード + Assertions.assertEquals(actual, expected); + } + @Test + public void Nに1の場合() { + String expected = new String("2"); + String actual = Road.check(1); + //assertThat(actual, is(expected)); // JUnit4のソースコード + Assertions.assertEquals(actual, expected); + } + @Test + public void Nに3の場合() { + String expected = new String("7"); + String actual = Road.check(3); + //assertThat(actual, is(expected)); // JUnit4のソースコード + Assertions.assertEquals(actual, expected); + } + @Test + public void Nに4の場合() { + String expected = new String("7"); + String actual = Road.check(4); + //assertThat(actual, is(expected)); // JUnit4のソースコード + Assertions.assertEquals(actual, expected); + } + @Test + public void Nに5の場合() { + String expected = new String("20"); + String actual = Road.check(5); + //assertThat(actual, is(expected)); // JUnit4のソースコード + Assertions.assertEquals(actual, expected); + } + @Test + public void Nに10の場合() { + String expected = new String("143"); + String actual = Road.check(10); + //assertThat(actual, is(expected)); // JUnit4のソースコード + Assertions.assertEquals(actual, expected); + } + @Test + public void Nに100の場合() { + String expected = new String("927372692193078999175"); + String actual = Road.check(100); + //assertThat(actual, is(expected)); // JUnit4のソースコード + Assertions.assertEquals(actual, expected); + } + @Test + public void Nに1000の場合() { + String expected = new String("113796925398360272257523782552224175572745930353730513145086634176691092536145985470146129334641866902783673042322088625863396052888690096969577173696370562180400527049497109023054114771394568040040412172632375"); + String actual = Road.check(1000); + //assertThat(actual, is(expected)); // JUnit4のソースコード + Assertions.assertEquals(actual, expected); + } + @Test + public void Nに2015の場合() { + String expected = new String("24410294683171395267259945469996127000411199333760853190535535281681195871429510314079442068798555059453792431772087225245168879580469159794544170936403149540819320510882801573596907938222922817134288725100817648047405608500267748766714030468003650259685406411646787207097050545802045736020993909154298598218721111963426993884619351338577630868510716463423585020972878819198991971234596733617320373133963970742975210614208"); + String actual = Road.check(2015); + //assertThat(actual, is(expected)); // JUnit4のソースコード + Assertions.assertEquals(actual, expected); + } +} \ No newline at end of file diff --git a/JUnit_テストファースト/テスト技法・設計手法演習問題(テストファースト).pdf b/JUnit_テストファースト/テスト技法・設計手法演習問題(テストファースト).pdf new file mode 100644 index 0000000..df531da Binary files /dev/null and b/JUnit_テストファースト/テスト技法・設計手法演習問題(テストファースト).pdf differ diff --git a/JUnit_リファクタリング/src/jp/co/itc/check/Check.java b/JUnit_リファクタリング/src/jp/co/itc/check/Check.java new file mode 100644 index 0000000..eca2104 --- /dev/null +++ b/JUnit_リファクタリング/src/jp/co/itc/check/Check.java @@ -0,0 +1,55 @@ +/* + * Check.java + * 作成 IT-College 2016 + *------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +package jp.co.itc.check; +/** + * 入力された値をカスタマイズ・入力チェックを行うクラスです。 + * 現状でJUnitテストが通りますので、テスト結果が変わらないようリファクタリングして下さい。 + * @author IT-College + * + */ +public class Check { + /** インスタンス化禁止 */ + private Check() {} + /** + * 文字列を、大文字に変換して逆順に並び替えます + * @param value 対象文字列 + * @return 並び替えを行った結果 + */ + public static String toReverseString(String value) { + try { + char[] a = value.toCharArray(); + String b = ""; + int c; + java.util.ArrayList d = new java.util.ArrayList(); + boolean e = true; + while (e) { + for (int f = 0; f < a.length; f++) { + c = a[f]; + if (97 <= c && c < 122) + c = c - 32; + d.add(c); + } + e = false; + } + c = 0; + try { + while (true) { + String f = b; + f = b + String.valueOf((char) ((int) d.get(d.size() - 1 - c))); + if (c < d.size()) + f += ","; + c++; + b = f.substring(0, f.length() - 1); + } + } catch (java.lang.Exception g) { + } + return b; + } catch(java.lang.Exception e) { + return ""; + } + } +} \ No newline at end of file diff --git a/JUnit_リファクタリング/test/jp/co/itc/check/CheckTest.java b/JUnit_リファクタリング/test/jp/co/itc/check/CheckTest.java new file mode 100644 index 0000000..96b3481 --- /dev/null +++ b/JUnit_リファクタリング/test/jp/co/itc/check/CheckTest.java @@ -0,0 +1,62 @@ +/* + * CheckTest.java + * 作成 IT-College 2016 + *------------------------------------------------------------ + * Copyright(c) Rhizome Inc. All Rights Reserved. + */ +package jp.co.itc.check; + +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.jupiter.api.Test; + +/** + * jp.co.itc.checkクラスメソッドのテストクラスです。 + * JUnitテストを実行して、テストをクリアするように実装して下さい + * @author IT-College + * + */ +public class CheckTest { + + @Test + public void 小文字が大文字になって返る() { + String expected = new String("AVAJ"); + String actual = Check.toReverseString("java"); + assertEquals(actual, expected); + } + + @Test + public void 空文字を処理した場合は空文字が返る() { + String expected = new String(""); + String actual = Check.toReverseString(""); + assertEquals(actual, expected); + } + + @Test + public void 文字列中のスペースが除去されずに返る() { + String expected = new String("MARGORP EKIL I"); + String actual = Check.toReverseString("I like program"); + assertEquals(actual, expected); + } + + @Test + public void 大文字小文字混在の場合は大文字が返る() { + String expected = new String("REMMARGORP"); + String actual = Check.toReverseString("Programmer"); + assertEquals(actual, expected); + } + + @Test + public void 半角スペースのみの場合はそのまま返る() { + String expected = new String(" "); + String actual = Check.toReverseString(" "); + assertEquals(actual, expected); + } + + @Test + public void 全角スペースのみの場合はそのまま返る() { + String expected = new String("   "); + String actual = Check.toReverseString("   "); + assertEquals(actual, expected); + } +}