Java 職業訓練課題

概要

JavaではC言語で培ったアルゴリズムの構築方法を活かしつつ、オブジェクト指向における継承や例外での文法に即したプログラミング方法について学びました。さらに、JSP+Servletを利用してデータベースを介したページの構築についても学びました。
その中から、得るものが多かったと感じた課題を掲載いたします。

課題 書籍の管理

プログラム概要
テキストファイルにて、1行1データとして書籍を管理するプログラムです。
プログラムの開始時にArrayListへデータを取り込み、登録・削除・検索などの処理を行い、終了時に現在の状態をテキストファイルへ書き込みます。
処理条件
  • プログラム開始時に書籍データファイルを読み込みArrayListに登録する。
  • 書籍管理メニューを出力し、処理区分により処理を振り分ける。
    (処理区分:登録・価格変更・削除・書名検索・著者検索・一覧表・終了)
  • プログラム実行中のメンテナンスはArrayListで行う。
  • プログラム終了時にArrayListより書籍データファイルに書き込む。
  • 書籍データファイルはテキストファイルとする。
  • クラス設計は任意とする。
ファイルサンプル [書籍データ] (books.mst)
10,坊ちゃん,夏目漱石,583
20,武蔵野,国木田独歩,562
30,たけくらべ,樋口一葉,432
40,舞姫,森鴎外,562
50,羅生門,芥川龍之介,432
60,伊豆の踊子,川端康成,562
70,吾輩は猫である,夏目漱石,583
ソースコード
GitHubで確認する
工夫したところ
クラスを設計するにあたり、メインメソッドのあるBookManagementでは、シンプルな処理となるように、処理区分の入力と例外処理だけを担当させました。
処理区分の処理を担当するクラスのManagerは、書籍クラスであるBookでインスタンスの生成とメンテナンスをするための中継ぎですので、static変数・staticメソッドで構成しています。
その他、番号検索や各処理を確定する際のYes・Noでの最終確認など、複数の箇所で利用する記述はメソッドとして抜き出し、各利用箇所で齟齬が出ないよう構成を考えて組み立てるようにしました。
開発環境
バックエンド
言語: Java SE 8
その他のツール
EmEditor, Visual Studio 開発者コマンドプロンプト(x64 Native Tools Command Prompt for VS 2019)
制作時間
5時間 (2021年10月)